梯度下降(Gradient Descent)法

本文参考 https://www.cnblogs.com/pinard/p/5970503.html 的文章,转载需注明原作者。

这一节我们为梯度下降法揭开神秘的面纱。

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降法(Gradient Descent)是最常用的方法之一。另外常用的是最小二乘法。

1. 梯度

首先我们来认识一下什么叫做梯度。
在微积分中,对多元函数的参数求偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。如f(x,y),其梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)。
梯度向量的几何意义,就是代表了函数变化最快的方向。这里可以这样理解,一个函数在某一个方向上的方向向量为 grad*cos∂,于是梯度就代表了其变化最快的方向。
即沿着梯度向量的方向,就是函数增加最快的方向,更容易找到函数的最大值。这是整个梯度下降法的基本思想。

2. 梯度下降与梯度上升

在机器学习中,我们需要对损失函数求最小化,这时候我们通过梯度下降法来一步步迭代求解。同样的,做一个变化可以反过来求解损失函数 -f(θ) 的最大值,这时候就转化为了梯度上升法。
简单来说,就是上山和下山的关系。

3. 梯度下降法详解

3.1 梯度下降的直观理解

这里的一个直观解释,就是理解成为下山问题。
我们在一座大山的某个位置,这个时候不知道下山的路线,只能“走一步算一步”,每一步都按照当前最陡的方向下山,即梯度负方向;然后在下一个点继续计算当前梯度调整方向,继续走下一步,直到我们觉得已经走下了山。
当然这样的方法,有可能使得我们没有走下山,而是走到了某个山谷处。这就是局部最优解和全局最优解之间的关系。

梯度下降法的直观表示

3.2 梯度下降的相关概念

在详细了解之前,我们需要了解一些概念。

  1. 步长(Learning Rate):步长即为我们通常理解的步长。其决定了沿着梯度负方向与移动的长度。对应上面下山的例子就是每一步走多少。
  2. 特征(Feature):指的是样本的输入,即属性。
  3. 假设函数(Hypothesis Function):监督学习中,用于拟合输入样本而假设的拟合函数。比如在线性模型中,假设函数就是输入属性的线性组合函数。例如:f(x)=w_1x_1+w_2x_2+...+
  4. 损失函数(Loss Function):线性模型中的损失函数:


3.3 梯度下降的详细计算

详细计算有两种表示:代数法和矩阵法。代数法更加容易理解,但是在单属性样本时更加实用;遇到多属性样本时候,矩阵法更加实用而且好计算。

3.3.1 梯度下降法的代数描述
  1. 先决条件:确定待优化模型的假设函数和损失函数。
    拿线性回归为例子,假设函数为(θi是参数模型):

    增加一个特征 x_0=1,则有:

    对应上面的假设函数,损失函数为(这里的2m就是求一下平均而已):
  2. 参数初始化:主要是初始化模型参数θi,算法终止距离ε ,步长α。
    在没有任何先验知识的情况下,我们可以把θi初始化为0,将步长初始化为1,然后在调优的时候再优化。
  3. 算法过程

这里是对于损失函数求最值,所以是针对损失函数来做梯度下降

(1) 确定损失函数的梯度 ,即对θi求偏导:


(2) 用步长乘以损失函数的梯度,就是当前位置下降的距离,对应于下山例子中的一步。
(3) 考察停止条件。对于所有的参数θi,是否梯度下降的距离都小于 算法终止距离ε,满足则停止迭代。反之进入下一步
(4) 更新所有的 θi,然后转到第一步。

需要注意的是:当前点的梯度是由所有样本决定的。至于样本的选择,下面会介绍到。

3.3.2 矩阵描述

只是把上面的换成了矩阵表示。其中涉及矩阵运算。具体见原帖中推导。

3.4 梯度下降的算法调优

使用梯度下降法时,需要进行调优。
1. 步长选择。
前面的计算中,我们默认取步长为1,但是实际上步长的选取和实际样本取值有关。我们需要多取几个步长,运行梯度下降,如果损失函数在减小就说明这个步长是有效的。
步长太大导致可能错过最优解,太小收敛太慢。
2. 参数的初始值选择
由于可能陷入局部最优解,之前也说过,一个可行的做法就是多试集中初始值。就好像刚刚下山问题中,从不同的地方开始下山。
3. 归一化
不同特征的取值量纲不同,导致迭代速度慢,我们可以对特征取值进行归一化。对于每个特征x,求出他的期望 和 标准差,转化为:


这样特征的新的期望为0,新的方差为1,迭代次数可以大大加快。


4. 梯度下降法大家族(BGD,SGD,MBGD)

这里需要注意的是,所有梯度下降法的基本思想和步骤都是一样的,不同之处在于不同形式的GD如何选取样本。

4.1 批量梯度下降法(Batch Gradient Descent)

批量梯度下降法,是梯度下降法中最常用的形式。具体做法就是在更新参数时 使用所有的样本来进行更新

4.2 随机梯度下降法(Stochastic Gradient Descent)

随机梯度下降法,在求梯度时没有用所有m个样本数据,而是选取了一个样本 j 来求梯度,对应的更新公式:



这里可以看出,随机梯度下降法SGD和BGD是两个极端,一个选择了一个样本,另外一个选择了所有的样本。各自的优缺点都很突出,从训练速度和训练精度上面可以很好的区分。
那么有没有一种比较折中的办法呢?有

4.3 小批量梯度下降法(Mini-batch Gradient Descent)

对于m个样本,我们采用x个子样本来迭代,1<x<m。一般可以取x=10,需要根据具体的样本数量来调整取得样本数量,对应的更新公式:



5. 梯度下降法和其他无约束优化算法的比较

机器学习中的无约束优化算法,有梯度下降法、最小二乘法、牛顿法、拟牛顿法。
梯度下降法和最小二乘法相比,梯度下降法需要选择步长,而最小二乘法不需要。梯度下降法是计算迭代解,最小二乘法是计算解析解。如果样本量不大而且存在解析解,最小二乘法是更加具有优势的,计算速度快。但是如果样本量很大,用最小二乘法需要计算一个超级大的逆矩阵,这时候就很慢,很难求解。
梯度下降法和牛顿法/拟牛顿法相比,两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长。

牛顿法不懂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容