动机:
用于对象识别的最先进算法是通过反向传播训练的深度卷积神经网络,其中主要问题是让网络以良好的局部最小值来定居:http://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf
可以记录来自支持物体识别的神经元的大脑的尖峰计数,并且声称近似于这些神经元的响应的神经网络处于良好的局部最小值是合理的。 http://www.sciencedirect.com/science/article/pii/S089662731200092X
如果你要约束神经网络中的一个单位子集来重现某些输入的某些值(例如,从神经元记录的尖峰计数以响应这些图像),然后通过约束梯度减少误差下降,它可能会迫使网络稳定在一个良好的局部最低点。
精确问题:
如果网络中的某些神经元必须具有某些预定值,那么在最大化误差减少的方向上改变神经网络权重的计算效率最高的方法是什么?
迄今取得的进展:
这似乎是一个非常困难的拉格朗日乘数问题,在完成一些工作并搜索有关该主题的现有文献后,我想知道是否有人听说过类似的工作。
答案 0 :(得分:1)
你最好的选择是Kullback-Liebler Divergence(KL)。它允许您设置您希望神经元接近的值。在python中,
def _binary_KL_divergence(p, p_hat):
"""
Computes the a real, KL divergence of two binomial distributions with
probabilities p and p_hat respectively.
"""
return (p * np.log(p / p_hat)) + ((1 - p) * np.log((1 - p) / (1 - p_hat)))
其中p
是约束值,p_hat
是样本的平均激活值(或神经元值)。这就像将术语添加到目标函数一样简单。因此,如果算法最小化方差||H(X) - y||^2
,则新表单将为||H(X) - y||^2 + KL_divergence_term
。
作为成本函数的一部分,它会惩罚偏离p
的平均激活,无论是更高还是更低(图1)。权重更新如何取决于新目标函数的部分区分。
(Figure 1 : KL-Divergence Cost when `p = 0.2)
事实上,我从稀疏自动编码器中挖掘了这个想法,在Lecture Notes on Sparse Autoencoders可以看到更多细节。
祝你好运!