深度学习理论篇之 (四) -- 梯度下降算法的魅力展现

       开尔文(Kelvins),为热力学温标或称绝对温标,是国际单位制中的温度单位。 [1] 开尔文温度常用符号K表示,其单位为开。每变化1K相当于变化1℃,计算起点不同。摄氏度以冰水混合物的温度为起点,而开尔文是以绝对零度作为计算起点,即-273.15℃=0K。开尔文过去也曾称为绝对温度。水的三相点温度为0.0076℃,也可以说开尔文是将水三相点的温度定义为273.16K后所得到的温度。2019年5月20日起,开尔文被定义为“对应玻尔兹曼常数 为1.380649×10^-23J·K^-1的热力学温度”。

      2018年11月16日 ,第26届国际计量大会通过“修订国际单位制”决议,正式更新包括国际标准质量单位“千克”在内的4项基本单位定义。新国际单位体系采用物理常数重新定义质量单位“千克”、电流单位“安培”、温度单位“开尔文”和物质的量单位“摩尔”。                                            

科普

知识

前言

在上一期的深度学习理论篇文章中,我们主要学习了感知机的基础知识,了解到感知机其实就是一系列的数学操作而已,给定一个输入,感知机将会给我们一个输出。然而,经过上周的文章,我们似乎还有许多不解,今天,我们将继续对感知机进行讲解,学习它的训练算法---梯度下降算法。

梯度下降算法

梯度下降算法是机器学习和深度学习中的训练算法的具体实现,换句话说没有它也就没有今天的机器学习和深度学习,它的作用在于使得我们的机器学习算法能够尽可能接近训练的目标(正常情况下不会完全接近目标),进而结束漫长的训练过程。

感知机结构

1.问题提出:首先回顾一下上一期文章的感知机,我们了解到感知机就是一个计算操作,然而我们的机器学习或者深度学习是一个训练的过程,何谓训练过程,也就是说学习的过程是可以不断迭代,反复进行,最终尽可能贴近我们的真实目标的,那么,这个训练过程(学习过程)到底是学习的什么呢?在感知机的组成中,包括了输入项,权重,激活函数,很显然,输入项和激活函数都是我们事先定义的,只有权重是我们不知道的,按照之前的文章,我们都是随机定义的,然而实际的情况是,我们需要得到最正确的权重,才能保证我们的输入数据一进去就能得到最终的输出结果,这就好比加法运算,我们知道+这个符号代表加法运算,我们输入两个加数,那么加法运算就一定会得出它们的和,而这个加法运算就是我们最终要学习的目标,换成感知机中的权重也一样可以类似理解,当我们的输入项乘以准确的权重而不是随机的权重,是不是就可以一次性就得到我们最终想要的结果呢?为了帮助更好的理解训练的过程,下面举一个简单的例子:

我们都知道 1m=100cm,但是他们之间的关系,我们可以通过一次次不断的训练或者说猜测来得到。假设我们的输入为:x, 权重为: w , 输出为: y, 可以得到:y = x*w  x可以理解为我们输入的1(m), 权重不知道,初始化为:0.1,因此,我们可以得到:yi = 1*0.1=0.1,然而我们的实际结果是y=100, 结果误差是:y-yi = 100-0.1=99.9, 这个时候我们知道误差太大了,也就意味着我们的权重设置过小了,此时,我们设置w=2, 则yi = 1*2=2, 此时的误差为:y-yi = 100-2=98,我们惊喜的发现,误差减小了,意味着,我们只要一直这样猜下去,我们就会得到w=100的时候,就能得到最终的输出结果了(当然,我们猜测的过程中可能会出现各种的笑话,如果我们随机的猜测w的值,在接近实际结果y的时候,也就是我们的误差不断减少的时候,我们是很开心的,因为马上就要成功了,这时候我们就会说,w老哥继续加油,我们的输出马上就靠近真实值了,然而当我们的误差变为负数,也就是我们的输出超过真实值的时候,意味着w的步子迈大了,以至于不是接近真实值,而是直接超过了真实值,这时候,我们就会说,w老哥,你跑偏了,快退回来一点,于是w就开始减小一点,再去计算误差),从最开始不知道w到最终我们得到准确的w的过程,就称之为训练过程,或者说学习过程。

但是聪明的你们一定发现了什么,惊喜的是原来这就是传说中的的学习过程,悲哀的是,原来学习的过程是一次次猜出来的 ,哈哈 这就太难了吧,w太小了,我们得叫它加速,w太大了,跑偏了,我们还得把它叫回来,跟小孩子一样啦。这个学习过程如果交给人类来做可能比较费时,但是交给强大的计算机这都不是事,但是呢,咱也不能说有资源就随便浪费是吧,因此,我们的学习过程肯定要有一个规划好的算法来执行才是最佳的,随机猜测都是不靠谱的,科学才是硬道理对吧,因此,梯度下降就随之出现了。。。

