网易首页 > 网易号 > 正文 申请入驻

注意!这个小球开始下山了

0
分享至


新智元报道

编辑:alan

【新智元导读】4年前的开源项目突然在Hacker News爆火,通过可视化的「小球下山」,帮助非专业和专业人士,更好地理解AI训练中梯度下降的过程。

近日,一个4年前的开源项目穿越了时空,突然爆火!

毕业于哈佛,前Quora数据科学主管,现工作于Waymo的Lili Jiang,在20年初编写了一个软件,

通过可视化的「小球下山」,帮助非专业和专业人士,更好地理解AI训练中梯度下降的过程。


软件名为Gradient Descent Viz,囊括了当下最常见的5种梯度下降算法:Vanilla Gradient Descent、Momentum、AdaGrad、RMSProp和Adam。


你可以选择不同的曲面,并发现Adam和RMSProp可以更好地处理鞍点:


可以调整参数,并发现学习率低时,动量法不足以推动小球通过平坦区域,而提高学习率可以解决问题。


可以观看分步动画,直观地了解每种方法的计算过程,比如动量下降的内部工作原理:


可以使用可视元素来跟踪梯度、动量、梯度平方和等数据,比如下图中的两片灰色代表两个方向上的梯度平方和:


可以绘制下降路径,以了解不同的算法如何以不同的方式到达目的地:



项目地址:https://github.com/lilipads/gradient_descent_viz

OK,介绍完毕,下面上点硬菜,结合大佬给出的可视化展示,解释一下梯度下降的几种优化算法的原理。

(小编水平有限,如有失误,烦请诸位指正)

AI训练的本质:从小球下山开始

众所周知,AI训练的目标是让预测值尽可能接近真实值。

可以按照某种方式,定义预测值和真实值之间的误差,也就是损失函数,比如最常用的交叉熵损失函数。

要让误差最小,也就是求损失函数的最小值。

为此,我们需要一个好的算法来快速可靠地找到全局最小值(不会卡在局部最小值或者鞍点)。

梯度下降

真实的神经网络中,参数千千万,不过我们人类(包括小编)一般情况下只能感知3维的事物,

所以,下面先用两个参数x,y对应的损失函数Z来理解这个问题。

下面的曲面表示损失函数Z(x,y):


在这种情况下,我们可以使用「一眼看出」大法,马上发现曲面最低点的位置(也就是损失函数的最小值),——但计算机程序不能。

人眼可以看到整个曲面,而算法只能一步步进行探索,就像拿着手电筒在黑暗中行走。

如上图中的演示,算法需要每次找到一个最佳的前进(下降)方向,然后移动一段距离,——这个最佳的方向就是梯度(函数对每个参数的偏导)。

根据我们小学二年级学过的知识,当二元函数Z在(x,y)点可微时,函数值变化量可以写成:


改写成向量内积的形式就是:


我们需要让函数值下降得越快越好,那么x和y的改变方向,就应该和梯度(两个偏导)的方向相反,——即向量方向相反,内积最小:


这就是「梯度下降」的意义,梯度前面的系数是我们熟悉的学习率,用来控制每次移动的步长,步子太小训练慢、步子大了容易扯着蛋。

如果我们「深入浅出」,把问题退化到一元函数,就是下面这个样子:


当然了,最原始的梯度下降算法,需要对网络中所有参数求偏导再求和,计算量相当大。

我们现在用的梯度下降算法,一般指的是随机梯度下降(Stochastic Gradient Descent,SGD),表示每次迭代只随机使用一个样本或一个小批量(mini-batch)来计算梯度。

动量法

当我们使用梯度下降的时候,可能会遇到下图中这种问题:

代表梯度下降的红线在寻找极值的过程中振荡比较严重,相应的也需要更多的步数才能收敛。

这是因为每个点的梯度可能和最终的方向差别比较大,——为了解决这个问题,科学家们提出了动量法,也就是下图中蓝线的路径。


动量法的思想就是把历史的梯度也考虑进来,用整体的趋势让路径变得更加平滑。

另一种简单理解就是,振荡来自于前后两点梯度的垂直分量方向相反。作为矫正,当我们遇到这种反向的情况时,可以将当前的垂直分量减小一点。

而前后两点梯度的水平分量是同向的,所以可以将当前的水平分量增大一点。

——把过去的梯度按照一定比例加到当前梯度,正好可以满足这两点。

动量法可以用公式表示为:

delta = - learning_rate * gradient + previous_delta * decay_rate

或者突出累积梯度的概念,表示为:

sum_of_gradient = gradient + previous_sum_of_gradient * decay_rate delta = -learning_rate * sum_of_gradient

两个公式是一样的,其中衰减率decay_rate,控制历史梯度信息进入的比例,一般情况下设置为0.8-0.9。


另外,这个公式是一个递归的表示,所以距离当前时刻越远的梯度会被decay_rate衰减得越多(指数级),

