MNIST训练前的预处理,为什么用归一化,而不是0均值?

MNIST训练时预处理使用归一化会的到很好的效果。
但是改用0均值时,会出现网络无法收敛的情况,损失为-NAN。
已邀请:

Banggui02 - 深度炼丹

赞同来自: 辛淼

-nan代表你的网络输出值变成无限大。改用0均值,会使得网络的输入数据的范围依旧保持在一个很大的范围内,这样使得在正向计算每层输出值时,同样可能会使得没得输出变得很大,在网络反向计算梯度的时候,由于又用残差乘以上一层的输出值,这样会使得梯度变得很大,由此得到网络的中权值参数也变得很大。这样当迭代很多次以后,可能权值参数就会变得无限大,这样在进行正向计算,得到网络输出值时,值自然也就变成无限大了,因此损失就变成无限大,loss也就变成-nan。

温南

赞同来自:

我好奇的是为什么会出现-nan这种东西

温南

赞同来自:

nan 和 -nan一样吗?

要回复问题请先登录注册