提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:本文要记录的大概内容:
动手学深度学习v2 ------ 沐神
提示:以下是本篇文章正文内容
一、多层感知机
1.模型选择
在机器学习中,我们通常在评估几个候选模型后选择最终的模型。 这个过程叫做模型选择。
2.训练误差和泛化误差
1.训练误差(training error)是指, 模型在训练数据集上计算得到的误差。 2.泛化误差(generalization error)是指, 模型应用在新数据集上的误差。
3.模考与高考的区别。
1.验证集与测试集
1.解决此问题的常见做法是将我们的数据分成三份, 除了训练和测试数据集之外,还增加一个验证数据集(validation dataset), 也叫验证集(validation set)。
2.评估模型好坏。val、验证集和训练集不能混在一起。
3.我们只会使用测试数据一次, 以评估最好的模型或比较一些模型效果。一但放生无法改变。
2. K折交叉验证
1.当训练数据稀缺时,我们甚至可能无法提供足够的数据来构成一个合适的验证集。
2.原始训练数据被分成K个不重叠的子集。 然后执行K次模型训练和验证,每次在K-1个子集上进行训练, 并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。 最后,通过对K次实验的结果取平均来估计训练和验证误差。
3.过拟合和欠拟合
1.欠拟合:没训练好。
2.过拟合:简单数据集上用了很深的神经网络。
1. 模型容量
2. 模型容量的影响
1.训练误差:对数据的拟合能力。
2.泛化误差:真正的误差。容易被无关的细节困扰。
3. 总结
4.权重衰退
处理过拟合的一种方法。实际上,限制特征的数量是缓解过拟合的一种常用技术。
1.均方范数
1.硬性
L2范数
2.柔性
原始损失和阀
3.参数更新
2.小结
1.正则化是处理过拟合的常用方法:在训练集的损失函数中加入惩罚项,以降低学习到的模型的复杂度。
2.保持模型简单的一个特别的选择是使用 𝐿2惩罚的权重衰减。这会导致学习算法更新步骤中的权重衰减。
3.权重衰减功能在深度学习框架的优化器中提供。
4.在同一训练代码实现中,不同的参数集可以有不同的更新行为。
5.丢弃法
以dropout的概率丢弃张量输入X中的元素,重新缩放剩余部分:将剩余部分除以1.0-dropout。
1.动机
暂退法在前向传播过程中,计算每一内部层的同时注入噪声,这已经成为训练神经网络的常用技术。
2.无偏差加入噪音
我们从表面上看是在训练过程中丢弃(drop out)一些神经元。
3.实践
4.注意
通常,我们在测试时不用暂退法。
5.总结
1.暂退法在前向传播过程中,计算每一内部层的同时丢弃一些神经元。
2.暂退法可以避免过拟合,它通常与控制权重向量的维数和大小结合使用的。
3.暂退法将活性值h替换为具有期望值h的随机变量。
4.暂退法仅在训练期间使用。
6.数值稳定性
1.梯度
2.多层感知机MLP
1.对Wh求导是矩阵M,然后再乘w向量=M’,M’是对角矩阵,因为一行数据只对应一列权重,对于其他权重都是0
2.因为括号里的是个向量,后面要和矩阵运算所以要做成diag matrix
3.因为向量x对自身的导数就是对角阵。
3.激活函数ReLU
4.梯度爆炸的问题
5.梯度消失
6.梯度消失的问题
7.总结
7.模型初始化
1.让训练更加稳定
2.让每层方差是一个常数
E是均值,Var是方差。导数是梯度,原样是输出。