问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

神经网络算法-梯度下降GradientDescent

发布网友 发布时间:2022-09-01 16:22

我来回答

1个回答

热心网友 时间:2023-01-25 10:33

神经网络文章索引

上一篇神经网络结构中,我们介绍了神经元的结构,激活函数以及每个神经元激活值的算法,涉及到权重、偏置值等。

上一篇结尾提到,对于28*28的黑白手写图像识别,我们需要13002个权重和偏置数值,才能让我们的神经网络最后输出正确结果。

所谓的机器学习,就是寻找这13002个数值的过程。首先这里有两点需要注意:

在负无穷到正无穷之间,如何获得一万多个数字最佳的匹配值?这比在全世界挑选1万人让TA们一起相爱还要难。

我们的做法是用计算机强大运算速度,暴力解决问题。

好了,现在,暴力不是问题,要想出奇迹的关键就在于如何找到如何 优化的规律

要想做优化,首先要明确目标,找到当前神经网络和期望结果之间的差距。

从下图可以看到,随机设定的神经网络最终输出的是混乱的一层(被*线框标出),距离最右边我们期望只点亮神经元3的情况差距很大。

我们把混乱输出层的每个神经元与期望层每个对应神经元激活值相减,然后平方,再累加在一起,这就是方差cost代价,如下图,计算得到cost是3.37。

我们用这个cost来表示当前神经网络13002个设定值和期望设定值之间的差距,当然,这个cost等于0是差距最小,也就是最接近期望设定值。——当然这只是针对数字3的1张图片来说,我们需要的是针对0~9共10个数字的数万张图片,cost都能是最小。

从下图,我们来看一下神经网络的功能。它能利用13002个设定值经过3层神经元激活值的计算,把784个像素亮度变为10个数字(我们期望这10个数字中只有一个是1,其他都是0)。

这13002个权重和偏置数字,加上激活值的算法,就是神经网络的“想法”。

我们再来看看代价函数的情况,如下图,它是利用很多很多的训练图片(已经明确了对应的数字),把13002个数字变为1个cost代价数。

写成函数形式

我们假设最简单的情况,只有1个权重和1个偏置:

x和y是任意可能的数值,我们希望知道当x和y是什么数值的时候z最小。

每一组[x,y]都对应唯一的z,我们可以假想,有无数个[x,y,z]这样的位置点,在三维空间坐标中,它们就会组成一个面(曲面或平面),如下图。

从几何意义上看,我们就是要找到凹陷最低的那个位置点的x,y的值,因为那里z也就是cost代价最低。

假设上面的xyz绘制的cost曲面是个山地,你是一个旅行者,需要行走找到最低点的位置,你会怎么办?

没错,只要一直往下走,那么就能走到所在区域的最低点。——当然,如果山后面还有更深的山谷,那么你可能找到的只是局部最低点,而并非世界最低点。

实际上,对于复杂的超*度来说,找到世界最低点几乎是不可能任务。我们唯一能做的就是多找几个局部最低点,然后选择其中最低的那个。

同样,如果我们落脚在[x',y'],那么可以尝试对比[x'+0.1,y'],[x'-0.1,y'],[x',y'-0.1],[x',y'+0.1],如果[x'+0.1,y']是最低的,那么我们就走到这里,然后继续尝试对比四周点的高度。这就是梯度下降的算法。

如下图,我们沿着虚线一步一步下山找到最低点。

首先快速的从下图了解几个基本概念。
下图的弧线表示的是某个函数y=f(x),比如抛物线方程y=x 2 。
曲线上任取两个点a,b,它们对应x和x+dx。(d是指德尔塔大写Δ,小写δ)
ab两点对应的y的差是dy。
现在直线ab看上去是曲线的割线(有ab两个交点)。
假设b点沿着曲线,越来越靠近a点,那么dx极限趋近于0,这时候dy也会越来越小趋近于0,但是!我们会意识到dy/dx永远不会是0,而最终它仍然是角∠cab的对边比邻边,也就是正切三角函数值。
实际上,这也正是曲线的切线的定义。
可以想象,我们取的a点越是靠右,那么这个切线越是竖直。
如果我们把这个切线看做表示某个一次方程,如y=mx+n这种形式,那么a点越靠右,直线越竖直,m值也就越大。
我们把m值叫做直线的斜率。

导数derivative ,一元函数y=f(x)(即因变量y只受到一个自变量x影响的函数)中任意取x,如果x增加极小趋近于0的Δx(或者写为dx),那么y相应的被增加Δy(或者写作dy),那么导数就是dy/dx,而又有dy=f(x+dx)-f(x),所以:

从函数的曲线图上可以看到,某点的导数就是dx趋近于0时候∠cab的正切,导数反映了切线的陡峭程度,也就是y随着x变化的快慢程度。

微分differential ,简单说就是Δx和Δy,或者记作dx和dy。x称之为自变量,y称之为因变量,那么x趋近于最小的时候的值,就是x的微分(趋近0又不是0的那个神秘值),同样y的微分也是这个意思,总之是想得到又摸不到的神奇值。

斜率slope ,一元一次函数(直线方程)y=mx+n的系数m值。在这里就是a点的导数值f'(x)。

切线tangent ,某个点a的切线,就是经过a点的,以A点斜率为系数的方程y=f'(x)x+n所表示的直线。

自变量dependent variable和因变量 independent variable ,x自己的变化,引发y被动变化。

好了,我们来看 多变量微分Multivariable differential

上面都是一个y收到一个x的影响y=f(x),多变量就是不止受到一个自变量的影响,我们以最简单的z=f(x,y)为例,z=x 2 +y 2 。

