zoukankan      html  css  js  c++  java
  • 使隐藏层某一神经元取最大激活的数学推导

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

    对这个函数求最值:

    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倍,展示效果都是一样的。在程序中也是除以了系数最大值,而不是把除以相应系数和。

    (完)

  • 相关阅读:
    LuoguP1016 旅行家的预算 (贪心)
    LuoguP2254 [NOI2005]瑰丽华尔兹 (单调队列优化DP)(用记忆化过了。。。)
    LuoguP2876 [USACO07JAN]解决问题Problem Solving (区间DP)(未完成)
    Luogu3275 [SCOI2011]糖果 (差分约束)
    Luogu1993 小K的农场 (差分约束)
    Luogu4427 [BJOI2018]求和 (树上差分)
    LuoguP1516 青蛙的约会 (Exgcd)
    POJ3903Stock Exchange (LIS)
    LuoguP1020 导弹拦截 (LIS)
    线性筛
  • 原文地址:https://www.cnblogs.com/happylion/p/4213743.html
Copyright © 2011-2022 走看看