watch: PyTorch - 刘二 03 | Gradient Descent

训练模型的最常用算法

what is best model for the data?

linear model, 随机猜测一个斜率(权重),找让误差最小的最优权重。

通常损失函数有多个参数,穷举某一区间中所有点,搜索最优参数,计算量太大(1个参数搜索100个点,2个参数就是100^2)

分治:先分大块(4x4)搜索,确定一个小区域,再在小区域中分(4x4)搜索。但是如果cost function 很粗糙,。

寻找使cost funciton 最小的权重,是一个优化问题:

$$ Mean Square Error: cost(w) = \frac{1}{N} \sum_{n=1}^N (\hat{y_n}- y_n)^2 \ w^* = \underset{w}{argmin} cost(w) $$

梯度下降:

初始权重,确定滚动方向,到达最低点

$w= w- \alpha \frac{\partial cost}{\partial w}$ (a 是学习率)

梯度下降只能找到局部最优。实际上,深度神经网络的损失函数并没有很多局部最优,但是存在鞍点,它的梯度为零,到达了按点没办法继续迭代。

随机