deeplearning.ai 吴恩达网上课程学习(九)——深度学习基础实践理论

参考链接:https://www.missshi.cn/api/view/blog/5a1ff5cf9112b3493d000000



本文主要包括:

1. 训练、验证、测试集的划分

2. 对偏差和方差的理解, 机器学习中解决高偏差/高方差的基本方法

3. 正则化基本理论 和 防止过拟合的方法

4. 如何加快训练速度

5. 梯度消失和梯度爆炸的概念

6. 梯度校验方法



1.训练、验证、测试集的划分

整个数据集分为训练集、验证集和测试集三个部分,我们需要利用训练集进行模型训练,然后通过验证集来判断我们训练模型的好坏,并找出其中最好的模型最终在测试集上进行评估。 

在之前的小样本的机器学习(样本数量不大的时候(1W以下)应用中,一个常见的分配方式是进行三七分配:即70%的数据用于训练,而30%的数据用于进行验证。 或者是6,2,2分配:即训练集、验证集和测试集分别占60%,20%,20%;当样本量是100W时,训练集、验证集和测试集分别占98%,1%,1%就足够了;如果样本量是1000万时,那么我们可以将训练集、验证集和测试集分别占99.6%,0.2%,0.2%。 

真实的应用数据(可能比较模糊)与我们所能拥有的更为大量的数据(高清)并不来源于同一个分布,我们首先需要保证验证集和测试集是来源于同一分布且与真实应用场景的分布相同(都比较模糊),而训练集可以包含一部分模糊图片。


2. 方差和偏差:

欠拟合——高偏差;过拟合——高方差

如果的确偏差很大,对训练集都不能很好的拟合时:

  • 采用更大的网络
  • 训练更长的时间
  • 换一个新的网络结构

当偏差降低到一个可接受的值时,我们将继续考虑其方差的问题。 

如果方差很大,模型在验证集上表现出的性能并不足够好,我们通常可以考虑一下思路:
  • 使用更多的数据进行训练
  • 正则化
  • 换一个新的网络结构
3.正则化基本理论:

① 解决过拟合(高偏差)问题原理:

deeplearning.ai 吴恩达网上课程学习(九)——深度学习基础实践理论

② 正则化方法:

(1)L2正则化(上面的原理)

(2)Dropout方法:

Dropout的基本原理: 遍历每层的神经元节点,并设置每层节点随机消失的概率。 我们将会得到一个节点更少,网络更加简单的模型结构。

(3)数据扩充 :

当我们无法获得更多的数据时,我们可以根据已有的数据来生成一些新的数据。 以图像领域为例,我们可以对原始图像进行任意翻转、裁剪等来生成一些新的样本。

(4)Early stop 

Early stop指的就是当验证集误差达到最低点后,就停止继续训练。 
缺点:就是无法单独来保证偏差和方差两个指标。因为提前终止训练会导致偏差无法继续下降。

4.加快训练速度

 归一化输入:(更容易的找到较优的值

(1)零均值化 :数据减去平均值;

(2)归一化方差 :

5.梯度消失和梯度爆炸

梯度消失或梯度爆炸:我们在训练一个较大的神经网络时,随着网络层数的增加、导数的值可能会变得非常大或者非常小,而这将会导致训练的难度加大。 

通过对网络权重进行合理的初始化,可以在一定程度上缓解梯度爆炸/消失问题。

deeplearning.ai 吴恩达网上课程学习(九)——深度学习基础实践理论

6.梯度校验方法

如何进行梯度校验:

deeplearning.ai 吴恩达网上课程学习(九)——深度学习基础实践理论