绿轴x的变化和红轴y的变化,都会对应蓝轴z的变化。
x从负无穷到正无穷无限种可能,y也是无限种可能,x和y复合到一起就在水平方向覆盖了全部地面,z值有高有低,就像现实世界中的海拔一样,把xy平面凸起或凹陷。(图中粉色没有画出全部曲面)

我们可以想象,这时候不能讨论A点的切线了,而应该考虑它的 切平面tangent plane (下图绿色平面)。

方向导数directional derivative ,就是曲面上过A点的任意曲线的切线(下图紫色线)组成的平面,就是切平面。

这么多紫色的方向中,哪一个方向最陡峭?对于这个z=x 2 +y 2 函数来说,明显是最接近竖直朝上的那个箭头和最接近竖直朝下的那个箭头。
和曲线一样道理,越陡峭意味着z对x、y的变化越敏感,或者说dx、dy的变化会引发更多的dz。
梯度gradient ,我们规定,能够引发因变量最快变化的那个切线正方向,就叫做曲面方程上这个点的梯度。注意梯度是个xyz表示的三维方向,例如[0,0,1]表示z轴竖直向上,[0.1,0.1,1]就往xy的正方向偏一点点。

对于只有xy两个变量的三维曲面来说,我们还可以只是考虑x+0.1,x-0.1,y+0.1,y-0.1这样的试探方法找到最低点,只要2*2=4次就可以了,周全一点也就8次。

但是对于我们手写数字识别中13002个自变量来说,那就要2 13002 次,这是不可行的。

借用多元微分,我们可以找到13002个自变量某一随机点对应的切平面(实际早已不是什么平面了,我们姑且这么说),也可以计算出其中变化最快的方向,就是梯度,数学家已经证明,不管多少个维度,沿着梯度往前走一步,都能获得最快变化后新的一个点,这个点是一个n维向量,对于我们的案例来说就是13003个新数字组成的数组[0.322,0.123,0.55,0.222,...0.233]共13003个数字。

唯一要说明的一点不同就是,为了找最低点,我们不是往上走,而是往相反的负方向,朝下走。

步长step size ,就是我们每次沿着 负梯度 往下走多远,在机器学习算法里面它叫做 学习率learning rate ,同样道理,步子迈小了走得太慢,找到最低点耗时间太久,步子太大了容易跳过最低点(注意,1万*的复杂情况不是我们上面三维漏斗曲面那么简单可以描述的)。所以我们经常设置0.00001这样小的数字,好在很多机器学习程序都会适当的自动调整它(比如Tensorflow中的梯度下降优化GradientDescentOptimizer),实际上不会让它太慢。

同时,我们从上图中看到,计算出的负梯度是由很多数字组成的数组,每个数字代表一个维度(就像xy那样),所以我们只要在原来的位置点坐标(比如[x,y])上分别把这个梯度(比如[0.1,-0.3])加上去就能得到新的点([x+0.1,y-0.3])。

内容小结

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,感谢转发~

END

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
1~12月的英文单词怎么说? 一到十二月份的英文单词怎么写呢? 如果被猫抓了好几次打一回针会死吗? 什么地方住风水最旺房子 电脑运行速度慢原因及解决方法 马兰花是哪个明星 用友ERP-U8财务管理与应用编辑推荐 葡萄胎30几天有症状吗 家猫抓破了腋下出血了,要打几针,可以就打一针吗 葡萄胎早期症状出现在几周 若向量a=(-2,1),a的中点坐标为(1,-1)则a的起点坐标为? 梯度下降——寻找那个最优解 跪求易烊千玺出演的电视剧和电影,【免费高清】在线观看百度网盘资源 跪求易烊千玺综艺,【免费高清】在线观看百度网盘资源 跪求易烊千玺的所有作品,【免费高清】在线观看百度网盘资源 跪求易烊千玺电视剧作品,【在线观看】免费百度云资源 怎么看待陶朱公:错识人性,痛失爱子? 跪求易烊千玺作品,【免费高清】在线观看百度网盘资源 跪求易烊千玺影视作品大全,【在线观看】免费百度云资源 范蠡传 翻译!!! 倍尔静隔音窗户怎么样 吝金害弟的教训是什么? 大数据学习都需要掌握哪些知识? 你问我为什么福斯克啥意思 福特focus是什么车 《范蠡》全文翻译? 福州隔音窗市场上“倍尔静隔音窗”品牌怎么样? 装隔音窗会安静很多,是真的吗 一般封多久就自动解封? 为什么说是lookatourbedeoom不是lookatwebedroom 一体机开机后黑屏怎么解决 年底13薪是怎么回事呢? 朱桂擅自建九龙壁,还不听朱棣诏令,为何却没遭到清算? 故宫九龙壁被人造假的原因是什么呢? 徐娘是什么意思 怎么理解徐娘的意思 '半老徐娘"的"徐"怎么解释? 旧房装修 地暖更换利弊分析 你最喜欢哪位演员或明星? 你最喜欢的明星是谁?他/她在你的生活中起到什么影响呢? 我,喜欢你的演员表 周生如故中有哪些演员是你喜欢的? 用excel怎么样将一堆数值,平均分为若干组? 皂苷怎么读? word2007组合图片和图形教程 《还珠格格》第一部基本全好评,在三部曲中独一档 还珠格格第一部最后一集剧情 封闭式基金杠杆型的都有哪些 北杏仁的功效与作用 网络收藏夹不能保存删除网页了,怎么回事? 为什么搜狗浏览器的网页收藏后不能删除 要怎么才能删?