吴恩达 深度学习 CLass2 Week1 总结

Practical aspects of Deep Learning

Class1-Week2共11节课,介绍了神经网络实际运用过程中涉及的一些概念和优化方法:

  • 数据集的划分(train/dev/test)
  • 偏差/方差(欠拟合/过拟合)概念与优化途径
  • 解决过拟合(方差过大)问题的一些途径:
    -Regularization/Dropout/Data augmentation/Early stopping

  • 输入集及参数的处理:Normalize/He initialize

  • 梯度检验:利用数值计算检验梯度计算是否正确(只在调试时使用)

1.数据集划分

吴恩达 深度学习 CLass2 Week1 总结

  • Train set: 用于训练模型
  • Dev set: 用于选择模型
  • Test set: 作为对未知数据集的无偏估计

因为Dev set/ Test set只是用于检验,因此只需保证其数量满足检验要求即可,可根据数据集的大小划分其所占比例。
- 当数据集较小时(如<10000):60% / 20%/ 20%
- 当数据集较大时:98/ 1/ 1 或者 99.5/ 0.25 / 0.25

注意:在实际运用过程中,需保证Dev set与Test set来自同一分布。


2.偏差/方差

吴恩达 深度学习 CLass2 Week1 总结
吴恩达 深度学习 CLass2 Week1 总结

在训练过程中,可能出现high bias(under-fitting)及high variance(over-fitting)的情况。

  • high bias : Train set error 较大
  • high variance : Dev set error 较大

通常我们希望Train set error / Dev set error 均较小(与human level相差不大)

那么如果出现了high bias or high variance应该怎么办呢?

  • high bias ———> Bigger network / Train longer
  • high variance—–> More data / Regularization

另:改变神经网络的结构也可能对上面的问题有效


3.过拟合解决方法

3.1 Regularization

吴恩达 深度学习 CLass2 Week1 总结

对于神经网络,Regularization在于对cost function新增正则项:

吴恩达 深度学习 CLass2 Week1 总结

正则项的引入是为了对参数W进行惩罚,避免其值过大。(假设:W越小,NN model越简单)

由于cost function引入了正则项,在backpropagation中,也要进行相应运算,详见上图。

3.2 Dropout

Dropout:即在每次遍历各层节点时,以一定概率keep_prop随机删除每一层中一部分节点,只利用剩余的节点完成计算。
注意:在做预测时,不适用Dropout,因为我们不希望预测的结果是随机的。

吴恩达 深度学习 CLass2 Week1 总结


4.输入集及参数处理

4.1 Normalizing inputs

吴恩达 深度学习 CLass2 Week1 总结

Normalizing traing sets包括两个步骤:

  1. 减去平均值(zero mean)
  2. normalize variance

这样做是为了获得均值为0 方差为σ平方 的数据分布,使特征值处于相似的范围内,有利于优化算法的进行。

吴恩达 深度学习 CLass2 Week1 总结

4.2 weight initialization

He initialize ; Xavier initialize

并不能理解视频中所讲的初始化方法的原理,希望知道的朋友告知!