冰冰点灯,照亮我家门前~
欢迎进入nnetinfo
用户名:
密码:
深圳学习数据分析,数据挖掘,请联系yahushuxue@163.com~
nnetinfo : 本网发布神经网络相关的学习与研讨内容。
当前位置:教学区
提取对应原始数据的权重和阈值
作者:xiaoH   日期:2015-11-16 14:11:42.0

=======  <文档仅供查阅和简单了解,深入了解请关注神经网络之家发布的___神经网络教学视频___>   ======

       我们知道,神经网络一般会先再训练数据归一化,再进行训练。这样训练出来的网络,在投入使用时,必须遵守:

先将输入归一化---->在网络中计算输出--->将输出反归一化。这样的过程是繁琐的。

      由于归一化和反归一化都是线性运算,而权值阈值与输入输出也是线性运算,能否将它们合并成一个线性运算?答

案当然是可以的!这正是本文要做的工作。

 

     讨论之前,这里再次强调一个基本概念:

            hideNode 指的是隐节点上的值,形如 w *x +b

            而 hideAct( hideActive) 则指隐节点上经过传递函数激活后的值,形如 tansig( w *x +b)

 

对于输入:输入归一化 合并到 输入&隐层 的权重:

      我们知道网络输入的归一化公式:

                                                (1)

                                 X        : 当前网络输入

                                       Xmin,xmax  : 训练数据中输入的最大值与最小值

                                       normX    : 当前输入x归一化后的值。

      通过上述公式,求得归一化的 normX后,就可以用 w *normX +b 得到隐层的值。显然,w 和 b 是输入(归一化后)

的权值和阈值,但不是原始输入数据的权值和阈值。

      现在,我们企图找到原始输入数据对应的的权值 Wtrue和阈值 Btrue,这样一来,就可以直接使用 Wtrue *x + Btrue

算隐层的值,而不再需要作归一化处理。

       下面利用 w,b(对应归一化后的输入数据的权值和阈值)求 Wtrue,Btrue(对应原始输入数据):

因为:

                                              

                                                                            第3个等号利用了(1)式

所以

                                                        

 

 

        同理,对于输出,我们希望找到 Wtrue和 Btrue ,使得Wtrue *hideAct + Btrue 就是输出的值。

对于输出:输出反归一化 合并到 隐层&输出 的权重:

由于在输出层

                                                            

由反归一化公式:

        

那么可得:

                                              

 

        注:对于多输入或多输出网络,公式可能不能直接使用,因为公式里的W,B等变量的维度不一致,计算会报错。在

使用的时候,还需要仔细考虑统一维度的问题,这里不再进行讨论

 

后语

      这样,利用上面讨论得到的两个公式,就能得到对应原始数据的权重和阈值,在网络投入使用时,就不再需要做归

一化和反归一化的步骤。

 

 

==============<原创文章,转载请说明来自神经网络之家www.nnetinfo.com>     ================