优化问题及机器学习中的关于梯度的一些解惑

什么是梯度?

首先梯度是一个向量,其次梯度是多元函数对各个分量求偏导数得到的向量。

为什么梯度垂直于切平面?

首先引入等值面的概念,对于函数W,比如说W = c的所有解是一个等值面。

经过c等值面上某点x的切平面,它包含在等值面上,经过点x的任意一条曲线的切线

假设有一条曲线$\vec r = \vec r (t)$,那么根据链式法则,对t求导

$$\frac{dW}{dt} =\nabla W * \frac{dr}{dt} $$

因为W = c, 等式左边为0,而$\frac{dr}{dt}$就是曲线在这点的速度向量v,所以有$\nabla W * v = 0$,即某点上的梯度与任意切线垂直。

为什么负梯度方向函数下降最快?

首先定义任意一个方向向量$\vec u$,如果函数W在u方向取一个截面,那么问题转化为对于某一个点,哪个截面的曲线下降最快?

对于每个截面的自变量向量$\vec r = \vec r (s)$,s是在这个方向上的步长,有$\vec r (s) = \vec r_{0} + s * \vec u$,所以$\frac {dr}{ds} =\vec u$

同样地通过链式法则,W在u方向对s求导

扫描二维码关注公众号,回复: 1776438 查看本文章

$$\frac{dW}{ds_{u}} =\nabla W * \frac{dr}{ds} $$

于是

$$\frac{dW}{ds_{u}} =\nabla W * \vec u $$

通过向量点乘公式

$$\frac{dW}{ds_{u}} =||\nabla W|| * ||\vec u|| cose\theta $$

$\vec u$为单位向量

$$\frac{dW}{ds_{u}} =||\nabla W|| * ||\vec u|| cose\theta $$

也就是说,W在任一方向的导数就是梯度在这个方向的投影的长度,任一方向中导数最大的方向就是在梯度方向,反之在负梯度方向导数最小

猜你喜欢

转载自www.cnblogs.com/learninglife/p/9238547.html
今日推荐