这样既保证了整体的趋势,又不会过多的被遥远的梯度所干扰。

我们可以利用本文的开源软件形象地了解动量法,以及其中参数的意义,比如当decay_rate为0时,就与普通的梯度下降完全相同;

而当decay_rate = 1时,小球就像在没有摩擦的碗中那样,孤独摇摆,永无休止。


下图中,普通梯度下降和动量法在软件中PK了一把:


可以看出,Momentum相比于Vanilla Gradient Descent有两个明显优势:

1.积累了过去的动量,所以跑得快; 2.动量法有机会逃脱局部最小值(也是因为来自过去的力量把它推了出去)
AdaGrad

前面我们提到了学习率的问题,学习率设置过大或过小都会出问题。


在实际训练中,学习率一般会人为设定在迭代中不断衰减,使得开始时可以快速深入,然后逐渐减慢速度,仔细探索。心有猛虎,细嗅蔷薇。

不过同样的,学习率衰减太快或太慢,也都会出问题,所以科学家们提出了AdaGrad算法来自适应调整学习率。


AdaGrad可用公式表示为:

sum_of_gradient_squared = previous_sum_of_gradient_squared + gradient² delta = -learning_rate * gradient / sqrt(sum_of_gradient_squared)

其实就是跟动量法类似的思想,使用历史梯度数据来校正当前数据。

这里给学习率除上一个历史梯度的平方和开根号,直观的理解就是:对于一个参数,在过去修改得越多,那么在未来需要修改得就越少。

这样就达成了学习率的自适应调节,而且每个参数有自己的学习率。

另外,在深度学习中,稀疏特征是非常常见的,而AdaGrad算法在面对稀疏数据时尤其有效,

稀疏的特征平均梯度很小,会导致训练缓慢,而为每个参数设置不同的学习率则解决了这个问题。


上图中,AdaGrad和Vanilla Gradient Descent进行PK,普通梯度下降会先选择最陡峭的方向,而AdaGrad选择的路径显然更优秀。

有时候,普通梯度下降会干脆停在两个方向的梯度为0的鞍点(saddle point),而AdaGrad等基于梯度平方的方法可以更好地逃离鞍点。

RMSProp

然而,AdaGrad的问题在于它的速度非常慢,——因为梯度平方的总和只会增长,永远不会缩小,就造成了学习率一定是越来越小的。

由于背上了沉重的历史包袱,AdaGrad在该快的地方也往往快不起来,为了解决这个问题,便诞生了RMSProp算法,公式如下:

sum_of_gradient_squared = previous_sum_of_gradient_squared decay_rategradient² (1- decay_rate) delta = -learning_rate * gradient / sqrt(sum_of_gradient_squared)

跟动量法中使用衰减率decay_rate的思想一致,让最近的梯度占比比较高,而离得比较远的梯度就赶紧忘掉,说白了就是移动加权平均。

不过跟动量法那边不同的是,这个 (1- decay_rate)是在分母上,所以还起到了缩放的作用。

举个例子,如果decay_rate设置为0.99,那么分母就多乘了一个sqrt(1 - 0.99)= 0.1,因此在相同的学习率下,步长比AdaGrad大了10倍。


图中的阴影部分表示两个方向上的梯度平法和,明显绿色的RMSProp甩掉了很多历史包袱,跑得也更快。

Adam

最后出场的是当下AI训练最流行的Adam算法,但已经没啥可说的了,因为Adam = Momentum + RMSProp,公式如下:

sum_of_gradient = previous_sum_of_gradient * beta1 + gradient * (1 - beta1) [Momentum] sum_of_gradient_squared = previous_sum_of_gradient_squared * beta2 + gradient² * (1- beta2) [RMSProp] delta = -learning_rate * sum_of_gradient / sqrt(sum_of_gradient_squared)

Beta1是Momentum的衰减率,通常设置为0.9;Beta2是RMSProp的衰减率,通常设置为0.999。


Adam从Momentum中获得速度,从RMSProp获得适应不同方向梯度的能力,两者结合使其功能强大。

参考资料:

https://github.com/lilipads/gradient_descent_viz


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
汪小菲携马筱梅现身机场,贴心为妻子停下脚步,马筱梅直发变卷发

汪小菲携马筱梅现身机场,贴心为妻子停下脚步,马筱梅直发变卷发

娱记掌门
2024-06-15 20:36:53
大乐透24068期开奖:一等奖8注,分落全国5地,二等奖93注!

大乐透24068期开奖:一等奖8注,分落全国5地,二等奖93注!

小宇宙双色球
2024-06-15 23:14:48
电动车被查后,8090年代黄包车、28大杠重现江湖,网友:被迫无奈

电动车被查后,8090年代黄包车、28大杠重现江湖,网友:被迫无奈

