1

动机:

用于对象识别的最先进算法是通过反向传播训练的深度卷积神经网络,其中主要问题是让网络处于良好的局部最小值:http: //books.nips.cc/papers/files/nips25 /NIPS2012_0534.pdf

可以从支持对象识别的神经元记录来自大脑的尖峰计数,并且可以合理地声称近似这些神经元响应的神经网络处于良好的局部最小值。http://www.sciencedirect.com/science/article/pii/S089662731200092X

如果您要约束神经网络中的一个单元子集以再现某些输入的某些值(例如,响应这些图像从神经元记录的尖峰计数),然后通过受约束的梯度下降来减少误差,它可能能够迫使网络稳定在一个好的局部最小值。

准确的问题:

鉴于网络中的某些神经元必须具有某些预定值,在最大限度减少误差的方向上改变神经网络权重的计算效率最高的方法是什么?

迄今为止的进展:

这似乎是一个非常困难的拉格朗日乘数问题,在做了一些工作并搜索了有关该主题的现有文献之后,我想知道是否有人听说过类似的工作。

4

1 回答 1

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)

事实上,我从 Sparse Auto-encoders 中汲取了这个想法,更多细节可以在Lecture Notes on Sparse Autoencoders中看到。

祝你好运!

于 2013-12-16T05:36:37.833 回答