深度神经网络的现代技术与数学基础
1. 深度神经网络的现代技术
神经网络设计是热门研究课题,其中一个难题是如何让更深的网络训练更稳定。AlphaGo Zero应用了一些前沿技术,下面为你介绍。
1.1 批量归一化(Batch Normalization)
深度神经网络中,每一层都能学习到原始数据更高层次的表示。但这些表示具体是什么呢?其实是原始数据的某些有意义属性,会在某一层特定神经元的激活值中以特定数值体现。不过,实际数值之间的映射是任意的,例如将一层的所有激活值乘以2,信息并未丢失,只是改变了尺度,原则上这种变换不影响网络的学习能力。
然而,激活值的绝对值会影响实际训练性能。批量归一化的思路是将每一层的激活值进行平移,使其以0为中心,再进行缩放,让方差为1。训练开始时,我们并不知道激活值的具体情况,批量归一化提供了一种在训练过程中动态学习正确平移和缩放的方案,随着输入的变化,归一化变换也会相应调整。
批量归一化为何能提升训练效果仍是研究热点。最初,研究者开发它是为了减少协变量偏移,训练时各层的激活值容易漂移,批量归一化能纠正这种漂移,减轻后续层的学习负担。但最新研究表明,协变量偏移可能没那么重要,其价值或许在于让损失函数更平滑。
虽然研究者还在探究其原理,但批量归一化的有效性已得到证实。Keras提供了 BatchNormalization 层,可添加到网络中。以下是在Keras卷积层添加批量归一化的示例代码:
from keras.models import Sequential
from keras
超级会员免费看
订阅专栏 解锁全文
13万+

被折叠的 条评论
为什么被折叠?



