【机器学习中的数学】一、微积分(一)

  1. 云栖社区>
  2. 博客列表>
  3. 正文

【机器学习中的数学】一、微积分(一)

gavinchow 2018-07-11 14:59:17 浏览4091 评论0

摘要: 前言: 牛顿曾经说过:“如果说我看得比别人更远些,那是因为我站在巨人的肩膀上。”学习数学,我们应该避免重复造轮子,借助先导的公式,直接应用。 1-1 微积分的核心思想:函数逼近 a.微分学的核心思想 用熟悉且简单的函数对复杂函数进行局部逼近,整个微分学,我们应该时时刻刻的关联逼近这两个字,不管做什么,都是围绕着它的。

前言:

牛顿曾经说过:“如果说我看得比别人更远些,那是因为我站在巨人的肩膀上”学习数学,我们应该避免重复造轮子,借助先导的公式,直接应用。

1-1 微积分的核心思想:函数逼近

a.微分学的核心思想

熟悉且简单的函数对复杂函数进行局部逼近,整个微分学,我们应该时时刻刻的关联逼近这两个字,不管做什么,都是围绕着它的。

b.常用作逼近的简单函数

1)线性函数:函数的一阶导数 

2)多项式函数:泰勒级数 

1-2 微分学基础语言:极限论 

a.极限的表述方式:

1)自然语言:当 de722f4837f819f38daa3c2acb6e8649d9cecebf 趋向于 001fd954d0c20060e1ecda424489d390d03ac2cc 时,741f3dcd147378e35717969094e8bc34b33a8ec2 的极限是 80fc6db2f7a0bd784f354f6f637b40fb0fd3c6d0  

2)数学符号:c466857958e880834631c439cbadb52694426401 

3)无穷小:趋于0的极限

4)无穷小阶数:趋于零的速度越快的无穷小,其阶数越高。比2f2e4116c6aad1070cbd30ea8d73166b860ff2d6,趋于0速度还快的无穷小记为:e48ac83e796b601aa70c9fee1c0b689e940b7e8b

b.两边夹定理(三明治定理)

最重要的极限定理:两边夹定理

如果:11e9333c45fee35af379509c5aa29d19bd4852df,而且这三个函数都在 001fd954d0c20060e1ecda424489d390d03ac2cc 有极限,那么存在: 3caadd57ae5c603b663ccd668721a44b4ec247f1

c.重要的极限:(两边夹定理应用)

三角函数:b08ecfcbc61204e8107b61fb5401c1c18d10a153      自然对数底数:6b2cef9b41a3ad1eba934f867c8902b8dd383cb5      


指数函数:868b501ede10867b47305f7ef96fc36e114a6236

1-3 微分学的基本手法:求导数

a.导数是什么?

导数也是极限。

b.一阶导数

数学公式:055fd8efbde91e1e4698e1206a6286d737c39173

b-1.几何意义

用直线逼近曲线

b-2.代数意义

用线性函数逼近复杂函数

b-3.具体理解

假设函数741f3dcd147378e35717969094e8bc34b33a8ec2  是一个可微函数,117129f594029714833eaabad1b37ce095f67889 是定义域中的一个点,那么 bd8d8219907e3c7499fa3e9864f61cdce6664e60

注释:现代的数学也常常使用如下记号:091b91f33e84540f5a12c495ddcdcef5570c474e ,d 的含义为 : differential [ˌdɪfəˈrɛnʃəl] ,  4b5643f78f1c65fc6a2fcf18bfb384db503fcc85 即 微小的 x ,fab5ba0ddc84147c642cec899aff67bc4401a2bb 的含义为:对 dx 求微分的意思;实际上,上式所表示的含义,就是用一个线性函数,去局部逼近一个复杂函数(也可以理解为表达这个复杂函数),那么上面的微分公式就写成:025ab56e8ce010e0b8642042ceb7557926864658

c.常见函数的导数

多项式函数:0f0d35959423c7af585ce20fae82a929774968db      三角函数:dce9109a83dfb666b48877456889732d91720033      指数函数:294008d4841c620b19feb010118a107fd0e2f380


