首页 » 信息技术 »

神经网络input data normalization

2019年1月2日 / 24次阅读

  • 打开支付宝,搜索“ 529018372 ”,领取专属红包!每日支付每日领。

对神经网络输入数据进行normalization,其目的是为了防止神经元的输出过大(或过小),导致学习速度缓慢。normalizaiton的目的与weight和bias的合理初始化的目的是一样的,都是为加快网络的学习速度。

业界的最佳实践是,对于使用sigmoid的神经网络,input数据要normalize到0-1之间,对于使用tanh的神经网络,input的数据要normalize到-0.5-0.5之间(不是从-1到1,我想原因是想保持数据的deviation是1吧)。

不过,有人在网络上咨询对于使用ReLU的神经网络,如何做input data的normalization?是否就可以不做了?

我看到的回答依然是还是要做normalization,神经元输出值过大也可能会带来计算方面的困难。而这时的normalize范围,可以依据这样一个规则:保持均值为0,标准差1.

保持均值为0,其实在sigmoid作为神经元的时候,就已经不对了。tanh做到了,但是个人的测试结果不如sigmoid,有可能跟其值的范围跨度是2有关系。

从初始化weight和bias的角度看,在使用ReLU神经元激活函数的时候,可以直接考虑将数据normalize到跟sigmoid一样,0-1之间。

从input data normalization可以看出,神经网络的计算,其实并不关系具体的数值,关系的知识数据之间的关系。

 

也有人说,其实input data的normalization没有必要,可以是任何数值,只是一般情况下,通常的是rescale到-1到1这个区间而已。input data不是直接作为激活函数的参数,而是要一组数据参与一个线性计算。不做normalization可能会导致计算上的一些困难,比如overflow。

本文链接:http://www.maixj.net/ict/input-data-normalization-19857

相关文章

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:
推一篇:可靠正规,长期稳定,网络兼职项目!!

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top