从随机梯度下降到Mini-Batch

梯度下降法(gradient descent)是最小化目标函数时最容易想到的方法,但是其缺点也很明显:非常的慢。原因在于,在运行梯度下降时,需要遍历整个训练集,才能进行一步梯度下降,为了避免目标函数的振荡,学习率被限制在一个很小的范围内,所以每一步梯度下降参数的增量非常有限,最后的结果就是算法运行起来很慢。

随机梯度下降

一种更快的梯度下降法被称作随机梯度下降(stochastic gradient descent),对原始梯度下降做了一些改进使得算法运行得更快。

设目标函数(cost function)为

f(\dot{\vec{w}}) = \sum_{i=1}^{m}f_i(\dot{\vec{w}},\vec{x_i},\vec{y_i})

其中\dot{\vec{w}}为权重张量,(\dot{\vec{x_i}},\dot{\vec{y_i}})为某一个训练样本点。原始梯度下降的权重更新公式为

\Delta \dot{\vec{w}} = - \alpha \nabla_{\dot{\vec{w}}}f=-\alpha \sum_{i=1}^{m}\nabla_{\dot{\vec{w}}}f_i(\dot{\vec{w}},\vec{x_i},\vec{y_i})

随机梯度下降的基本原理是用某个随机的 \nabla_{\dot{\vec{w}}}f_i来替代整个 \nabla_{\dot{\vec{w}}}f,设为那么原公式就变得简单起来

\Delta \dot{\vec{w}} = - \alpha \nabla_{\dot{\vec{w}}}f =  - \alpha \nabla_{\dot{\vec{w}}}f_{rand}

也就是说只用计算一个训练样本的梯度就能进行一步梯度更新,效率大大提高。下面一个很自然的问题就是:该算法是否能收敛到最小值(附近)?答案是肯定的。由于

E(\nabla_{\dot{\vec{w}}}f_{rand}) = E(\nabla_{\dot{\vec{w}}}f)

那么当学习率\alpha 取某些值的时候,在期望的意义下是收敛的,更加精细的证明可以看 这篇论文

即便随机梯度下降在期望意义下收敛,但在极小点附近

\nabla_{\dot{\vec{w}}}f_{rand}(\vec{w^*}) \neq0

这降低了梯度下降的精度,所以后来衍生了SAG,SVRG,SDCA算法(先在这里挖个坑),根本目的就在于降低训练集方差导致的梯度方差,从而提升精度。

Mini-Batch梯度下降

Mini-Batch梯度下降也叫小批量梯度下降,基本原理是结合了原始的梯度下降(批量梯度)和随机梯度下降的一种折中方案。

具体来说,该算法将训练集分成若干个Mini-Batch(设为n),每个Mini-Batch含有相同的样本数量(设为k),计算过程变为:每遍历一个Mini-Batch更新一次梯度。

\begin{aligned} for\space i \space from \space 1 \space to \space n&:\\\quad \Delta \dot{\vec{w}} &= - \alpha \nabla_{\dot{\vec{w}}}f=-\alpha \sum_{i=n_1}^{n_k}\nabla_{\dot{\vec{w}}}f_i(\dot{\vec{w}},\vec{x_i},\vec{y_i})\\ \dot{\vec{w}}&=\dot{\vec{w}}-  \Delta \dot{\vec{w}}\end{aligned}

上述过程为遍历一次训练集所进行的梯度更新。显然,当Mini-Batch中batch size设置为1时,就是随机梯度法,当batch-size设置为m(训练集大小)时,就是原始梯度(批量梯度)法。所以Mini-Batch是批量梯度和随机梯度的一种折中方案。在精度和速度上都做了一些取舍。

至此,我们已经学习了随机梯度和Mini-Batch梯度下降,实践中,Mini-Batch梯度要用得更多一些。

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