动手学深度学习新知
预处理
-
pd.get_dummies()
可获得one-hot编码,但有陷阱,可参考文献1。 -
降维时候的指定轴是保留轴。
-
点积、数量积、标量积都是向量相同位置的按元素乘积的和,即
torch.dot()
函数。 -
哈达玛积是矩阵的点积,即
A*B
。 -
矩阵-向量积用
torch.mv()
函数。 -
矩阵乘法用
@
或torch.mm()
函数。 -
范数是\(\left \| X \right \|_p = ({\sum^n \left| x_i \right|^p})^{1/p}\)。
线性神经网络
-
熵是信息量的期望。
-
高级索引
a[[row_index],[col_index]]
。 -
只有标量可以反向传播,所以一般torch中内置criterion都是在内部将张量mean()化。
-
反向传播将张量mean()或sum()为标量,一般都是mean(),可以减少梯度中的噪声。
-
net.apply(fn)
函数能将函数fn
递归到每一层网络。 -
规避softmax的overflow和underflow,可以首先将项减去最大值,然后将softmax与交叉熵相结合,即
log(exp(*)) = *
,这类似于LogSumExp技巧,可参考文献2。 -
单纯的增加隐藏层而不加入激活函数没有任何益处,因为单层网络就已经可以表示任何仿射函数。
-
学习率过小会局部收敛。
-
过拟合原因:
- 参数量(自由度)过大。
- 初始参数权重取值范围过大(参数空间大、梯度消失爆炸)。
- 训练样本的数量过少。
-
训练误差和验证误差都很大,且其差距很小,继续训练无法降低误差,则在证明该模型欠拟合,该复杂模型结构。
-
(对于线性回归),函数阶数等于数据样本数的多项式函数可以完美拟合训练集。
多层感知机
-
权重衰退是最常用正则化技术,有效性可以从拉格朗日乘数、权重衰减、贝叶斯、模型复杂度等多个角度理解,可以参考文献3进行学习。
-
正则化用范数的柔性限制限制权重大小,其\(L_2\)范数惩罚与权重矩阵的点积等价,可证,且范数惩罚是加入损失函数中,从而使权重受罚(权重受罚公式待推导)。
-
Dropout暂退法有效的有效性原理是具有噪音输入的训练等价于吉洪诺夫正则化,即在计算后一层之前每一层注入噪音会增加输入-输出的平滑性,有性生殖相较于无性生殖会破坏共适应性(但会是健壮性变强),同理,会使神经元健壮性更强,具体原理与表现可参考文献4、5。
-
暂退法将激活值替换为具有相同期望值的随机变量。
-
dropout放在激活函数后,如果放在激活函数前仍会导致置0的神经元在前向传播造成贡献,待证(可参考答案参考.4.6)。
-
神经网络层数过深会使得梯度乘积过深,而且特征值具有多样多样性 则会使得出现梯度爆炸或者梯度消失问题。
-
梯度爆炸是参数更新过大,破坏了模型的稳定收敛;梯度消失是参数更新过小,在更新时几乎不会移动。
-
激活函数sigmoid容易导致梯度消失,由函数的导数特性导致,只有在每层输入接近0时梯度正常。
-
神经网络参数的初始化问题(排列对称性、过大、过小)会导致梯度爆炸,排列对称性迭代无法打破(可加入正则化dropout打破)。
-
分布偏移是在许多情况下训练集和测试集不来自于同一个分布。
-
分布偏移一般有协变量偏移(训练和测试输入特征不一致,例如训练时是真照片,测试时是虚拟形象)、标签偏移(测试和训练标签分布不一致,或者标签分布随时间变化)和概念偏移。
-
真实风险或期望风险是模型在全体数据分布上的平均损失,而经验风险是模型在训练数据集上的平均损失,是真实风险的估计。
-
神经网络的真实目的是真实风险最小化,但训练数据对分布的体现不全面,使得训练中是使经验风险最小化,用经验风险近似真实风险。
-
协变量偏移纠正典型算法(前提是目标分布和源分布有重叠):
- 生成二元分类训练集\(\{(\textbf{x}_1, -1),...,(\textbf{x}_n, -1),(\textbf{u}_1, 1),...,(\textbf{u}_1, 1)\}\)
- 使用logistic回归训练二元分类器得到函数\(\textbf{h}\)
- 使用\(\beta_i = \exp(h(\textbf{x}_i))\)或更好的\(\beta_i = \min(\exp(h(\textbf{x}_i)), c)\)对训练数据进行加权。
- 使用权重 \(\beta_i\)进行\(\text{minimize}_{f} \frac{1}{n} \sum_{i=1}^{n} \beta_i l(f(\mathbf{x}_i), y_i)\)中\(\{(\textbf{x}_1, y_1),...,(\textbf{x}_n, y_n)\}\)的训练。
-
概念分布偏移纠正:使用新数据更新现有的网络权重代替从零开始训练。
-
在线学习:不断实时观测、估计、评估损失、训练、更新模式。
-
环境的变化(方式、速度...)决定采用算法的类型。
-
要实时监控评估优化系统,避免失控反馈循环。
-
影响经验风险接近真实风险程度的因素除分布偏移外:
-
样本大小:经验风险的准确性通常随着样本大小的增加而增加。较大的样本量提供了更多的信息,使得估计的风险更加可靠。
-
特征选择:选择恰当的特征可以减少噪声和冗余信息的影响,从而提高对真实风险的估计。良好的特征选择有助于提高模型的泛化能力。
-
模型复杂度:模型的复杂度与其在训练数据上的表现以及对真实风险的估计密切相关。过于简单的模型可能无法捕捉到数据中的复杂关系,而过于复杂的模型可能过度拟合训练数据。
-
数据质量:数据质量对于经验风险的准确性至关重要。低质量的数据、含有错误或缺失值的数据可能导致错误的模型训练和风险估计。
-
样本选择偏差:如果样本选择不恰当或存在偏差,例如采样方式不随机或样本并非代表总体。
-
噪声和异常值:数据中的噪声和异常值可能对经验风险的估计造成干扰。这些异常值可能使模型过度拟合,并导致对真实风险的估计不准确。
-
参考文献
-
pandas.get_dummies (独热编码)详解
-
一文弄懂LogSumExp技巧
-
“L1和L2正则化”直观理解(之一),从拉格朗日乘数法角度进行理解
-
深度学习中Dropout的作用和原理
-
Dropout的深入理解(基础介绍、模型描述、原理深入、代码实现以及变种)
答案参考
动手学深度学习习题解答