d.从线性逼近到多项式逼近:泰勒级数

d-1.什么是泰勒级数?

导数的导数就是二阶导数,d77d231d8469ef9b80c6169fda0d21fdf0d41f73 阶导数的导数就是 3afd0ba3d0a9ee51fd0fdd0cb76dbf99310d5f89  阶导数,11359f76712389d2f91653c627c16a393de5c7ab 级数就是利用 d77d231d8469ef9b80c6169fda0d21fdf0d41f73 阶导数来对函数进行高阶逼近,当对这个函数逼近的阶数越高,也就越来越精确,当我们的精度需要达到 4b5643f78f1c65fc6a2fcf18bfb384db503fcc85 的二次方的时候,2阶就够了,具体看精度要求

d-2.数学定义:

如果一个函数741f3dcd147378e35717969094e8bc34b33a8ec2 是 d77d231d8469ef9b80c6169fda0d21fdf0d41f73 阶可微函数,那么:d53e345666cb829c0644a3f877a7f2d133f14717bae210dd3362082e821360d859d9258dca5eff78为误差项,做逼近的目的,其实就是想要看误差项是多少。

函数741f3dcd147378e35717969094e8bc34b33a8ec2 的  d77d231d8469ef9b80c6169fda0d21fdf0d41f73 阶 11359f76712389d2f91653c627c16a393de5c7ab 级数就是与741f3dcd147378e35717969094e8bc34b33a8ec2 拥有相同前 d77d231d8469ef9b80c6169fda0d21fdf0d41f73 阶导数 的 d77d231d8469ef9b80c6169fda0d21fdf0d41f73 阶多项式。当 5b49256f1b4c4835432421a9ea66c35416fa535b 时,11359f76712389d2f91653c627c16a393de5c7ab 级数就成为一个二次逼近:对于2阶可微函数 741f3dcd147378e35717969094e8bc34b33a8ec22e0d59f6b7df3ec623d8fa340ae77aecf475ed1a,而这就构成了牛顿法的基础

e.从低维到高维:偏导数

e-1.偏导数定义

如何理解这个“偏”?偏就是不完全的,只对其中的一个变量进行求导,表示部分的性质,偏导数就是沿着坐标轴方向的方向导数

对于一个二元函数 7c6632a4d3de0302df7f6fe5e8d3dd33afc8b8ec,偏导数定义为:
a8a30bbf317e214cd95208f69d3e5273898dddda,把y当成常数

359e44c899c371929b90945602040a1bb71ab9a9,把x当成常数

沿着方向c492f88236d15a34634ab19530bc78360d82c2a9  的方向导数为46b20e04160a92a8db0205f6e7300b1d9848946a

f.多元函数逼近的目的,寻找梯度

f-1.数学含义:

对于一个多元可微函数,一个二元函数7c6632a4d3de0302df7f6fe5e8d3dd33afc8b8ec 一阶可微,如果存在 11edb392ca68a643db6eb59f1f6d9b70aba6c39e ,使得c78aef5b8bc74778fa5a711a3190ed04b91abc37

f-2.几何含义:

对于上式,希望左边 = 存在一个 局部变量26a371a89ad3e99eefd9d96e50cc4e09c29b470652e6e311dd4f584d4eb71ce9e96248ea44e4d2a5  ; 11edb392ca68a643db6eb59f1f6d9b70aba6c39e 我们希望是个常数,26a371a89ad3e99eefd9d96e50cc4e09c29b470652e6e311dd4f584d4eb71ce9e96248ea44e4d2a5 是线性函数;误差项,要比 26a371a89ad3e99eefd9d96e50cc4e09c29b470652e6e311dd4f584d4eb71ce9e96248ea44e4d2a5  加起来小,这时候 11edb392ca68a643db6eb59f1f6d9b70aba6c39e 是一个系数,即偏导数。

g.多元函数的梯度

对于一个可微函数7c6632a4d3de0302df7f6fe5e8d3dd33afc8b8ec,梯度定义为:9ec5e50a40728067c5e46a374da7f7caa3a7721b

