【发布时间】:2021-09-21 22:51:53
【问题描述】:
我的问题与 keras 如何实现权重约束有关,尤其是在密集层中。我主要使用 R 及其 keras 实现,所以我将在这里使用他们的符号,但如果有人在 Python 中有解决方案,我也会很高兴。
据我所知,像 constraint_maxnorm() 这样的 keras 约束可以应用于带有参数 kernel_constraint 或 bias_constraint 的 layer_dense(),其中内核指的是没有偏差项的权重矩阵。但是,为了测试新方法,我认为能够将约束应用于完整权重矩阵也会很有用,其中偏差向量在权重矩阵中形成额外的行。这种约束的一个例子是将入射到神经元的权重向量的 L1 范数限制为 1(考虑到该神经元的偏差也作为所述向量的一个元素)。
从这个意义上说,可以创建custom constraints,但问题是它们接收内核权重作为输入,而不是内核权重和偏差,并且输出也只是内核权重,而不是完整的权重矩阵。
是否可以在 keras 或 tensorflow 中实现这种同时影响内核和偏差的约束?从这个意义上说,能够创建同时接受内核权重和偏差作为输入的自定义约束,然后在内核和偏差处应用两次所需的约束就足够了。
【问题讨论】:
-
有了 tensorflow 约束,是否可以同时将内核权重和偏差作为输入?这将解决同时使用所有权重和偏差计算范数的问题,即使它必须分别应用于内核和偏差。
标签: python r tensorflow keras neural-network