AI机器学习及python实现机器学习与计算机视觉

从导数到梯度下降--apple的学习笔记

2019-11-30  本文已影响0人  applecai

前言

  一年前就自学过,并且参加过机器学习的培训课。由于现在开始专注学习计算机视觉算法,所以需要复习下数学基础。

  这次学习等于是第二轮系统学习了。我的目的只是兴趣爱好,顺便给我的职场留一条后路或者成为加分项。多学习点技能也没什么不好的。特别是AI时代了。所以我的要求并不是快,也不是要背诵公式,我要的是从理解角度去记忆,并且要应用。否则学到的知识是没有用的。

1.导数的含义

重点:
  导数是变化率。说到率就会想到除法,没错就是自变量的变化率。f'(x)=\frac{f(x+\Delta x)-f(x)}{\Delta x},\Delta x无穷小的时候f'(x)就是在x点切线的斜率。也可以写为f'(x)=\frac{df(x)}{dx},这就更加形象的说明了导数是因变量对自变量的变化率。
  若一元函数F(x)是曲线,二阶导数是一阶导数的变化率,体现了曲线的凹凸性,代表了拐点。三阶导数是二阶导数的变化率,预测了某点之后的趋势是继续凹还是会变凸。这样就可以通过导数来绘制曲线了。
  还有一个比较形象的一阶导数为瞬时速度,二阶导数为加速度(即速度的变化率),三阶导数为类似于刹车的舒适体验感(即加速度的变化率)。

2.偏导数的含义

  对于一元函数来说,偏导数就是导数。对于二元函数来说,偏导数包括对x的导数(此时y为常数,不看做变量参数),同理包括对y的导数。如下为x_0,y_0处的偏导数公式
F'_x(x,y) = \frac{\partial F}{\partial x}\big|_{\substack{x=x_0 \\ y=y_0}}, F'_y(x,y)= \frac{\partial F}{\partial y}\big|_{\substack{x=x_0 \\ y=y_0}}
偏导数有个形象的感觉,如下图。二元函数其实是在三维空间的,如下图只是概念性的加速理解。三维空间可以通过x,y的参数方程添加限制,使F(x,y)变成F(x,y),x(t),y(t)三个方程,最终将t带入x和y变换为F(t)方程。

1.png

3.方向导数的含义

  方向导数是基于偏导数来的。方向导数的意思对于多元函数在某一个方向上的导数(偏导数是方向导数的特例,偏导数仅针对方向x和方向y)。对于某个方向的偏导数,其实可以将此方向用向量法拆分为x和y的分量。
P_0点沿与x轴成夹角\alpha的一条直线移动,这个移动方向可以看作是一个矢量\vec{l}={(cos\alpha,sin\alpha)}
公式如下:
\vec{P}\cdot\vec{l} = \frac{\partial F}{\partial x}cos\alpha+\frac{\partial F}{\partial y}sin\alpha
方向导数(向量)是原向量在某个方向上的投影的变化率

重点:方向导数就是偏导数合成向量与方向向量的内积。

4. 梯度的含义

  梯度是一个向量,它是带方向的。标量场中某一点上的梯度指向标量场增长最快的方向。再描述的具体些就是在空间中的某点,有很多方向,所以方向导数标量的最大值就是梯度值。而梯度的方向就是让其值最大的方向。

原因是内积同角度的值最大cos0^{\circ}=1

5. 梯度下降公式的含义

  重点来了,我前面1-4小结的长篇大论就是为了铺垫梯度下降是cos180^{\circ}=-1即梯度的反方向,则变量率从最大到变化率为反方向的最大,及为下降的最快的方向。
一阶梯度下降的公式也是从一阶泰勒展开式推导的,最终的公式为\theta = \theta_0-\eta\Delta f(\theta_0),通过不断迭代求,当之前的值和当前值小于0.00001后循环终止,求得函数的最小值。

"局部下降最快的方向就是梯度的负方向"是我这次一开始没有看懂的,而一年前死记硬背的。所以今天写了这个笔记。

上一篇下一篇

猜你喜欢

热点阅读