使隐藏层某一神经元取最大激活的数学推导

求使隐藏层某一个神经元取到最大激活的输入问题,即

对这个函数求最值:

072226574685581………………………………….image..(j=1,2..100)是100个方程未知量

其中f是sigmoid函数

我们知道sigmoid函数是单调递增的,那么对上式函数求最值,就是对里面的image函数求最值。imageimage是常数,所以就是求image这个方程的最大值。怎么求最大值呢?

因为令imageimage所以imageimageimage。也就是求image的最大值。

在矩阵理论中我们有Cauchy柯西不等式:image。因为image,所以即image

通过柯西不等式我们发现了image的上界:image,并且我们知道当image的时候,能够达到上界。

但是需要注意的是,我们发现这种上界跟x有关系,也就是说这个上界是不固定的,并且随着x二范数的增加而增加。所以我们求这个方程的最大值,就必须固定这个方程的上界,也就是固定x二范数。(注意x二范数固定不是说方程的未知数x就固定了,你的x里面的100个xj还是可以变化,只要二范数不变就可以)

我们假设固定x的二范数image,然后求image的x的值,(w是已知量),即求下面这个方程组x的值:

image

我们求得的x的值为(口算即可算出):

image

这个image就是使image取到最大值的的输入。

现在你可能有一个疑问,上面是假设x的二范数image,可不可以是其他的值,答案是可以。你也可以把x的二范数等于2.

这样我们求得的使image取到最大值的输入是上面的那个image向量各元素都乘以image

其实你把x的二范数定成几都可以,最后用上面方法算出的image都是使image取到最大值,只是取的最大值的大小不一样。

但是image的增大不一定image就一直随着增大,因为我们知道sigmoid函数如图所示:

400px-Sigmoid_Function

所以image的值在5以上,image也不会增加了,就一直保持趋近于1.当然这里我们使image取得最大值不一定就要取到1,只要是最大值即可。

综上,你只要把输入x(注意这里的输入跟训练网络参数的训练样本没关系)限定在一个二范数a以内(二范数以内的x不可能使image取最大,这里要求输入x要在二范数a以内是使image上界不变,取到上界的image只能是x的二范数等于a且x=kw的输入值),那么我们就可以找到使image取到最大值的输入image

最后你想以图像的形式展示使image取最大值的输入x的时候,其实你没必要纠结应该把输入x的二范数限制在几,因为这里你只是在展示图像,而不管x的二范数限制在几,那些image不同的只是系数问题,而在图像上表示出来只是图像像素深浅的问题,而图像的明暗的布局并没有改变。所以你如果求一堆x哪个使image最大,如果有的话只能有一个值(这个x范数最大,且是权重参数的倍数),但是如果只是展示图像,那么只要你要展示的x只要是相应权重的n倍,展示效果都是一样的。在程序中也是除以了系数最大值,而不是把除以相应系数和。

(完)

原文地址:https://www.cnblogs.com/happylion/p/4213743.html