神经网络的优化策略
实用策略
bias/variance
如果训练得到的参数模型对于train集合的拟合效果不好,则为高bias
如果训练得到的参数模型对于test集合的拟合效果不好,则为高variance
我们需要将网络优化到同时具有bias/variance。
在不考虑其他方法的前提下,可以小试一下增加网络层数和迭代次数等这种暴力手段,往往可以有效降低bias但是可能会产生过拟合的情况,产生很高的variance,出现过拟合我们就需要引入其他的方法,如果数据集合本身能够被很好的区分,暴力手段往往是有效的。但是如果数据本身是非结构化的(经常的情况),比如图片分类等,那暴力手段也只是锤在棉花上,因此需要加入一点柔劲,方法叫正则化,这个数学理论本身含义挺广的,我还是觉得英文会更地道点(Regularization),要时刻注意我们的目的是让两个值都能保持在一个较低的水平,例如对于模型A假设训练集准确率为0.99,测试集准确率为0.75,对于模型B训练集准确率为0.90,测试集准确率为0.89那么更能被作为实用的应该是模型B。正则化方法就可以起到这样的作用。
正则化
正则化往往解决的就是过拟合问题,解决过拟合除了正则化还有增加训练数据,这个方法效率会有效,但是成本也高。对于常规神经网络,我们选取的损失函数往往如下:
通常情况下拟合系数参量w已经足够。
上述的正则化方法叫做:L2正则化,还有L1正则化,也就是正则项不平方,这样有人说可以压缩参数量,因为有部分会为0,没有深究,L2用的较多。λ是一个需要人为设定的参数,通常使用交叉验证集合要调试这个参数。添加了正则化项之后我们的前向网络没有变化,反向传播的求导需要改变如下:
从上式可以看出,我们试图让w变得小一点,正则化也成为权重衰减。