吴恩达神经网络与深度学习第2课第一周(1-5)学习笔记

本节课的内容主要讲了一些训练的注意事项,或者其中的一些trick。即深度学习的实用层面。基本内容与吴恩达机器学习课程的内容相关,建议可以先听一遍机器学习课程,通过该视频回忆巩固。OK,直接开始

1.1 训练/开发/测试集

   

    该节内容主要包括介绍一些超参数,以及在训练集、交叉验证集(dev set)、测试集的选择上面的一些技巧。

    在数据集的划分上,通常情况下采用622的方式,但是,在数据集过大,超过10W,100W量级时,这个比例的选择会变化,通常情况下,训练集占比最重,可能达到90%或者95%,dev set 与测试集等分。还有要注意的是,当使用的数据,如图片来源不同,在质量的有区别,这时我们要保证的是Dev set与训练集的数据来源一致,是属于同一分布。

    设立 dev 的目的是, 从训练得到的多个模型中找到最优的模型, 而 test 的目的是检验选择的模型的泛化能力. 因此可以不要 test set. 上述的 train/test, 更确切的说法应为 train/dev.

1.2 偏差与方差

    该节主要讲在训练过程,评价训练的两个指标,分别是偏差和方差。


    通过该图可以对所谓的高偏差和高方差有个大致的理解,通俗来说,高偏差就以为这欠拟合,高方差意味着过拟合。

1.3 机器学习基础

    此处的内容可参考吴恩达机器学习视频,该部分在那部视频里有详细解释,此处笔记也参考上次视频笔记。

    训练误差远高于人类水平 human level, 意味着高偏差, 欠拟合; 检验误差与训练误差很大, 意味着高方差, 过拟合. (对于某项任务, 人类误差也很大的情况下, 训练误差很大, 但接近人类水平, 不称为欠拟合) (训练误差与人类水平 (误差) 之间的差距, 吴恩达老师称为可避免偏差 avoidable bias)。


    上图所示, 首先要保证 low bias (考究的是训练集的性能), 如果偏差很大, 尝试更大的神经网络, 比如训练更长时间, 修改模型; 在保证了 low bias 之后, 要检验 variance, 即验证集的性能, 如果方差很大, 可以尝试更多的验证数据, 或者通过正则项 regularization 引入惩罚. 最终得到低偏差低方差的模型

    减小偏差的技术, 可能会引起方差增大; 反之亦然. 这称为 偏差-方差平衡 bias-variance trade-off

1.4 正则化

1.5 正则化为啥能减小过拟合,即解决高偏差的问题

    该处结合机器学习中的正则化结合来看。

    首先来说机器学习中正则化的引入。如果用一个二次函数来拟合这些数据,那么它给了我们一个对数据很好的拟合。然而,如果我们用一个更高次的多项式去拟合,最终我们可能会得到一个曲线,它能很好地拟合训练集,但却并不是一个好的结果,因为它过度拟合了数据,因此,一般性并不是很好。



    上式即优化目标,即尽量减少代价函数的均方误差。


此处假使1000,是为了突出后θ3θ4的作用。也即惩罚项


    此处提出正则项,该方法思路是,如果我们的参数值对应一个较小值的话(参数值比较小),那么往往我们会得到一个形式更简单的假设。

在我们上面的例子中,我们惩罚的只是 θ3 和 θ4 ,使这两个值均接近于零,从而我们得到了一个更简单的假设,实际上这个假设大抵上是一个二次函数。

    但更一般地说,如果我们像惩罚 θ3 和 θ这样惩罚其它参数,那么我们往往可以得到一个相对较为简单的假设。

    在正则化里,我们要做的事情,就是把减小我们的代价函数(例子中是线性回归的代价函数)所有的参数值,因为我们并不知道是哪一个或哪几个要去缩小。

因此,我们需要修改代价函数,在这后面添加一项,就像我们在方括号里的这项。当我们添加一个额外的正则化项的时候,我们收缩了每个参数。

 λ 在这里我们称做正则化参数。 λ在这里做的就是平衡两个不同目标中的平衡关系。

    第一个目标就是我们想要训练,使假设更好地拟合训练数据。我们希望假设能够很好的适应训练集。

    而第二个目标是我们想要保持参数值较小。(通过正则化项)。具体关于机器学习中的正则化这部分将会在复习机器学习视频中再次进行理解,该出我们需要理解的是在深度学习视频中所介绍的正则化思想。

    首先,我们要先理解神经网络中损失函数的参数包括w,b,而正则化实际上是引入了对参数 (w, b) 的新的限制. 比如增加了 L2 正则项的成本函数, 最小化成本函数, 所求的是 L2 范数限制下的参数.。

    L2 正则化有时候也被称为 weights decay (权重衰减). 因为在添加了 L2 正则项的情况下, 反向传播时, dW^[l] 也多了一项 +lambda*W^[l]/m. 权值更新如下所示. 1-alpha*lambda/m < 1, weights decay 因此得名:


上图即为改写后的需要优化的目标损失函数。

    正则化能够防止过拟合, 一个理解角度是: 添加了正则项之后, 模型将更偏好于较小的权值. 假设正则化系数 lambda 足够大, 那么权值将趋向于 0, 这相当于闭掉了一些神经元, 模型更简单了, 由参数确定的分割超平面更平滑。

    正则化能够防止过拟合, 另一个理解角度是: 以 tanh 激活函数为例, 随着正则化系数 lambda 增大, 权值 W^[l] 减小, 则 z^[l]=W^[l]a^[l-1]+b^[l] 也减小 (暂时忽略 b), 对于 tanh 函数而言, 在 z 较小的情况下, 函数几乎是线性的. 大量线性单元构成的神经网络, 也可以简化为一个线性模型. 由此, 正则化后的分割超平面也就更平滑了, 防止了过拟合。


    以上即为本人对刚看过网易云课堂上吴恩达老师的神经网络与深度学习第二课第一周前五节的内容做的一个review,虽然好多内容也参考别人的理解,再此希望能帮助到读者对该部分内容加深理解,也能够使得自己在回顾时有个好的引入与启发。


猜你喜欢

转载自blog.csdn.net/yeyoenjoy/article/details/80498581
今日推荐