g-1.代数意义

其任意方向的偏导数可以由梯度来表示,如果c492f88236d15a34634ab19530bc78360d82c2a9 ,209acad3c3ef8b7d2b1f7b2772069d1319caf9fd

g-2.几何意义

梯度方向就是函数增长最快的方向

1-4、梯度下降法(工程中最常用)

a.定义

如果8a72df995686de9a510245a65d0abf2e133d5755 是一个多元函数,在cfb958a0eb2577eb5ddd81d13eed008cca976fb0 点附近对8a72df995686de9a510245a65d0abf2e133d5755 做线性逼近 ,其写法为:f873ebcd7dc41401c5548a5a52fb54cc35955457

翻译为较容易理解的语言为:常数逼近 + 线性逼近 + 误差项

其中:a7ff319de4081d1fe539a4a8616c1d6064f6db12,表示梯度,就是表示线性函数的一个逼近,为一个列向量;004a2999229b534bf97d7a2058f8ee01e4a5fcff,为一个横向量


a-1几何意义

对多元函数的线性逼近(对函数进行一阶逼进,寻找函数下降最快的方向),相当于对一个曲面做了一个切平面,其目的是找到8a72df995686de9a510245a65d0abf2e133d5755的最小值,如下图:

006tKfTcly1ft5ume7uktj30la0c77dy.jpg

a-2存在问题

这个线性逼近只能告诉我们,逼近的方向,但是不知道逼近的步长,所以我们选取一个较“小” 的学习率 29330d6c7d76c921ee538124a503779e065e4015 来沿着这个方向走下去,不断更新,得到极值点。并得到梯度下降法的序列:022c6ab9d2f5bcb5a3585e413cf9f5f3c827a83429330d6c7d76c921ee538124a503779e065e4015 的选取极其复杂

1-5、牛顿下降法

a.定义

用抛物线进行逼近,这样逼近的好处:1.知道逼近的方向;2.知道逼近的步长(抛物线有极值)
20bc4d89b7c8baa3ed589a9ea47215a9b9d13e82,于是关于ad0b065f4608dc2877bc063e66f27c30b38e05f9 的梯度为:

473cdd54a74c60f270354db90bf7de6ae6a6b06d,零点的近似值为:b2555c4409a62323213d33d9eb33d74c007a086f

a-1几何意义:

对函数进行二阶逼近(更精确),并直接估计函数的极小值点

1-6、为什么不用牛顿下降法

1)牛顿法要求计算目标函数的二阶导数(Hessian matrix),在高维特 征情形下这个矩阵非常巨大,计算和存储都成问题 
2)在使用小批量情形下,牛顿法对于二阶导数的估计噪音太大
3)在目标函数非凸时,牛顿法更容易收到鞍点甚至最大值点的吸引 

1-7、随机梯度下降法

a.引入随机梯度下降法的目的

随机梯度下降法主要为了解决第一个问题:梯度计算

a-1梯度的计算

在机器学习和统计参数估计问题中目标函数经常是求和函数的形式:5fd423d2c952c3ff8afef386107af91b8306db89 ,其中 每个函数 5425a49f2f088ba7df98c9359a31ba785f3675ce 都对应于一个 样本 889f92d546500ce297894f5bf0fbd658746dd6ff

b.梯度下降法的分类

由于随机梯度下降法的引入,我们通常将梯度下降法分为三种类型:

b-1批梯度下降法(GD

原始的梯度下降法 

b-2随机梯度下降法(SGD) 

stochastic [stə'kæstɪk] 随机

1)每次梯度计算只使用一个样本

2)避免在类似样本上计算梯度造成的冗余计算

3)增加了跳出当前的局部最小值的潜力

4)在逐渐缩小学习率的情况下,有与批梯度下降法类似的收敛速度

b-3小批量随机梯度下降法(Mini Batch SGD) 

1)每次梯度计算使用一个小批量样本

2)梯度计算比单样本更加稳定

3)可以很好的利用现成的高度优化的矩阵运算工具 

注意:神经网络训练的文献中经常把 Mini Batch SGD 称为 SGD 

