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的最小化目标函数

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

原文地址:https://www.cnblogs.com/peizhe123/p/8481131.html

时间: 2024-08-03 11:13:07

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

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

听说最近冒出的大批呱儿子个个都是撑着眼皮也要看书的无眠小青蛙.我们学习Machine Learning的脚步又怎能停下来?动动手指,上滑开始~ 今天的内容是 [特征工程-结构化数据] 场景描述 特征工程是指结合问题寻找有效的特征并进行处理成适合模型的输入形式.机器学习中有句经典的话叫做"Garbage in, garbage out",意思是如果输入的数据是垃圾,那么得到的结果也是垃圾.可以看出模型成败的关键并不仅仅取决于模型的选取,还取决于我们是否有根据特定的问题找到了行之有效的输入

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

来看看批量归一化的有关问题吧!记得进入公号菜单"机器学习",复习之前的系列文章噢. 今天的内容是 [神经网络训练中的批量归一化] 场景描述 深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数,Dropout比例等,这些参数的选择会显著影响模型最终的训练效果.批量归一化(Batch Normalization, BN)方法从数据分布入手,有效减弱了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力. 问题描述 BN基本动机与原理是什么? BN的具体实现

Hulu机器学习问题与解答系列 | 十九:主题模型

今天的内容是 [主题模型] 场景描述 基于Bag-Of-Words(或N-gram)的文本表示模型有一个明显的缺陷,就是无法识别出不同的词(或词组)具有相同主题的情况.我们需要一种技术能够将具有相同主题的词(或词组)映射到同一维度上去,于是产生了主题模型(Topic Model).主题模型是一种特殊的概率图模型.想象一下我们如何判定两个不同的词具有相同的主题呢?这两个词可能有更高的概率出现在同一主题的文档中:换句话说,给定某一主题,这两个词的产生概率都是比较高的,而另一些不太相关的词产生的概率则

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

这是本周第二篇机器学习,也是Hulu面试题系列的第十七篇了~ 之前的所有内容都可以在菜单栏的"机器学习"中找到,愿你温故,知新. 今天的内容是 [随机梯度下降算法之经典变种] 场景描述 提到Deep Learning中的优化方法,人们都会想到Stochastic Gradient Descent (SGD),但是SGD并不是理想的万金油,反而有时会成为一个坑.当你设计出一个deep neural network时,如果只知道用SGD来训练,不少情况下你得到一个很差的训练结果,于是你放弃

Hulu机器学习问题与解答系列 | 十一:Seq2Seq

你可以点击菜单栏的"机器学习",回顾本系列前几期的全部内容,并留言发表你的感悟与想法. 今天的内容是 [Seq2Seq] 场景描述 作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解:同时我们在说话.打字.开车等过程中,也在不断地输出序列的声音.文字.操作等信号.在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本.语音.视频.点击流等等.因此如何更好的对序列进行建模,一向是研究的要点. 2013年来,随着深度学习的发展,Seq2Seq(s

Hulu机器学习问题与解答系列 | 十二:注意力机制

几天不见想死你们啦~ 今儿的课题很好玩,跟上队伍一起来读! 今天的内容是 [注意力机制] 场景描述 作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解:同时我们在说话.打字.开车等过程中,也在不断地输出序列的声音.文字.操作等信号.在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本.语音.视频.点击流等.因此如何更好的对序列进行建模,一向是研究的要点. 为了解决这些问题,注意力机制(attention mechanism)被引入Seq2Seq模型中

Hulu机器学习问题与解答系列 | 十四:如何对高斯分布进行采样

欢迎回到"采样"系列~ 今天的内容是 [如何对高斯分布进行采样] 场景描述 高斯分布,又称正态分布,是一个在数学.物理及工程领域都非常重要的概率分布.在实际应用中,我们经常需要对高斯分布进行采样.虽然在很多编程语言中,直接调用一个函数就可以生成高斯分布随机数,但了解其中的具体算法能够加深我们对相关概率统计知识的理解:此外,高斯分布的采样方法有多种,通过展示不同的采样方法在高斯分布上的具体操作以及性能对比,我们会对这些采样方法有更直观的印象. 问题描述 如果让你来实现一个高斯分布随机数生

Hulu机器学习问题与解答系列 | 第八弹:强化学习 (二)

答应你们的解答部分来啦! "视频游戏里的强化学习" 场景描述 游戏是强化学习最有代表性也是最合适的应用领域之一,其几乎涵盖了强化学习所有的要素,例如环境:游戏本身的状态,动作:用户操作,机器人:程序,回馈:得分.输赢等.通过输入原始像素来玩视频游戏,是人工智能成熟的标志之一.雅达利(Atari)是20世纪七八十年代红极一时的电脑游戏,类似于国内的红白机游戏,但是画面元素要更简单一些.它的模拟器相对成熟简单,使用雅达利游戏来测试强化学习,是非常合适的.应用场景可以描述为:在离散的时间轴上

Java学习系列(二十四)Java正则表达式详解

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/45501777 前言 正则表达式可以说是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换.在实例演示之前先了解一下Pattern.Matcher这两个工具类,Pattern:编译好的带匹配的模板(如:Pattern.compile("[a-z]{2}");/ / 取2个小写字母):Matcher:匹配目标字符串后产生的结果(如:pattern.m