【发布时间】:2019-05-19 22:36:40
【问题描述】:
我有一个神经网络,在最后一层使用 softmax 激活有 10 个输出神经元。我也确切地知道,根据输入值,输出层中的某些神经元应该有 0 值。所以我有一个由 10 个神经元组成的特殊输入层,每个神经元不是 0 就是 1。
是否有可能以某种方式强制假设输出神经元没有。如果输入神经元 3 也为 0,则 3 的值 = 0?
action_input = Input(shape=(10,), name='action_input')
...
x = Dense(10, kernel_initializer = RandomNormal(),bias_initializer = RandomNormal() )(x)
x = Activation('softmax')(x)
我知道有一种方法可以屏蔽掉神经网络之外的输出层的结果,并对所有非零相关的输出进行重新整形(以便总和为 1)。但我想在网络内解决这个问题,并在网络训练期间也使用它。我应该为此使用自定义层吗?
【问题讨论】:
-
所以你想让一些输出神经元为零,并重新调整其他神经元以使它们的总和为 1?
标签: python machine-learning keras neural-network softmax