首页 > 代码库 > 使隐藏层某一神经元取最大激活的数学推导
使隐藏层某一神经元取最大激活的数学推导
求使隐藏层某一个神经元取到最大激活的输入问题,即
对这个函数求最值:
…………………………………...(j=1,2..100)是100个方程未知量
其中f是sigmoid函数
我们知道sigmoid函数是单调递增的,那么对上式函数求最值,就是对里面的函数求最值。,是常数,所以就是求这个方程的最大值。怎么求最大值呢?
因为令和所以。也就是求的最大值。
在矩阵理论中我们有Cauchy柯西不等式:。因为,所以即。
通过柯西不等式我们发现了的上界:,并且我们知道当的时候,能够达到上界。
但是需要注意的是,我们发现这种上界跟x有关系,也就是说这个上界是不固定的,并且随着x二范数的增加而增加。所以我们求这个方程的最大值,就必须固定这个方程的上界,也就是固定x二范数。(注意x二范数固定不是说方程的未知数x就固定了,你的x里面的100个xj还是可以变化,只要二范数不变就可以)
我们假设固定x的二范数,然后求的x的值,(w是已知量),即求下面这个方程组x的值:
我们求得的x的值为(口算即可算出):
这个就是使取到最大值的的输入。
现在你可能有一个疑问,上面是假设x的二范数,可不可以是其他的值,答案是可以。你也可以把x的二范数等于2.
这样我们求得的使取到最大值的输入是上面的那个向量各元素都乘以。
其实你把x的二范数定成几都可以,最后用上面方法算出的都是使取到最大值,只是取的最大值的大小不一样。
但是的增大不一定就一直随着增大,因为我们知道sigmoid函数如图所示:
所以的值在5以上,也不会增加了,就一直保持趋近于1.当然这里我们使取得最大值不一定就要取到1,只要是最大值即可。
综上,你只要把输入x(注意这里的输入跟训练网络参数的训练样本没关系)限定在一个二范数a以内(二范数以内的x不可能使取最大,这里要求输入x要在二范数a以内是使上界不变,取到上界的只能是x的二范数等于a且x=kw的输入值),那么我们就可以找到使取到最大值的输入。
最后你想以图像的形式展示使取最大值的输入x的时候,其实你没必要纠结应该把输入x的二范数限制在几,因为这里你只是在展示图像,而不管x的二范数限制在几,那些不同的只是系数问题,而在图像上表示出来只是图像像素深浅的问题,而图像的明暗的布局并没有改变。所以你如果求一堆x哪个使最大,如果有的话只能有一个值(这个x范数最大,且是权重参数的倍数),但是如果只是展示图像,那么只要你要展示的x只要是相应权重的n倍,展示效果都是一样的。在程序中也是除以了系数最大值,而不是把除以相应系数和。
(完)
使隐藏层某一神经元取最大激活的数学推导