Hulu机器学习问题与解答系列 | 二十四:随机梯度下降法

Posted peizhe123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hulu机器学习问题与解答系列 | 二十四:随机梯度下降法相关的知识,希望对你有一定的参考价值。

Hulu优秀的作者们每天和公式抗争,只为提升你们的技能,感动的话就把文章看完,然后哭一个吧技术分享图片

 

今天的内容是

【随机梯度下降法】

 

场景描述

深度学习得以在近几年迅速占领工业界和学术界的高地,重要原因之一是数据量的爆炸式增长。如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,而深度学习算法因其强大的表示能力,性能得以持续增长,甚至在一些任务上超越人类。因此有人戏称,“得数据者得天下”。

技术分享图片

经典的优化方法,例如梯度下降法,每次迭代更新需要用到所有的训练数据,这给求解大数据、大规模的优化问题带来了挑战。掌握基于大量训练数据求解模型的方法,对于掌握机器学习,尤其是深度学习至关重要。

 

问题描述

针对训练数据量过大的问题,当前有哪些优化求解算法?

 

先验知识:概率论、梯度下降法

 

解答与分析

在机器学习中,优化问题的目标函数通常可以表示成

技术分享图片

其中θ是待优化的模型参数,x是模型输入,f(x, θ)是模型的实际输出,y是模型的目标输出,L(·,·)刻画了模型在数据(x, y)上的损失,Pdata表示数据的分布,E表示期望。J(θ)刻画了当参数为θ时,模型在所有数据上的平均损失,我们希望能够找到使得平均损失最小的模型参数,也就是求解优化问题

技术分享图片

为了求解该问题,梯度下降法的迭代更新公式为

技术分享图片

其中α>0是步长。若采用所有训练数据的平均损失来近似目标函数及其梯度,即

技术分享图片

其中M表示训练数据的个数,则对模型参数的单次更新需要遍历所有的训练数据,这在M很大时是不可取的。

为了解决该问题,随机梯度下降法(stochastic gradient descent, SGD)采用单个训练数据的损失近似平均损失,即

技术分享图片

因此,随机梯度下降法用单个训练数据即可对模型参数进行一次更新,大大加快了收敛速率。该方法也非常适用于数据源源不断到来的在线场景。

为了降低梯度的方差从而使得算法的收敛更加稳定,也为了充分利用高度优化的矩阵运算操作,实际中我们会同时处理若干训练数据,该方法被称为小批量梯度下降法(mini-batch gradient descent)。假设需要处理m个训练数据{xi1, yi1, …, xim, yim},则目标函数及其梯度为

技术分享图片

对于小批量梯度下降法,有三点需要注意的地方:

  1. 如何选取参数m?在不同的应用中,最优的m通常会不一样,需要通过调参选取。一般m取2的幂次时能充分利用矩阵运算操作,所以我们可以在2的幂次中挑选最优的取值,例如64,128,256,512等。

  2. 如何挑选m个训练数据?为了避免数据的特定顺序给算法收敛带来的影响,一般会在每次遍历训练数据之前,先对所有的数据进行随机排序,然后顺序挑选m个训练数据进行训练,直至遍历完所有的数据。

  3. 如何选取学习速率α?为了加快收敛速率同时提高求解精度,通常会选取递减的学习速率方案。算法一开始能够以较快的速率收敛到最优解附近,再以较小的速率精细调整最优解。最优的学习速率方案也通常需要调参才能得到。

综上,我们通常采用小批量梯度下降法解决训练数据量过大的问题,每次迭代更新只需要处理m个训练数据即可,其中m是一个远小于总数据量M的常数,能够大大加快收敛速率。

 


 

下一题预告

【初识生成式对抗网络(GANs)】

 

场景描述

2014年的一天,Goodfellow与好友相约到酒吧聊天。也许平日里工作压力太大,脑细胞已耗尽了创作的激情,在酒吧的片刻放松催生了一个绝妙的学术点子,然后就有了GANs的传说。GANs全称为生成式对抗网络,是一个训练生成模型的新框架。

技术分享图片

GANs自提出之日起,就迅速风靡深度学习的各个角落,GANs的变种更是雨后春笋般进入人们的视野,诸如:WGAN、InfoGAN、f-GANs、BiGAN、DCGAN、IRGAN等等。

技术分享图片

GANs之火,就连任何初入深度学习的新手都能略说一二。GANs刚提出时没有华丽的数学推演,描绘出的是一幅魅力感极强的故事画面,恰好契合了东方文化中太极图的深刻含义——万物在相生相克中演化,听起来很有意思。想象GANs框架是一幅太极图,“太极生两仪”,这里“两仪”就是生成器和判别器,生成器负责“生”,判别器负责“灭”,这一生一灭间有了万物。具体说来,生成器在初始混沌中孕育有形万物,判别器甄别过滤有形万物,扮演一种末日大审判的角色。回到严谨的学术语言上,生成器从一个先验分布中采得随机信号,经过神经网络的“妙手”转换,得到一个模拟真实数据的样本;判别器既接收来自生成器的模拟样本,也接收来自实际数据集的真实样本,我们不告诉判别器这个样本是哪里来的,需要它判断样本的来源。判别器试图区分这两类样本,生成器则试图造出迷惑判别器的模拟样本,两者自然构成一对“冤家”,置身于一种对抗的环境。然而,对抗不是目的,在对抗中让双方能力各有所长才是目的,理想情况下最终达到一种平衡,使得双方的能力以臻完美,彼此都没有了更进一步的空间。

技术分享图片

 

问题描述

关于GANs,从基本理论到具体模型再到实验设计,我们依次思考三个问题:

(1)GANs可看作一个双人minimax游戏,请给出游戏的value function。我们知道在理想情况下最终会达到一个纳什均衡点,此时生成器表示为G*,判别器表示为D*,请给出解(G*, D*)和value function的值;在未达到均衡时,我们将生成器G固定,去寻找当前下最优的判别器DG*,请给出DG*和此时的value function。至此的答案都很容易在原论文中找到,这里进一步发问,倘若固定D,我们将G优化到底,那么解GD*和此时的value function是什么?

(2)发明GANs的初衷是为了更好地对概率生成模型作估计,我们知道在应用传统概率生成模型(如:马尔科夫场、贝叶斯网)时会涉及大量难以完成的概率推断计算,GANs是如何避开这类计算的?

(3)实验中训练GANs的过程会如描述的那么完美吗,求解G的最小化目标函数

技术分享图片

在训练中会遇到什么问题,你有什么解决方案?

以上是关于Hulu机器学习问题与解答系列 | 二十四:随机梯度下降法的主要内容,如果未能解决你的问题,请参考以下文章

Hulu机器学习问题与解答系列 | 二十一:分类排序回归模型的评估

Hulu机器学习问题与解答系列 | 二十二:特征工程—结构化数据

Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化

Hulu机器学习问题与解答系列 | 十七:随机梯度下降算法之经典变种

Hulu机器学习问题与解答系列 | 第七弹:非监督学习算法与评估

Hulu机器学习问题与解答系列 | 第六弹:PCA算法