动手学深度学习Pytorch版本学习笔记 Task3

1.过拟合、欠拟合及其解决方案

过拟合:模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);

欠拟合:模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)。 在实践中,我们要尽可能同时应对欠拟合和过拟合。

解决过拟合的方法:权重衰减(L2 范数正则化)和丢弃法

2.梯度消失和梯度爆炸

a.梯度消失和梯度爆炸

假设一个层数为LL的多层感知机的第ll层H(l)H(l)的权重参数为W(l)W(l),输出层H(L)H(L)的权重参数为W(L)W(L)。为了便于讨论,不考虑偏差参数,且设所有隐藏层的激活函数为恒等映射(identity mapping)ϕ(x)=xϕ(x)=x。给定输入XX,多层感知机的第ll层的输出H(l)=XW(1)W(2)…W(l)H(l)=XW(1)W(2)…W(l)。此时,如果层数ll较大,H(l)H(l)的计算可能会出现衰减或爆炸。举个例子,假设输入和所有层的权重参数都是标量,如权重参数为0.2和5,多层感知机的第30层输出为输入XX分别与0.230≈1×10−210.230≈1×10−21(消失)和530≈9×1020530≈9×1020(爆炸)的乘积。当层数较多时,梯度的计算也容易出现消失或爆炸。

b.随机初始化模型参数
(1)PyTorch的默认随机初始化——线性主要使用正态分布的随机初始化方式
(2)Xavier随机初始化
c.考虑环境因素
(1)协变量偏移——p(x)变化,p(y/x)不变,测试集与训练集分布不一致
(2)标签偏移 ——p(y)变化,p(x/y)不变,测试集中出现训练集没有的标签
(3)概念偏移——p(y/x)发生变化,标签本身的定义发生变化的情况

3、循环神经网络进阶——处理梯度较容易出现衰减或爆炸(BPTT)问题
a.GRU(重置⻔、更新门)
b.LSTM(遗忘门、输入门、输出门、记忆细胞)
c.深度循环神经网络——用上一层的输出作为下一层的输入
d.双向循环神经网络——考虑前后的值对它的影响

你可能感兴趣的:(深度学习)