从泰勒展开来看梯度下降算法

2019 年 4 月 9 日 深度学习每日摘要

题图:保罗·高更《沙滩上的大溪地女人》


老伙计梯度下降算法在深度学习中扮演着举足轻重的地位,今天我们来从另一个角度来看这个算法的推演。


我们知道,对于一个足够光滑的函数,大一时候学过的泰勒展开公式告诉我们,在已知该函数在某一点的各阶导数值的情况之下,可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。于是,对于一个损失函数函数g(w),我们现在知道它在w0处的函数值以及各阶导数值,如何从w0出发来找到g(w)的极小值呢?我们可以对g(w)在w0点处展开,只保留到一阶导数,得到如下公式(其中▽表示梯度):


需要注意的是,泰勒公式是一个近似表达式,若w距离w0越近,则近似效果越准确;反过来,若w偏离w0较大,那么近似效果就会比较差。因此,我们在用上式来代表g(w)的时候,应该遵守一个约束条件,这个约束是w距离w0的距离要足够小。我们可以用距离公式,表示距离的公式有很多,使用最常见的欧几里得距离公式,并且为了接下来求导方便,加上一个系数1/(2*lr)在前面,于是寻找g(w)的最小值就变成了对下面表达式求关于w的梯度:

求完梯度之后并设置其等于0,即可得到我们非常熟悉的梯度下降算法的原始公式:


这里的欧几里得距离公式也可以换成其他距离公式(下文延伸分享其他距离公式)。这同样也解释了,我们为什么有时候在损失函数里面加上一个L2损失函数会更好,这样可以防止梯度更新步幅过大,进而引发损失值发生剧烈的抖动。




延伸:


距离表示的是一个集合中不同元素远近的度量,当距离为0的时候表示这两个元素是相同的。数学中,我们学过的距离主要有以下几种:

  • 明可夫斯基距离,又称明氏距离,是一个定义在赋范空间的距离,赋范空间是指一个由范数构成的向量空间,明氏距离具有平移不变性和同质性,它的公式如下:

  • 上氏中,当p取不同值得时候,又可以细分为不同的距离,当p=1,称为曼哈顿距离;当p=2,称为欧几里得距离;当p=∞,称为切比雪夫距离。我们不禁要问,它们的区别是什么?为了更形象地展示它们,我画了三幅图来区分,每幅图中箭头表示的是从中心点到各个格子中心点的度量:


    图1,曼哈顿距离,它是所有坐标轴差值的求和,可以想象一个城市的街道是完全网格状的,那么你从一个地方走到另一个地方就必须得走成曼哈顿距离的形状。

    图2,欧几里得距离,这种距离是最常见的,勾股定理中用的就是这种距离。

    图3,切比雪夫距离,各个坐标轴差值的最大值。



除了明氏距离之外,我们在自然语言处理中还用过余弦距离,通常余弦距离是用来判断两个元素的相似度(例如文档或段落),我们可以通过如下公式来得到余弦距离的计算:

由此可见我们只关心两个向量的方向是否一致,而并不关心它们各自的幅度。当余弦值为1的时候,代表两个方向完全一致,即有相似性;当余弦值为0的时候,代表两个方向正交,可能只有少量相似性;当余弦值为-1的时候,方向完全相反,没有相似性。


还有一种距离也蛮常见,叫做马氏距离,它是衡量一个点到一个分布之间的距离,或者说偏离程度。给定分布的均值μ和协方差S,从点x到该分布的马氏距离的计算公式如下:

以上就是我们常见的距离及其表达式。

登录查看更多
13

相关内容

【斯坦福】凸优化圣经- Convex Optimization (附730pdf下载)
专知会员服务
211+阅读 · 2020年6月5日
机器学习速查手册,135页pdf
专知会员服务
335+阅读 · 2020年3月15日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
195+阅读 · 2020年2月11日
面试时让你手推公式不在害怕 | 梯度下降
计算机视觉life
14+阅读 · 2019年3月27日
博客 | 机器学习中的数学基础(凸优化)
AI研习社
14+阅读 · 2018年12月16日
BAT机器学习面试题1000题(331~335题)
七月在线实验室
12+阅读 · 2018年8月13日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
已删除
将门创投
10+阅读 · 2018年5月2日
【机器学习数学基础】动图解释泰勒级数(一)
机器学习研究会
5+阅读 · 2018年2月25日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
7+阅读 · 2017年12月25日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
BAT机器学习面试1000题系列(第36~40题)
七月在线实验室
8+阅读 · 2017年10月3日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
Arxiv
7+阅读 · 2018年8月28日
Arxiv
4+阅读 · 2018年3月19日
VIP会员
相关资讯
面试时让你手推公式不在害怕 | 梯度下降
计算机视觉life
14+阅读 · 2019年3月27日
博客 | 机器学习中的数学基础(凸优化)
AI研习社
14+阅读 · 2018年12月16日
BAT机器学习面试题1000题(331~335题)
七月在线实验室
12+阅读 · 2018年8月13日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
已删除
将门创投
10+阅读 · 2018年5月2日
【机器学习数学基础】动图解释泰勒级数(一)
机器学习研究会
5+阅读 · 2018年2月25日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
7+阅读 · 2017年12月25日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
BAT机器学习面试1000题系列(第36~40题)
七月在线实验室
8+阅读 · 2017年10月3日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
Top
微信扫码咨询专知VIP会员