赛博土木A-深度学习04:多层感知机
1 简介
通过在输入与输出之间增加隐藏层,可以构建多层网络,前$L − 1$层看作表示,把最后一层看作线性预测器。
数学表示:
没有额外的处理,多层网络与单层线性网络没有本质的不同:
于是引入了非线性的激活函数$\sigma$,对于激活函数$\sigma()$的结果称为活性值。
2 激活函数
ReLU 函数
sigmod 函数
tanh
3 模型选择
3.1 训练误差与泛化误差
对于模型在训练集和理想状态的正确性可以用训练误差和泛化误差及进行表示:
训练误差:
模型在训练集上计算得到的误差。
泛化误差:
模型从原始样本的分布中抽取的无限多数据样本时,模型误差的期望。
显然泛化误差是一种抽象概念无法实际计算获得。
3.2 拟合与欠拟合
根据模型在训练集和测试集上的效果可以形成两种对模型的评价:
过拟合:
过拟合是指在训练集上准确性显著高于测试集。
欠拟合:
欠拟合情况下,模型在训练集和测试集上的准确性没有明显差距,但是整体正确性较低。
3.3 模型复杂性
采用不同策略的模型之间很难进行比较,只能泛泛的归纳为:参数数量,参数取值范围,训练迭代轮数。
在理论上模型复杂度越高,其能处理的任务更多。但是计算机是一个实践的学科,在理论只具有指导意义。复杂的模型需要足够大的训练集(成本高昂),过小的样本集容易导致欠拟合。
3.4 验证集
模型中存在人为设置的超参数。通常会根据在测试集上的表现来调整超参数。
如果我们将训练和测试过程都视为训练的过程,会出现超参数面对测试集过拟合的问题。
为此我们需要在增加一个样本集合用来充当前文测试集所扮演的角色,从何避免对测试集的过拟合。这个集合就是验证集。
k折交叉验证
将训练集分为K份,其中一份用作验证集,其余用于新的训练集。进行K次实验,取平均估计训练和验证误差。
4 正则化
正则化包含一系列用于纠正机器学习模型过拟合问题的技术。因此,正则化是一种用于提高模型泛化能力的方法。正则化可在增大训练误差的前提下提高泛化能力。换言之,正则化方法通常会导致对训练数据的预测不太准确,但对测试数据的预测更为准确。
4.1 范数
在机器学习中范数指的是从向量到标量的映射。
满足如下性质:
缩放:
三角不等式:
非负:
将欧几里得空间内的向量长度(相对坐标原点),推广到一般向量空间中:
上述表示称为$L_2$范式,为了减少受异常值的影响通常采用$L_1$范式:
给出范式的一般化表示$L_p$:
矩阵的Frobenius范数:
4.2 权重衰减
权重衰减用参数向量的范数($L_2$范数)来衡量模型的复杂度,然后将其作为惩罚项添加到损失函数中。
4.3 暂退法
暂退法在计算每层神经网络时引入噪声。在标准暂退法正则化中,每个中间活性值以暂退概率$p$进行替换:
参考文献
[1] 《动手学深度学习》 — 动手学深度学习 2.0.0 documentation[EB/OL]. [2024-12-21]. https://zh.d2l.ai/.
[2] 什么是正则化?| IBM[EB/OL]. (2023-11-10)[2024-12-21]. https://www.ibm.com/cn-zh/topics/regularization.