首页 » 人工智能 »

神经网络input data normalization

2019年1月2日 / 3次阅读

打开支付宝首页,搜索“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/ai/input-data-normalization-19857
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德


前一篇:

栏目精选

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

Ctrl+D 收藏本页

栏目

AD

ppdai

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

网站二维码
go to top