机器学习核心概念入门(三)--从特征缩放到模型优化
特征缩放

当你有不同的特征取值范围差异很大时,这可能导致梯度下降运行缓慢,但是重新缩放不同的特征,使他们都在相似范围内取值,可以加快梯度下降的速度。
定义
特征缩放是指把不同特征的数值调整到一个相似的范围,通常是【0,1】或均值为0,方差为1的标准范围,以便算法更稳定,高效地进行。
为什么特征取值范围差异大,梯度下降缓慢?
- 梯度尺度不同,更新步长在不同方向上差异很大
- 损失函数对不同权重的敏感度差异大;等高线呈椭圆形,长轴短轴的差距大;梯度下降沿着长轴方向缓慢移动,需要很多迭代才能收敛
- 学习率设大,容易在小尺度特征方向震荡;设小,沿大尺度特征方向收敛慢
- 可以想象在椭圆形的山谷中走到最低点:长轴很长,短轴很短->斜着走很慢;如果调整成圆形->可以直线走到最低点,更快
- 特征范围差异大->梯度方向不均衡->梯度下降步伐不一致->收敛速度慢甚至震荡
几种常见的缩放方法
1.均值归一化

- 特征被缩放到【-0.5,0.5】
- 数据中心为0
- 依赖最大值和最小值,范围固定
2.z-score 归一化

- 数据中心为0
- 方差为1
- 不依赖最大值最小值,更关注分布的离散程度
对比总结
| 特性 | 均值归一化 | Z-score归一化 |
| 公式 | ||
| 缩放尺度 | 【-1,1】或【-0.5,0.5】 | 方差1,理论上无界 |
| 依赖数据 | 最大值和最小值 | 标准差 |
| 对异常值敏感 | 高(最大最小受极端值影响大) | 中等(标准差受异常值影响,单笔最大值敏感度低) |
识别梯度下降是否收敛
作用
检查特征缩放是否有效,是否找到了全局最小值或最接近它的值。学习识别良好的梯度下降实现的样子,有助于我们找到更好的学习率alpha。
回想一下,梯度下降的任务是找到参数w和b来最小化代价函数j。
如何识别判断?
第一种->学习曲线
事先很难判断梯度下降需要多少次迭代才能收敛,所以可以创建一个如下图所示的图表(一个学习曲线)来尝试找出何时才能停止训练你的特定模型

- 训练模型时,记录每轮的训练损失
,将损失随迭代次数绘制成曲线。曲线趋于平稳,损失几乎不再下降,梯度接近零->收敛
- 优点:直观,易于理解,同时可观察训练和验证的表现
- 缺点:需要人工观察判断,不够自动化;对噪声或震荡的梯度不敏感,有时可能误判
第二种->自动收敛测试
概念
自动收敛测试是一种通过数学或程序判断梯度是否收敛的办法。一般通过计算梯度的大小或损失的变化率,当他们低于设定阈值时,就认为梯度收敛。
常用方法
梯度范数判断,损失变化判断,组合判断
- 优点:自动化,适合大规模训练;可以直接在训练程序中设置停止条件
- 缺点:阈值选择比较敏感,需要根据具体问题调整;对震荡梯度或局部平坦区域可能反应慢
选择合适的学习率
- 学习率太小会运行的非常慢,学习了太大可能会出现震荡导致不会收敛。
- 调试梯度下降正确实现的一个提示是,如果学习率足够小,成本函数应该在每次迭代中都减少
通过比较不同学习率的学习曲线(横轴为训练次数,纵轴为代价函数),观察区显得收敛速度和平稳性,就可以判断哪个学习率最合适
- 使用几个候选学习率分别训练模型,绘制学习曲线:
- 曲线表现:下降平稳且收敛到最低值->学习率合适;曲线震荡或发散->学习率过大;曲线下降过慢->学习率过小
特征工程与多项式回归
特征工程
在这个过程中,利用对问题的只是或直觉来设计新特征,通常是通过转化或组合问题的原始特征,以便让学习算法更容易做出准确的预测。因此根据你对应用的理解,有时并不仅仅限制于你一开始所拥有的特征,通过定义新特征,你可能能够得到一个更好的模型(特征构造)
还有一种特征工程的方法,可以让你拟合的不仅仅是直线,而是曲线非线性函数到我们的数据上,让我们接下来来看
多项式回归(结合多元线性回归和多项工程)
多项式回归是一种回归方法,他晕粗模型拟合非线性关系,而不是像普通线性回归那样只能拟合直线。
- 普通线性回归:
只能拟合一条直线
- 多项式回归:
通过增加x的高次项,可以拟合曲线或更复杂的非线性函数

多项式回归通过对原始特征做多项式扩展,把非线性拟合问题转化为线性回归问题,既能拟合曲线,又能保持线性回归求解的简便性。
更多推荐
所有评论(0)