关于机器学习梯度下降的疑问(基于Andrew Ng CS229课程等高线图示例)
机器学习梯度下降的疑问(基于Andrew Ng CS229课程等高线图示例)
嘿,这个问题问得特别戳人——我当初刷CS229这段梯度下降的内容时,也盯着那个等高线图愣了好一会儿!
其实核心原因很简单:梯度下降的更新方向,是整个成本函数的负梯度方向,不是单个参数θ₀的单独最优方向。
你看到的θ₀从30往更大的数值走,看似远离了它的最优值25,但别忘了,这个等高线图是θ₀和另一个参数(比如θ₁)的联合成本曲面——每一步的更新是所有参数一起调整的,不是只看θ₀自己的“最优路径”。
举个生活化的例子:假设你站在一个山谷的侧坡上,谷底在你左前方,但你脚下的坡最陡的方向是先往右走两步,再顺着大坡滑下去。这时候你往右走的那两步,看似离谷底的横向位置更远了,但却是最快到达谷底的路径。梯度下降就是这个道理:它只盯着“当前位置成本下降最快的方向”,而不是单个参数的最优值方向。
Andrew Ng说的“方向正交于等高线”也能印证这一点——等高线是成本相等的区域,负梯度方向就是垂直于等高线、指向成本最低的方向。这个方向是全局成本的最优下降方向,不一定和单个参数的最优方向重合。在那个初始点,虽然θ₀单独看应该往25走,但结合θ₁的当前值,让θ₀先往大了调一点,能让整体成本下降得更多,这才是梯度下降的核心逻辑:看整体成本的变化,而非单个参数的局部最优。
而且线性回归的成本函数是严格凸函数,只要学习率设置合理,不管中间参数怎么“绕路”,最终都会收敛到那个唯一的全局最小值,完全不用担心跑偏~
备注:内容来源于stack exchange,提问作者frank
相关产品推荐
相关产品推荐

