吴恩达深度学习笔记(二)week1深度学习的实用层面
训练集、验证集、测试集
开发机器学习系统是一个高度迭代的过程
循环上面过程的效率决定了ML系统开发的效率,利用交叉验证的方法能有效得提高系统开发效率,交叉验证能很好的避免欠拟合和过拟合。
- 小数据时代:60% / 20% / 20%
- 大数据时代:98% / 1% / 1%(甚至训练集的比例更大)
偏差和方差
机器学习的基本方法
吴恩达老师提供的训练方法:
正则化
针对模型的过拟合,一般可以通过增加训练数据和正则化的方法来解决,但是并不是什么时候都能增加训练数据,这时正则化便能起到很好的作用。以逻辑回归为例,逻辑回归的代价函数如下:
- L2正则化:
- L1正则化:
为什么正则化有利于防止过拟合
我们可以从两方面获得启发式理解。其一,如下图所示,当发生过拟合时,举个极端的例子,把设置非常大,当我们优化代价函数时第二项成了我们主要优化的项,结果自然会被设置成很小,这就相当于中间的隐层“消失了”,相当于一个逻辑单元,最后变成了第一幅图中高偏差的情形,我们可以预见的是从右图过度到左图一定会经过第二幅图。
其二,我们知道当出现了过拟合时说明拟合的模型函数有很多高次方项,而当很小时,相当于把**函数的输入限制在原点附近,即**函数的“线性部分”
标准化输入(Normalizing inputs)
- 零均值化:
- 归一化方差:
为什么要标准化输入 ,因为有的特征取值的跨度比较大,而有的却比较小。如下图所示(以二维特征为例),当特征取值的范围相差比较大时,若不标准化输入则需要一个很小的学习速率才不会导致震荡(某一维度的震荡),标准化输入则可以避免这个问题。