Task03:动手学深度学习——过拟合和欠拟合、梯度消失和梯度爆炸、

(学习笔记,待补充)
本文目录如下:

  • 1.过拟合和欠拟合
    • 1.1过拟合和欠拟合的概念
    • 1.2.防止过拟合的方法
    • 1.3.防止欠拟合的方法
  • 2.梯度消失和梯度爆炸
    • 2.1 梯度消失(vanishing)和梯度爆炸(explosion)的概念
    • 2.2随机初始化模型参数
    • 2.3 考虑环境因素

1.过拟合和欠拟合

1.1过拟合和欠拟合的概念

1.1.1 训练误差和泛化误差

顾名思义,训练误差是指模型在训练集上的误差,而泛化误差是指模型在任意一个测试数据样本中表现出来的误差的期望,通常通过测试集数据集上的误差来近似。

而在实际应用当中,我们更关注的当然是泛化误差,即将模型应用到新样本中出现的误差。

1.1.2 过拟合和欠拟合

我们认为,一个好的模型,不仅训练误差要小,泛化误差也要小。那么,如果一个模型的训练误差很大,我们认为这个模型是欠拟合的;如果一个模型的训练误差很小,但是泛化误差却很大,我们则认为这个模型过拟合了。

1.2.防止过拟合的方法

1.2.1 L2正则化

(1)L2正则化的形式

(2)为什么L2正则化能够防止过拟合?

1.2.2 丢弃法dropout

dropout法很容易理解,就是以一定的概率随机地将隐藏层当中的单元丢弃,这样,网络就变得简单了,相对来说就不会那么容易过拟合。

假设为隐藏的单元,为丢弃概率,那么有的概率会被清零,有的概率会除以做拉升,为什么要除以呢?这是为了保证该层输出的期望值不变。

由于隐藏层

2.梯度消失和梯度爆炸

2.1 梯度消失(vanishing)和梯度爆炸(explosion)的概念

当神经网络的层数较多时,模型的数值稳定性容易变差
举个例子,假设输入和所有层的权重参数都是标量:0.2和5,那么神经网络的输出为(消失)和(爆炸)
因此,当层数较多时,梯度的计算也容易出现梯度消失或爆炸。

关于梯度消失和梯度爆炸的解决方法,以后会提到。

2.2随机初始化模型参数

为什么要随机初始化模型参数呢?
我们想象一下,如果每个隐藏层单元的参数都初始化为相同的值,那么每个单元输出的值都是一样的,在反向传播时,每个单元的参数梯度值相等,因此,无论有多少个隐藏层,本质上只有一个隐藏层单元在发挥作用,那么神经网络的意义就没有了,因此,需要随机初始化参数。

2.2.1 Xavier随机初始化

2.3 考虑环境因素

有时候模型训练没有问题,但是在实际应用的时候会出现问题,因此这里考虑一些环境因素对于模型的影响。

2.3.1 协变量偏移

直观理解:输入的分布随时间而变化,但是条件分布不会改变。
举个例子:训练的时候用的是猫和狗的真实图片,但是测试的时候用的是猫和狗的卡通图片。这种就叫做协变量发生了变化。

2.3.2 标签偏移

发生变化,但是没有发生变化。
举个例子,训练数据集,数据只包含流感p(y)的样本,而测试数据集有流感p(y)和q(y),其中不变的是流感的症状p(x|y)。这种就叫做发生了标签的偏移。

2.3.3 概念偏移

也就是说标签的定义发生了变化。比如,softdrink在美国不同地区的定义不一样。

你可能感兴趣的:(Task03:动手学深度学习——过拟合和欠拟合、梯度消失和梯度爆炸、)