三月柳
2024-06-13 11:45:57
凯特王妃拍摄新照官宣好消息:今天她和夏洛特公主要抢走所有焦点

凯特王妃拍摄新照官宣好消息:今天她和夏洛特公主要抢走所有焦点

综艺拼盘汇
2024-06-16 11:37:14
意大利2-1之夜!22岁小将欧洲杯首秀惊艳,或引豪门哄抢身价暴涨

意大利2-1之夜!22岁小将欧洲杯首秀惊艳,或引豪门哄抢身价暴涨

球哥侃球
2024-06-16 09:36:34
俄专家:俄中双方在三年内启动大约3000个投资项目

俄专家:俄中双方在三年内启动大约3000个投资项目

俄罗斯卫星通讯社
2024-06-15 16:05:26
镜报:曼城想要留下瓜帅,他们愿意提供比现在高得多的薪水

镜报:曼城想要留下瓜帅,他们愿意提供比现在高得多的薪水

懂球帝
2024-06-16 07:28:06
姜萍爆冷夺数学竞赛全球12名,江苏大学率先抢人,浙大评论区沦陷

姜萍爆冷夺数学竞赛全球12名,江苏大学率先抢人,浙大评论区沦陷

180°视角
2024-06-14 15:30:57
真是狠人!英国“酒仙夫妇”站票到新疆,32小时绿皮火车累到崩溃

真是狠人!英国“酒仙夫妇”站票到新疆,32小时绿皮火车累到崩溃

小小包工头阿汾
2024-06-15 18:20:57
蔡斌回应朱婷伤病,袁心玥作检讨,王媛媛情商高,张常宁一战拾名

蔡斌回应朱婷伤病,袁心玥作检讨,王媛媛情商高,张常宁一战拾名

跑者排球视角
2024-06-16 07:26:01
“有了中国‘豪华SUV’,谁愿掏更多钱买美国货?”

“有了中国‘豪华SUV’,谁愿掏更多钱买美国货?”

观察者网
2024-06-14 14:57:12
为何中国患癌率较高?2样东西日本人基本不碰,国人却比较喜欢

为何中国患癌率较高?2样东西日本人基本不碰,国人却比较喜欢

今日养生之道
2024-06-14 07:30:58
废弃楼栋发现一具尸体,警方深夜通报

废弃楼栋发现一具尸体,警方深夜通报

AHTV第一时间
2024-06-16 11:07:57
大便之后要不要用水洗屁股?长期坚持洗的人,对身体有没有好处?

大便之后要不要用水洗屁股?长期坚持洗的人,对身体有没有好处?

资说
2024-06-13 08:01:07
中甲射手榜第三!20岁向余望近8轮7球,助重庆铜梁龙稳居冲超区

中甲射手榜第三!20岁向余望近8轮7球,助重庆铜梁龙稳居冲超区

直播吧
2024-06-16 11:22:08
终于下雨了!今日郑州多区有7级雷暴大风+冰雹

终于下雨了!今日郑州多区有7级雷暴大风+冰雹

鲁中晨报
2024-06-16 09:35:05
发现妻子出轨第5天,我麻利做完财产分割,微笑祝福他俩白头偕老

发现妻子出轨第5天,我麻利做完财产分割,微笑祝福他俩白头偕老

星辰故事屋
2024-06-05 12:18:58
老将不老!张常宁发挥拦垫皆出色,无愧世界冠军!去奥运稳了!

老将不老!张常宁发挥拦垫皆出色,无愧世界冠军!去奥运稳了!

金毛爱女排
2024-06-16 11:32:56
战胜土耳其,蔡斌仍遭质疑,庄宇珊吴梦洁培养晚了,光速打法失败

战胜土耳其,蔡斌仍遭质疑,庄宇珊吴梦洁培养晚了,光速打法失败

骑马寺的少年
2024-06-16 09:43:30
《玫瑰的故事》里,林更新的身上,有着“穷人”的5大通病

《玫瑰的故事》里,林更新的身上,有着“穷人”的5大通病

娱记掌门
2024-06-16 08:19:46
2024-06-16 12:24:49
新智元
新智元
AI产业主平台领航智能+时代
11154文章数 65537关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

法国股市暴跌引发恐慌 马克龙:法国处于非常严峻时刻

头条要闻

法国股市暴跌引发恐慌 马克龙:法国处于非常严峻时刻

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

时尚
游戏
艺术
教育
数码

中年女性还是穿连衣裙最有气质!裙摆过膝、腰部收紧,巨显瘦

回暖!《绝地潜兵2》更新之后PC玩家数量飙升86%

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

教育要闻

四川卫视#四川卫视腹有诗书#“不积硅步,无以至千里,不积小流,无以成江海”,“成电”青年创新团队努力...

数码要闻

双 25G SFP28 网口,微星推出 D3052 服务器 AM5 MATX 主板

无障碍浏览 进入关怀版