笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~
【吴恩达课程笔记专栏】
【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础
【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络
【深度学习】吴恩达课程笔记(三)——参数VS超参数、深度学习的实践层面
吴恩达课程笔记——参数VS超参数、深度学习的实践层面
六、参数VS超参数
1.参数和超参数的区别
参数(Parameters)是指模型内部需要学习的权重值。在训练过程中,模型通过反向传播算法来更新这些权重值以最小化损失函数。例如,在线性回归模型中,参数就是回归系数(即斜率和截距),在神经网络模型中,参数就是每个神经元之间的权重值。
超参数(Hyperparameters)是指模型训练过程中需要设置的一些参数,这些参数不能通过反向传播算法来更新,而是需要手动调整。超参数的选择可以影响模型的性能和训练效果。例如,在神经网络模型中,超参数包括学习率、批量大小、隐藏层大小等。
参数和超参数的区别在于,参数是模型内部需要学习的权重值,而超参数是模型训练过程中需要手动设置的一些参数。参数的值是通过训练数据自动学习得到的,而超参数的值需要手动调整,通常需要多次尝试和实验才能找到最佳的超参数组合。
2.什么是超参数?
超参数(Hyperparameters)是机器学习算法中的一种参数,它们用于控制模型训练过程的行为,而不是直接由数据决定。与模型的权重(即学习参数)不同,超参数通常在训练之前设定,并且需要手动调整。
超参数的选择对模型的性能和训练效果有很大影响。不同的超参数组合可能导致不同的模型表现,因此选择合适的超参数非常重要。
常见的超参数包括:
- 学习率(Learning Rate):控制模型在每次迭代中更新权重的步长大小。
- 正则化参数(Regularization Parameter):用于控制模型的复杂度,防止过拟合。
- 批量大小(Batch Size):指定每次迭代中用于更新权重的样本数量。
- 迭代次数(Number of Iterations):定义模型在训练集上迭代的次数。
- 隐藏层大小(Size of Hidden Layers):适用于神经网络模型,用于设置隐藏层的节点数量。
- 决策树的深度(Depth of Decision Trees):适用于决策树模型,用于控制树的最大深度。
- 核函数选择(Choice of Kernel Function):适用于支持向量机模型,用于定义数据之间的相似度。
- 聚类算法中的簇数量(Number of Clusters):适用于聚类算法,用于指定期望的簇数量。
选择合适的超参数通常需要通过试验和交叉验证来确定最佳组合。通常,可以使用网格搜索、随机搜索或贝叶斯优化等技术来自动化超参数调整的过程,以找到最佳的超参数组合。
3.如何寻找超参数的最优值?
寻找超参数的最优值是一个重要且挑战性的任务。以下是一些常用的方法和技巧:
- 网格搜索(Grid Search):网格搜索是一种简单直观的方法,它通过指定超参数的候选值组成的网格来遍历所有可能的组合。对于每个组合,使用交叉验证来评估模型性能,并选择具有最佳性能的超参数组合。
- 随机搜索(Random Search):与网格搜索相比,随机搜索不是遍历所有可能的组合,而是在给定的超参数空间中随机选择一组超参数进行评估。通过随机选择,可以更高效地探索超参数空间,并找到良好的超参数组合。
- 贝叶斯优化(Bayesian Optimization):贝叶斯优化是一种基于贝叶斯推断的序列模型优化方法。它通过建立一个代理模型来估计目标函数(例如模型的性能),并使用贝叶斯推断来指导下一次选择哪个超参数组合进行评估。贝叶斯优化可以有效地在较少的迭代次数内找到最优的超参数组合。
- 交叉验证(Cross-Validation):交叉验证是一种评估模型性能的技术,也可以用于超参数调整。通过将训练数据分成多个子集,然后在每个子集上轮流进行模型训练和验证,可以获得更稳健的性能评估结果。在超参数调整过程中,使用交叉验证来评估每个超参数组合的性能,并选择具有最佳性能的组合。
- 学习曲线(Learning Curve):学习曲线是一种可视化工具,用于分析模型在不同超参数设置下的性能变化。通过绘制训练集大小和模型性能之间的关系,可以帮助判断模型是否过拟合或欠拟合,并指导超参数的选择。
- 自动化调参工具:还有一些自动化调参工具可用于帮助寻找最优的超参数组合,例如Hyperopt、Optuna和scikit-optimize等。这些工具结合了上述方法,并提供了更高级的优化算法和搜索策略,以加速超参数调整的过程。
需要注意的是,超参数的最优值是相对的,它取决于数据集、模型类型和具体任务等因素。因此,超参数调整通常需要反复尝试和实验,以找到最适合特定情况的超参数组合。
七、深度学习的实践层面
1.训练 / 验证 / 测试集(Train / Dev / Test)
训练集:训练模型
验证集:验证算法正确性
测试集:测试算法效率
2.偏差 / 方差 (Bias / Variance)
- 偏差大:训练集上的结果较差
- 方差大:验证集上的结果比训练集上的差的较多
Train set error | Dew set error | 偏差 / 方差 |
---|---|---|
1% | 11% | 高方差 |
15% | 16% | 高偏差 |
15% | 30% | 高方差、高偏差 |
0.5% | 1% | 低方差、低偏差 |
具体例子
偏差 / 方差 | 图像 |
---|---|
高偏差(欠拟合) | ![]() |
适度拟合 | ![]() |
高方差(过拟合) | ![]() |
高偏差 & 高方差 | ![]() |
3.机器学习基础
遇到的问题 | 可尝试的解决办法 |
---|---|
高偏差(欠拟合) | 1.更大的神经网络 2.更多的神经网络层数 |
高方差(过拟合) | 1.更多训练数据 2.正则化 |
4.L2正则化
范数的概念
在数学中,范数(Norm)是一种将向量映射到非负实数的函数。在机器学习和优化问题中,范数常用于衡量向量的大小或长度。
Lp 范数:
L1 范数:也称为曼哈顿范数(Manhattan Norm)。L1 范数在一些特定场景下具有稀疏性,能够产生稀疏解。
L2 范数:也称为欧几里得范数(Euclidean Norm)。L2 范数在许多优化问题中都有很好的性质,例如它可以用于正则化、最小二乘问题等。
L∞ 范数:也称为切比雪夫范数(Chebyshev Norm),定义为向量中各个元素绝对值的最大值。L∞ 范数可以用于约束向量各个元素的最大值。
在机器学习中,范数常用于正则化、特征选择、最小二乘问题等。例如,在线性回归模型中,可以使用 L1 或 L2 范数对模型参数进行正则化,以避免过拟合。在特征选择中,可以使用 L1 范数来选择具有重要影响的特征,从而减少特征数量,提高模型的泛化能力。
正则化的定义
在机器学习中,正则化(Regularization)是一种常用的技术,旨在减少模型的复杂度,避免过拟合,提高模型的泛化能力。正则化通过在损失函数中加入一个惩罚项来实现。
通常,机器学习模型的目标是最小化训练误差(即损失函数),但是如果模型过于复杂,则可能会在训练数据上表现良好,但在新数据上表现不佳,这种现象称为过拟合(高方差)。为了避免过拟合,可以使用正则化技术来限制模型的复杂度。
常见的正则化方法包括:
- L1 正则化:也称为 Lasso 正则化,通过在损失函数中添加 L1 范数惩罚项,使得模型参数中的一些权重变成 0,从而实现特征选择和稀疏性。
- L2 正则化:也称为 Ridge 正则化,通过在损失函数中添加 L2 范数惩罚项,使得模型参数的值变得更小,从而避免过拟合。
- 弹性网络正则化:结合了 L1 和 L2 正则化,可以同时实现特征选择和过拟合控制。
L2正则化
∣ ∣ • ∣ ∣ F 2 : 矩阵的弗罗贝尼乌斯范数( F r o b e n i u s ) ∣ ∣ W [ L ] ∣ ∣ F 2 = ∑ i = 1 n [ l − 1 ] ∑ j = 1 n [ l ] ( W i j [ l ] ) 2 W : ( n [ l − 1 ] , n [ l ] ) ||•||^2_F:矩阵的弗罗贝尼乌斯范数(Frobenius)\\ ||W^{[L]}||^2_F=\sum_{i=1}^{n^{[l-1]}}\sum_{j=1}^{n^{[l]}}(W_{ij}^{[l]})^2\\ W:(n^{[l-1]},n^{[l]}) ∣∣•∣∣F2:矩阵的弗罗贝尼乌斯范数(Frobenius)∣∣W[L]∣∣F2=i=1∑n[l−1]j=1∑n[l](Wij[l])2W:(n[l−1],n[l])
重定义损失函数为
λ : r e g u l a r i z a t i o n p a r a m e t e r J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ i , y i ) + λ 2 m ∑ l ∣ ∣ W [ l ] ∣ ∣ F 2 d W [ l ] = ( f r o m p r o p a g a t i o n ) + λ m W [ l ] W [ l ] = W [ l ] − α d W [ l ] = W [ l ] − α [ ( f r o m p r o p a g a t i o n ) + λ m W [ l ] ] = W [ l ] − α λ m W [ l ] − α ( f r o m p r o p a g a t i o n ) = ( 1 − α λ m ) W [ l ] − α ( f r o m p r o p a g a t i o n ) \lambda:regularization\ parameter \\ J(w,b)=\frac{1}{m}\sum_{i=1}^{m}{L(ŷ_i,y_i)}+\frac{\lambda}{2m}\sum_l||W^{[l]}||_F^{2} \\ dW^{[l]}=(from\ propagation)+\frac{\lambda}{m}W^{[l]} \\ W^{[l]}=W^{[l]}-\alpha dW^{[l]}\\ =W^{[l]}-\alpha[(from\ propagation)+\frac{\lambda}{m}W^{[l]}] \\ =W^{[l]}-\frac{\alpha\lambda}{m}W^{[l]}-\alpha(from\ propagation)\\ =(1-\frac{\alpha\lambda}{m})W^{[l]}-\alpha(from\ propagation)\\ λ:regularization parameterJ(w,b)=m1