自娱自乐。
基础
多元函数定义为:
$$f(x) = f(x_1,…,x_n)$$ |
对应的梯度可以定义为:
$$\nabla f(x) = (\frac{\partial f(x)}{\partial x_1}, … ,\frac{\partial f(x)}{\partial x_n})$$ |
想计算目标函数的最小值,可以构建初始点:
$$x^{(0)}=(x_1^{0},…,x_n^{(n)})$$ |
基于学习率
$$\eta > 0$$ |
构建迭代过程,当
$$i \ge 0$$ |
时:
$$x_1^{(i+1)}=x_1^{(i)}-\eta \frac{\partial f(x^{(i)})}{\partial x_1}$$ |
… |
$$x_1^{(i+1)}=x_n^{(i)}-\eta \frac{\partial f(x^{(i)})}{\partial x_n}$$ |
其中
$$x^{(i)}=(x_1^{(i)},…,x_n^{(i)})$$ |
达到收敛时,迭代结束。
同理,得梯度下降或梯度上升的公式:
$$ g(x)=\begin{equation} \left\{ \begin{aligned} x-\eta \nabla f(x) \\ x+\eta \nabla f(x) \\ \end{aligned} \right. \end{equation}$$ |
回顾一下代价函数:
$$\begin{align} J(w,b) &=\frac{1}{m} \sum_{i=1}^m L(\hat y^{(i)},y^{(i)}) \\ &= -\frac{1}{m} \sum_{i=1}^m [y^{(i)}log \hat y^{(i)}+(1-y^{(i)})log(1- \hat y^{(i)})] \end{align}$$ |
由代价函数,获得一个凸图形,因而可以进行梯度下降求最优。
J(w) 是平面上横坐标为 w,纵坐标为 J(w) 的一条曲线,则迭代以下:
$$w := w – \alpha \frac{dJ(w)}{dw}$$ |
可以帮助 w 下降到(局部)最优位置。
α 是 Learning rate,学习率,也可以视为下降的步长。
同理,对于上面的的代价函数,需要同时迭代 w 和 b(偏导数):
$$w := w – \alpha \frac{\partial J(w,b)}{\partial w} \\ b := b – \alpha \frac{\partial J(w,b)}{\partial b}$$ |
对于学习率(步长)的控制非常关键:步长过小,下降的效率则很低,如果步长较大,则可能会在接近(局部)最优解的位置震荡。