神经网络为什么要归一化

神经网络为什么要归一化

1.数值问题。

   无容置疑,归一化的确可以避免一些不必要的数值问题。输入变量的数量级未致于会引起数值问题吧,但其实要引起也并不是那么困难。因为tansig的非线性区间大约在[-1.7,1.7]。意味着要使神经元有效,tansig( w1*x1 + w2*x2 +b) 里的 w1*x1 +w2*x2 +b 数量级应该在 1 (1.7所在的数量级)左右。这时输入较大,就意味着权值必须较小,一个较大,一个较小,两者相乘,就引起数值问题了。

   假如你的输入是421,你也许认为,这并不是一个太大的数,但因为有效权值大概会在1/421左右,例如0.00243,那么,在matlab里输入  421*0.00243 == 0.421*2.43

可以看到两者不相等了,说明已经引起数值问题了。

2.求解需要

   我们建立了神经网络模型后,只要找到的解足够好,我们的网络就能够正确的预测了。在训练前我们将数据归一化,说明数据归是为了更方便的求解。

那么,究竟给求解带来了什么方便呢?

     这个问题不能一概而论,不同的算法,在归一化中得到的好处各不相同。假若有一个很牛B的求解算法,那完全用不着归一化,不过目前大部算法,都比较需要归一化,特别是常用的梯度下降法(或梯度下降的衍生方法),归一化和不归一化,对梯度下降法的影响非常大。不同的算法,对归一化的依赖程序不同,例如列文伯格-马跨特算法(matlab工具箱的t
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值