1. 梯度下降法是什么?为什么它如此重要?
想象一下你正在玩一个蒙眼下山的游戏。你站在山顶,目标是找到最低点,但你看不见周围的环境,只能靠脚感受地面的倾斜程度。这时候你会怎么做?很自然地,你会用脚试探哪个方向是下坡的,然后往那个方向迈一步。接着重复这个过程,直到感觉不到明显的下坡——恭喜,你找到了山谷的最低点!
这就是梯度下降法的核心思想。在机器学习中,我们经常需要找到使损失函数(可以理解为"预测错误程度"的数学表达)最小的参数组合。梯度下降就是帮助我们"蒙眼下山"的导航工具:
- 梯度(Gradient)就像你脚下感受到的坡度方向
- 下降(Descent)就是沿着这个方向移动
- 学习率(步长)决定你每次迈步的大小
我第一次接触这个概念时,被各种数学符号吓到了。但后来发现,只要抓住"找最低点"这个核心目标,理解起来就容易多了。比如训练一个预测房价的模型时,梯度下降会自动调整权重参数,让预测误差越来越小。
2. 梯度下降的工作原理:拆解三步走
2.1 第一步:选择起点
就像爬山要选个出发点一样,梯度下降需要初始参数值。这个起点可以是随机选择的,也可以根据经验设定。我在实践中发现,好的初始值能加快收敛速度。
举个例子,假设我们要优化的函数是 f(x) = x² + 2x + 1:
import numpy as np
# 随机初始化参数
theta = np.random.randn() * 10
print(f"初始参数值: {theta:.4f}")
2.2 第二步:计算梯度
梯度就是函数在当前点的导数,告诉我们哪个方向能使函数值下降最快。对于上面的例子,导数计算很简单:
def gradient(x):
return 2*x + 2 # f


3664

被折叠的 条评论
为什么被折叠?



