开发 | 史上最简洁易懂教程 用Excel理解梯度下降

AI科技评论按:本文作者为 Jahnavi Mahanta,前 American Express (美国运通公司)资深机器学习工程师、深度学习在线教育网站 Deeplearningtrack 联合创始人。

Jahnavi Mahanta:对算法的作用建立直觉性的理解——在我刚入门机器学习的时候,这让我觉得非常困难。不仅仅是因为理解数学理论和符号本身不容易,也因为它很无聊。我到线上教程里找办法,但里面只有公式或高级别的解释,在大多数情况下并不会深入细节。

就在那时,一名数据科学同事介绍给我一个新办法——用 Excel 表格来实现算法,该方法让我拍案叫绝。后来,不论是任何算法,我会试着小规模地在 Excel 上学习它——相信我,对于提升你对该算法的理解、完全领会它的数学美感,这个法子简直是奇迹。

案例

让我用一个例子向各位解释。

大多数数据科学算法是优化问题。而这方面最常使用的算法是梯度下降。

或许梯度下降听起来很玄,但读完这篇文章之后,你对它的感觉大概会改变。

这里用住宅价格预测问题作为例子。

现在,有了历史住宅数据,我们需要创建一个模型,给定一个新住宅的面积能预测其价格。

任务:对于一个新房子,给定面积 X,价格 Y 是多少?

让我们从绘制历史住宅数据开始。

现在,我们会用一个简单的线性模型,用一条线来匹配历史数据,根据面积 X 来预测新住宅的价格 Ypred。

上图中,红线给出了不同面积下的预测价格 Ypred。

Ypred = a+bX

蓝线是来自历史数据的实际住宅价格 Yactual。

Yactual 和 Ypred 之间的差距,即黄色虚线,是预测误差 E。

我们需要发现一条使权重 a,b 获得最优值的直线,通过降低预测误差、提高预测精度,实现对历史数据的最佳匹配。

所以,目标是找到最优 a, b,使 Yactual 和 Ypred 之间的误差 E 最小化。

误差的平方和 (SSE) = ½ a (实际价格 – 预测价格)2= ½ a(Y – Ypred)2

(AI科技评论提醒,请注意衡量误差的方法不止一种,这只是其中一个)

这时便是梯度下降登场的时候。梯度下降是一种优化算法,能找到降低预测误差的最优权重 (a,b) 。

理解梯度下降

现在,我们一步步来理解梯度下降算法:

  1. 用随机值和计算误差(SSE)初始化权重 a 和 b。
  2. 计算梯度,即当权重(a & b)从随机初始值发生小幅增减时,SSE 的变动。这帮助我们把 a & b 的值,向着最小化 SSE 的方向移动。
  3. 用梯度调整权重,达到最优值,使 SSE 最小化。
  4. 使用新权重来做预测,计算新 SSE。
  5. 重复第二、第三步,直到对权重的调整不再能有效降低误差。

我在 Excel 上进行了上述每一步,但在查看之前,我们首先要把数据标准化,因为这让优化过程更快。

第一步

用随机值的 a、b 初始化直线 Ypred = a + b X,计算预测误差 SSE。

第二步

计算不同权重的误差梯度。

∂SSE/∂a = – (Y-YP)

∂SSE/∂b = – (Y-YP)X

这里, SSE=½ (Y-YP)2 = ½(Y-(a+bX))2

你需要懂一点微积分,但没有别的要求了。

∂SSE/∂a、∂SSE/∂b 是梯度,它们基于 SSE 给出 a、b 移动的方向。

第三步

用梯度调整权重,达到最小化 SSE 的最优值

我们需要更新 a、b 的随机值,来让我们朝着最优 a、b 的方向移动。

更新规则:

  • a – ∂SSE/∂a
  • b – ∂SSE/∂b

因此:

  1. 新的 a = a – r * ∂SSE/∂a = 0.45-0.01*3.300 = 0.42
  2. 新的 b = b – r * ∂SSE/∂b= 0.75-0.01*1.545 = 0.73

这里,r 是学习率= 0.01, 是权重调整的速率。

第四步

使用新的 a、b 做预测,计算总的 SSE。

你可以看到,在新预测上 总的 SSE 从 0.677 降到了 0.553。这意味着预测精度在提升。

第五步

重复第三、第四步直到对 a、b 的调整无法有效降低误差。这时,我们已经达到了最优 a、b,以及最高的预测精度。

这便是梯度下降算法。该优化算法以及它的变种是许多机器学习算法的核心,比如深度网络甚至是深度学习。

via kdnuggets,AI科技评论编译。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习与计算机视觉

学习SVM(二) 如何理解支持向量机的最大分类间隔

学习SVM(一) SVM模型训练与分类的OpenCV实现 学习SVM(二) 如何理解支持向量机的最大分类间隔 学习SVM(三)理解SVM中的对偶问题 ...

2069
来自专栏AI星球

吾爱NLP(2)--解析深度学习中的激活函数

由惑而生,所以我打算总结一下深度学习模型中常用的激活函数的一些特性,方便大家日后为模型选择合适的激活函数。   说到激活函数,就不能不提神经网络或者深度学习,...

882
来自专栏AI研习社

史上最简洁易懂教程 用Excel理解梯度下降

AI 研习社按:本文作者为 Jahnavi Mahanta,前 American Express (美国运通公司)资深机器学习工程师、深度学习在线教育网站 De...

3575
来自专栏机器人网

【案例】最大似然估计、最大后验估计以及贝叶斯参数估计的联系和区别

假如你有一个硬币。你把它投掷 3 次,出现了 3 次正面。下一次投掷硬币正面朝上的概率是多少? 这是一个从数据中估计参数的基础机器学习问题。在这种情况下,我们要...

673
来自专栏PPV课数据科学社区

什么是最大似然估计、最大后验估计以及贝叶斯参数估计

假如你有一个硬币。你把它投掷 3 次,出现了 3 次正面。下一次投掷硬币正面朝上的概率是多少? 这是一个从数据中估计参数的基础机器学习问题。在这种情况下,我们要...

3187
来自专栏计算机视觉战队

判别特征学习方法用于人脸识别

---- 最近因为博主科研繁忙,没有时间更新,在此向所有关注的您说一声对不起!希望没有ComputerVisionGzq 大家依然科研顺利,生活愉快,嘿嘿! ?...

3333
来自专栏https://www.cnblogs.com/L

【深度学习篇】---CNN和RNN结合与对比,实例讲解

CNN和RNN几乎占据着深度学习的半壁江山,所以本文将着重讲解CNN+RNN的各种组合方式,以及CNN和RNN的对比。

723
来自专栏AI科技大本营的专栏

深度概览卷积神经网络全景图,没有比这更全的了

【AI科技大本营导读】深度卷积神经网络是这一波 AI 浪潮背后的大功臣。虽然很多人可能都已经听说过这个名词,但是对于这个领域的相关从业者或者科研学者来说,浅显的...

1092
来自专栏人工智能

神经网络和深度学习(一)——深度学习概述

神经网络和深度学习(一) ——深度学习概述 (原创内容,转载请注明来源,谢谢) 一、监督学习与神经网络 监督学习可以在一些地方应用,包括房价预测、广告精准定位、...

1957
来自专栏QQ大数据团队的专栏

视频打标签算法探讨

随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已...

10.5K10

扫描关注云+社区