2.梯度下降:什么是梯度呢?还记得大一的高数吗,忘记了吗?,不存在的,梯度其实就是一个向量,它指向函数值上升最快的方向,相反,梯度前面添加一个符号,就是函数下降最快的方向,因此我们就可以不用像上面那样没有方向的去猜测w啦,而是根据函数下降或者上升最快的方向去猜测,这样学习过程就更加快了呢,此处有一个问题,我想问下大家,在上面的过程中,我们的w都是一直往上走的从0.1一直到100,那为什么这里说是梯度下降呢?有一个不太标准的解释是,因为w最开始是我们随机设置的,这里是0.1,那万一最开始设置的是120,10000呢,这个时候是不是w就要下降呢?因此,在学习的过程中,我们多问自己几个为什么,不断的反问自己真的懂了吗?确定不是似懂非懂?,也许会更加深入自己的理解和加深印象,而不是单纯的跟着别人的思路走,科研和学习的路上一定要具有自己独立的主见和判断思维,这才是绝胜之道,然而事实上,标准的解释与上面的解释相差甚远,换句话说,上面的解释仅仅是对下降两个字的解释,并不正确,这里仅仅提供了一种解释的说法而已,至于为什么说是梯度下降,标准的解释是,梯度是针对一个函数才会有梯度的,而函数又是什么呢?我们可以回顾一下学习过程中除了输出函数y以外,最有可能涉及到函数的地方,输入项,权重,输出y, 等等,还以一个误差对吧,是的,误差就是最有可能涉及到函数的地方了,还记得误差的表达式吗?

假设误差定义为:E = y-yi, 此处的y为我们的真实值,yi为我们的每一次输出值,根据公式,我们可以看到当我们的输出值渐渐靠近真实值y的时候,误差E就会不断的减小,最终趋近于0,也就是说这个时候我们终于猜对了w,以至于它和x的乘积的输出yi靠近了真实值y.

根据公式 :yi = x*w, 替换误差定义中的yi,则:E = y-x*w, 看看,数学是多么的奇妙,我们现在已经得到了误差函数, 此时,我们再来仔细观察一下误差函数就会发现,y是真实值,我们已知的,x是输入值,也是已知的,只有w是需要我们学习得出的,换句话说,误差函数E其实就是一个关于权重w的函数,显然,我们的学习过程就是要让误差函数最小啊,当误差函数最小的时候所取值的w就是我们最终要学习的w了,也就是说只要我们得到了E的最小值,那么相应的w也就得到了,是这样吧?因此,只要我们在误差函数的梯度下降方向上不断的减小,最终达到误差函数的最低点,也就得到了最终的w值,实际流程往下看哦!

我们的原始误差函数定义为:E = y-yi, 此处的y为我们的真实值,yi为我们的每一次输出值,然而,根据最好的经验来看,误差函数通常定义为:

相比我们定义来看,多了1/2,和平方项,多了个平方项在于数学中,用误差的平方比单纯的相减误差的评判更好一些,而多了个1/2原因在于方便求导,因为误差函数的梯度求解是需要在误差函数的当前值对w进行求导的,对上式求导的话,就会得到,1/2*2=1,抵消了平方项带来的2,总之写成上面对的式子不会对我们的最终实验结果产生大的偏差,甚至效果更好。改进后的误差函数图像如下图所示:

误差函数图像

如上图所示,我们的最终目标是是的误差函数最小,也就是图中的最低点,这时候的w就是我们需要寻找的最佳值,此外误差函数也成为目标函数。

3.梯度下降流程:首先,我们假设最开始误差函数处于左右的某一个随机点,由于此时的误差不是最小,那么我们就会采用梯度下降公式,向着误差函数的梯度下降方向移动,进行w的不断更新,误差函数就不断的减小,w就不断的靠近误差函数为最低的的w值,直到更新到误差函数的最低点附近时,此时的w即为最佳值。梯度下降公式,也即w的更新公式如下:

上图公式中,Wold代表的是上一次的训练中的w,Wnew为更新后的w,n表示的学习率,也就是步长,决定我们的下降方向的快慢,因为梯度下降是一个单位值,也就是只有方向,需要我们额外增加步长来调整训练的快慢,▽E(w)就代表当前误差函数对w的梯度。根据该公式,我们就可以不断的根据梯度值对w进行更新,然而更新的过程什么时候停止呢?通常情况下,知道默认误差函数小于哦我们设置的阈值就可以停止了,比如说该时刻的w对应的误差函数的值为0.0001之类的,我们就默认w已经学习好了,就会停止训练。至于梯度的公式推导其实还是要用点心得,篇幅所限,我们就不在分析了,有机会的话,我们在后期的文章中或者单独列出来与大家一起分享。

结语:

好了,各位,今天的分享内容到此结束了,仔细看看我们都学了啥呢?训练过程(学习过程)的深入解读,梯度下降算法的理论分析,数学定义等等,只要是具备大学高数基础的同学,今天的文章应该是十分好懂的,当然,文章中不可避免的出现一些过错,希望各位同学们帮忙指出为谢。

最后,我还想说一句,我们公众号的文章几乎都是原创,每篇更新的文章总花费时长在一个小时以上,有的甚至超过4个小时,我们不做知识的搬迁者,只做知识的解读者,用最简洁的话语带给大家不一样的体验,期待与大家共同学习,谢谢!

编辑:玥怡居士|审核:小圈圈居士

扫码关注

我们

深度学习理论篇之 (三) -- 感知机的横空出世

深度学习理论篇之 ---- 开山之石

深度学习理论篇之----前世、今生、未来

点个“在看”哟~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值