首页 » 人工智能 »

(随机)梯度下降算法

2018年5月16日 / 47次阅读
人工神经网络

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

我们搞清楚了梯度的概念,就可以开始理解(随机)梯度下降算法。之所以随机二字在括弧内,是因为在梯度下降算法中增加随机机制,这只是一个加快算法运算速度的小技巧,不过这个小技巧被大量的使用。

补充一下随机梯度下降算法的英文:Stochastic Gradient Descent,简写为SGD。

 

如何来理解梯度下降?

假设我们要解决的问题是,使用人工神经网络来识别图片中的数字,输入是一张张的图片x(n个x),输出是数字0-9(y),我们有很多用来训练的数据集,假设我们的ANN是有一个隐藏层,一个输入层,一个输出层这样的3层MLP,每一层都有多个Sigmoid神经元,输出层含有10个神经元,用来表示y。在这样的条件下,我们要解决的问题是:寻找到ANN网络中的最合适的w和b(很多w和很多b),让下面这个数学等式中的C的值最小:

$$C(w,b)=\frac{1}{n}\sum_{x}\|y(x)-a\|^2$$

其中,\(a=g(w,b,x)\),a是ANN的输出,通过w,b和x来计算;x和y来自于训练集,是已知的量。

C其实就是这个ANN“识别”出来的a与正确答案y的差方和,而我们的目的,就是要找到一组w和b,让这个差方和最小,即让ANN计算出来的答案,跟标准答案尽可能的一致。

要做到这一点,科学家们就想到了使用梯度下降的方法。

上面那个数学等式,w和b是未知量,数量很多,我们先用二元函数来理解梯度下降。

首先要明确,梯度是一个向量,而且是变化率最大的那个方向,假设\(z=f(x,y)\)的图像如下:

(随机)梯度下降算法

(随机)梯度下降算法

再重复一下我们的目标,找到一组w和b,让C最小。从图像上来看,就是找到z凹下去的那个最凹的地方。而梯度方向是z变化最快的方向。

$$\Delta z=\nabla z \cdot (\Delta x, \Delta y)$$

我们可以取\((\Delta x, \Delta y)=-\eta \cdot \nabla z\),得:

$$\Delta z=-\eta \cdot \|\nabla z\|^2 $$

让\(\eta\)为正,这样\(\Delta z\)就一定是负数,这就表示z在缩小。

这时,x和y都变成了:

$$x \rightarrow x' = x -\eta \cdot \frac{\partial z}{\partial x}$$

$$y \rightarrow y' = y -\eta \cdot \frac{\partial z}{\partial y}$$

然后重复以上过程,继续缩小z,直到z最小。

这个过程就是梯度下降的过程,也同样就是梯度下降算法。\(\eta\)的专业名称叫learning rate,有人翻译为学习步长。步长选择越小,算法运行时间越长,但是精度越高。

现在回到\(C(w,b)\)这个函数,由于w和b太多,我们无法画出图形(超过了三维),但是道理跟上面的二元函数完全一样。最终得到的w和b,使得C在训练集的数据中,能够达到最小。这时候,这个ANN就训练好了,可以用其它数据来测试和验证。

梯度下降算法,就是找到一组w和b,让函数C的值最小。C函数,可以说成Cost Function,有的地方也是用Loss Function,让Cost最小,让Loss最小,都一样。

 

现在来说算法中的随机两个字

将梯度下降算法实现,是有些挑战的。随机就是用来解决其中一个问题,即计算量太大的问题。

在实践的时候,我们要计算梯度,即\(\nabla C\),在面对众多x输入的情况下,一般都是将每个x代入计算,然后去平均数。在x非常多的情况,这个计算将会非常耗时。

因此,科学家提出SGD算法,在梯度下降的基础上,增加随机二字。这个算法的中心思想是,通过随机选取一组x来近似估算\(\nabla C\),以达到加快运算加快网络学习的目的。

 

注意一个细节:有的时候Cost Function不会除以n,因为我们无法提前知道训练样本的数量,也许样本是在不断增加的。

此篇博文重在理解随机梯度下降算法(SGD)的思想,在具体代码实现的时候,还是有很多挑战的。

本文链接:http://www.maixj.net/ai/tidu-suanfa-17950
云上小悟 麦新杰(QQ:1093023102)

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

栏目

支付宝红包.每天领一次.

支付宝扫码领红包

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top