【深度学习入门基于Python的理论与实现】一书中,第六章,为何服从标准正态分布随机生成的权重初始值,经过5层sigmoid函数后,每一次的激活值(sigmoid输出值)都是两端多中间少。
书中没有细讲原因,我理解的应该是随着层数递进,越来越靠近0才对,然而各层输出值偏向几乎没怎么变化




这个现象可能是由于sigmoid函数的特性所导致的。sigmoid函数具有S形状,其输出值在接近两端的位置会趋近于0或1,而在中间位置则会比较平坦,输出值接近0.5。
在神经网络的训练中,通常会对权重进行随机初始化,如果这些权重服从标准正态分布,那么初始值中有一些非常大或非常小的值可能会导致一些神经元的输出在初始阶段就趋近于0或1,这会产生梯度消失的问题。梯度消失会使得神经元的更新变得非常缓慢,导致网络无法有效地学习。
另一方面来看,如果权重的初始值都比较接近0,那么每个神经元的输出值都会比较接近0.5,因为sigmoid函数在接近0的位置和接近1的位置都会趋近于0.5。这会使得网络的输出变得比较平坦,可能会导致欠拟合的问题。
所以,权重的初始值需要在保持随机性的同时避免过大或过小,以使得每个神经元的输出值能够在中间位置附近,避免梯度消失和欠拟合问题。此外,还可以采用其他的激活函数,如ReLU等,来避免这个问题。