整理并翻译自吴恩达深度系列视频教程 https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detail&id=2001702116&cid=2001693033 博主本人的观点将以楷体展示,请留意这点。
J(wl,bl)=1m∑i=1ml(y′,y)+λ2m∑l=1L∣∣wl∣∣F2J(w^{l}, b^{l})= \frac{1}{m}\sum_{i=1}^ml(y^{'},y) + \frac{\lambda}{2m} \sum_{l=1}^L||w^{l}||^2_FJ(wl,bl)=m1i=1∑ml(y′,y)+2mλl=1∑L∣∣wl∣∣F2
F表示Frobenius范数(缩减的L2范数),加上第二项(即正则项)惩罚了权值矩阵使其不能取太大值。
如果权重矩阵取值很小,如上图左一,会出现线性拟合高偏差欠拟合的状态;如果权重矩阵取值很大,则会出现过于灵活的非线性拟合高方差过拟合的状态。
这张图里绿色的计算部分表示了正则项对www更新的影响,它相当于取了一个(1−αλm)w(1-\frac{\alpha\lambda}{m})w(1−mαλ)w的值来按照没有正则项时的更新方法更新www,因为(1−αλm)(1-\frac{\alpha\lambda}{m})(1−mαλ)小于1,它惩罚性地降低了w的值。
因此正则化项的存在使得权重矩阵不会取值过大,就不会出现过拟合高方差,它相当于尽量把第一张图右一的所代表的状态尽量往第一张图左一代表的状态那边拉,从而得到第一张图中间"just right"的状态。
另外,如果在深度网络中某些结点的w取值很小(即权重矩阵中的一部分值很小),将会使得这些结点的作用变得微不足道,就好像根本就没有这些单元一样,其结果是深度网络会退化成越来越接近单纯的Logistic Regression。
事实上,残差网络就是使用降低权重值对结果的影响来减小网络加深对训练准确度降低而产生的影响,所以w取低值虽然不好,但是可以作为设计网络的一种思路。
有关范数请参考之前的一篇博文: 矩阵/向量的范数。
如果你使用的激活函数是tan(h)tan(h)tan(h), 那么当λ\lambdaλ取值很大的时候,W取值很小,经W计算得出的z也很小,z很小意味着g(z)=tan(z)g(z) = tan(z)g(z)=tan(z)很小,g(z)g(z)g(z)取值集中于上图红色部分,相当于tan(h)tan(h)tan(h)函数的线性部分,整个网络的状态接近第一张图左一的线性高偏差欠拟合状态。
这样一来,你的深度网络将只能计算出跟线性拟合差不了太远的结果,将会得到很接近线性函数的函数,而不是过于复杂的函数,所以也就不太可能出现过拟合的情况。
你最好加上正则化项,因为如果你不加上,在绘制损失函数JJJ的图时,可能不是很明显的像梯度那样的逐渐下降,你会在本周的编程作业里体会到这点。