线性回归 调试方法

调试方法

特征缩放

对于某些不具有比较性的样本特征 x i x_i xi (比如对其他的x来说 x i x_i xi 相当大或者相当小),梯度下降的过程可能会非常漫长,并且可能来回波动才能最后收敛到全局的最小值。

在这样的情况下,可以对 x i x_i xi 进行缩放(如 x i ≔ α x i x_i≔αx_i xi:=αxi 或者 x i = x i / α x_i=x_i/α xi=xi/α),使得 x i x_i xi 与其他的 x x x具有可比性,以增加梯度下降的效率。

**通常将 x x x缩放至⟦-1,1⟧**的区间内。(只表示一个大致的范围,这不是绝对的。)

均值归一

将 x i x_i xi 替换为 x i − μ i x_i−μ_i xi−μi 使得特征值具有为0的平均值(对 x 0 x_0 x0 不适用)
x i : = ( x i − μ i ) / s i x_i:=(x_i−μ_i)/s_i xi:=(xi−μi)/si

定义 μ i μ_i μi 为训练集 X X X 的平均值, s i = ∣ x i m a x − x i m i n ∣ s_i=|x_imax−x_imin | si=∣ximax−ximin∣, 表示 x i x_i xi 的取值范围(近似值),或者直接设置为 s i s_i si 的标准差。

学习率(Learning rate)

梯度下降调试的方法:

  1. 绘制 m i n J ( θ ) − b a t c h minJ(θ)-batch minJ(θ)−batch的图像

    原则:每一个batch之后 θ 的值都应该减小,这样的图像能够通过直观地表现变化率来表现梯度下降是否收敛(变化率为0)。

  2. 自动收敛测试

    如果 J ( θ ) J(θ) J(θ)在某一次迭代之后的下降值小于某个值 ε ε ε后,就能够判断算法已经达到了收敛。
    ε ε ε的值比较难取,所以通常采取1.中的方法进行观测。

常见的α过大的 m i n J ( θ ) − b a t c h minJ(θ)-batch minJ(θ)−batch的图像:

α过大,出现梯度爆炸,每次 J ( θ ) J(θ) J(θ)变化很大,导致代价函数无法收敛

α过小,梯度消失,每次 J ( θ ) J(θ) J(θ)变化很小,导致代价函数收敛速度过慢

相关推荐
一直都在5725 小时前
数据结构入门:二叉排序树的删除算法
数据结构·算法
白云千载尽5 小时前
ego_planner算法的仿真环境(主要是ros)-算法的解耦实现.
算法·无人机·规划算法·后端优化·ego·ego_planner
极度畅想5 小时前
脑电模型实战系列(三):基于 KNN 的 DEAP 脑电情绪识别 KNN 算法与 Canberra 距离深度剖析(三)
机器学习·knn·脑机接口·情绪识别·bci·canberra距离
Swizard5 小时前
别再只会算直线距离了!用“马氏距离”揪出那个伪装的数据“卧底”
python·算法·ai
flashlight_hi6 小时前
LeetCode 分类刷题:199. 二叉树的右视图
javascript·算法·leetcode
一个没有感情的程序猿6 小时前
前端实现人体骨架检测与姿态对比:基于 MediaPipe 的完整方案
机器学习·计算机视觉·前端框架·开源
LYFlied6 小时前
【每日算法】LeetCode 46. 全排列
前端·算法·leetcode·面试·职场和发展
2301_823438026 小时前
【无标题】解析《采用非对称自玩实现强健多机器人群集的深度强化学习方法》
数据库·人工智能·算法
oscar9996 小时前
CSP-J教程——第二阶段第十二、十三课:排序与查找算法
数据结构·算法·排序算法
Dev7z6 小时前
基于Stanley算法的自动驾驶车辆路径跟踪控制研究
人工智能·机器学习·自动驾驶