我正在使用 TensorFlow/Keras 训练神经网络进行分类,我希望输出层中的权重具有以下属性:
假设权重或核矩阵为3 by 4 matrix W
,其元素为W_ij
我希望对于每一列 j,只有一个 nonzero W_ij
和 W_ij = 1
。
实现此要求的好方法是什么?
我能想到的一种可能的解决方案是设置以下约束:
W_1j + W_2j + W_3j = 1 for all j = 1,2,3,4
和
W_ij * (1-W_ij) = 0, for all i, j
如何实现这些约束?或者有没有更好的方法来设置这个要求?
答案 0 :(得分:0)
你确定要控制体重???如果您尝试对权重实施这种类型的约束,则您的神经网络可能永远不会学到任何东西。
在我看来,您只想要输出中的 softmax 层。
softmax 完全符合您的要求。假设您正在对猫、狗、鸟进行分类。如果在输出中使用 softmax,您将始终得到一个张量,其中只有一个元素为 1(最有可能的类) 例子
[1,0,0] #cat
[0,1,0] #dog
[0,0,1] # bird