网络参数初始化
神经网络一般依靠随机梯度下降法进行模型训练和参数更新,网络的最终性能与收敛得到的最优解直接相关,而收敛效果实际上又很大程度取决于网络参数最开始的初始化。理想的网络参数初始化使模型训练事半功倍,相反,糟糕的初始化方案不仅会影响网络收敛甚至会导致“梯度弥散”或“爆炸”致使训练失败。因此我们应选择合适的初始化方法。本文就具体来介绍常用的几种网络参数初始化方式。
全零初始化
通过合理的数据预处理和规范化,当网络收敛到稳定状态时,参数(权值)在理想情况下应基本保持正负各半的状态(此时期望为0)、因此,一种简单且听起来合理的参数初始化做法是,干脆将所有参数都初始化为0,因为这样可使得初始化全零时参数的期望与网络稳定时参数的期望一致为零。
这种方法有种弊端,就是对参数进行了全零初始化后,那么网络神经元将毫无能力对此做出改变,从而无法进行模型训练。
随机初始化
实际初始化时,我们希望所有参数期望值依旧接近0。随机参数服从高斯分布或均匀分布都是较有效的初始化方式。
其他初始化方法(推荐使用)
推荐使用的初始化方法:除了直接随机初始化网络参数,一种简便易行且十分有效的方式则是利用预训练模型——将预训练模型的参数作为新任务上模型的参数初始化。由于预训练模型已经在原先任务上收敛到较理想的局部最优解,加上很容易获得这些预训练模型,用此最优解作为新任务的参数初始化无疑是一个优质首选。
总结
1.网络参数初始化的优劣极大程度上决定了网络的最终性能;
2.同时也比较推荐的网络初始化方式为He方法,将参数初始化为服从高斯分布或均匀分布的较小随机数,同时对参数方法需施加规范化;
3.借助预训练模型中参数作为新任务参数初始化的方式是一种简便易行且十分有效的模型参数初始化方法。
注:文章选自《解析深度学习—卷积神经网络原理与视觉实践》魏秀参著