c.随机梯度下降法的困难

随机梯度下降法的主要困难在于前述的第二个问题:学习率的选取

1)局部梯度的反方向不一定是函数整体下降的方向

2)对图像比较崎岖的函数,尤其是隧道型曲面,做的是局部估计,梯度下降表现不佳 ,如下图,会做来回的震荡估计,但总体方向会向下

006tKfTcly1ft5w2j7nlbj30cu09cq51.jpg
3)学习率衰减法很难根据当前数据进行自适应
4)在数据有一定稀疏性时,希望对不同特征采取不同的学习率

5)预定学习率衰减法的问题

6)对不同参数采取不同的学习率的问题

7)神经网络训练中梯度下降法容易被困在鞍点附近的问题 比起 局部极小值,鞍点更加可 

1-7、随机梯度下降法的优化算法

a.动量法(适用于隧道型曲面)

a-1定义

每次跟新都会吸收一部分上次更新的余势,这样主体方向的跟新就得到了更大的保留,从而效果被不断放大。

a-2物理理解

就像是推一个很重的铁球下山,因为铁球保持了下山主体方向的动量,所以隧道上沿两侧震荡测的次数就会越来越小,如下图
006tKfTcly1ft5wc9soh1j31640a6gqv.jpg

a-3动量法实际路线

006tKfTcly1ft5wisjxtuj30lu07qqcq.jpg

a-4存在的问题

从山顶推下的铁球会越滚越快,以至于到了山底停不下来,我们希望在到达底部就自己刹车。

b.Nesterov accelerated gradient (NAG)

b-1定义

此方法为动量法的改进算法,利用主体下降方向提供先见之明,预判自己下一步的位置,并到预判位置计算梯度。

b-2实际路线

达到刹车的目的

006tKfTcly1ft5wlrzmv9j30mk0bk17h.jpg


c.Adagrad 

c-1定义

1)自动调整学习率,适用于稀疏数据 梯度下降法在每一步对每一个参数使用相同的学习率,这种一刀切的做法不能有效的利用每一个数据集自身的特点。

2)随着模型的训练,学习率自动衰减

3)对于更新频繁的参数,采取较小的学习率

4)对于更新不频繁的参数,采取较大的学习率 

c-2存在问题

1)随着训练的进行,学习率快速单调衰减

2)Adagrad 及 一般的梯度下降法的另一个问题在于,梯度与参数的单位不匹配

d.Adadelta(Adagrad的改进算法)

Adadelta 使用参数更新的移动平均来替代学习率 29330d6c7d76c921ee538124a503779e065e4015 其主要用来优化学习率

f.Adam(结合了动量法与Adamdelta)

如果把Adadelta 里的梯度平方和看成是梯度的二阶矩,那么梯度自身的求和就是一阶矩,Adam算法在Adadelta的二阶矩基础上有引入了一阶矩。而一阶矩,其是就是类似于动量法里的动量。


关于更详细的论述,请移步:https://www.sohu.com/a/156495506_465975


1-8、如何选择算法

目前为止,Adam可能是几种算法中综合表现最好的,所以个人觉得,还是直接使用Adam算法比较好,前面几种算法的介绍,只是由浅入深的为Adam做铺垫,但是它们又解决了不同的问题,主要如下:

1)动量法与Nesterov的改进方法NAG着重解决目标函数图像崎岖的问题 

2)AdagradAdadelta主要解决学习率更新的问题

3)Adam集中了前述两种做法的主要优点 



参考:

[1]:https://blog.csdn.net/tsyccnh/article/details/76673073

[2]:http://www.julyedu.com/video/play/106







用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

gavinchow
文章2篇 | 关注0
关注
阿里云机器学习是基于阿里云分布式计算引擎的一款机器学习算法平台。用户通过拖拉拽的方式可视化的... 查看详情
专注于企业工作效率提升,解决重复有规律的工作并且帮助用户连接不同的系统和服务,实现工作流程自... 查看详情
用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/B Test效果对比 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云9.10会员日

阿里云9.10会员日