第一部分:泰勒公式 在高数中,引出相关需求,其描述如下:
对于一些较复杂的函数,为了便于研究,往往希望用一些简单的函数来近似表达。由于用多项式表示的函数,只要对自变量进行有限次的加,减,乘三种算数运算,便能求出它的函数值,因此我们经常用多项式近似表达函数。
简单说来,就是:在误差允许的前提下,我们用多项式(简单函数)来近似代替复杂函数,使得复杂函数的应用更加方便
所以说,泰勒公式是使用多项式对目标函数的近似,当然为了提高精度,使用了高次多项式
泰勒(Taylor)中值定理1:如果函数f(x)在x0处具有n阶导数,那么存在x0的一个领域,对于该领域的任一x,有:
文章图片
佩亚诺余项(近似误差):
文章图片
我们可以利用泰勒公式对未知函数进行估计,过程如下:
设下图是我们要估计的函数图形:
文章图片
我们不知道函数图形的全部,只知道一小部分:
文章图片
使用泰勒公式,已知点是这一个函数片段的端点,通过泰勒公式我们可以估计函数片段端点的一个极小领域内的值,若我们用一阶泰勒展开式进行计算的话,效果应该如下:
文章图片
每一次估计之后,下一次使用上一次的结果再进行估计(迭代过程),每一个估计片段链接起来,就是我们在已知函数片段下,对函数整体的估计。我们可以使用更高阶的泰勒展开来估计函数,这要看对应的应用场景而定。
现在我们只要知道一个函数的一个点的取值和该点的变化率(导数),就可以对函数整体进行估计。
第二部分:梯度下降(上升)法 在优化方法中最常提到的方法——梯度下降法
什么是最优化问题?
在百度百科中的定义如下:
工程设计中最优化问题(optimization problem)的一般提法是要选择一组参数(变量),在满足一系列(约束条件)下,使设计指标(目标)达到最优值。
设,我们有一个数据集,每一项数据有两个值(x:属性,y:标签),都是数值型的,我们认为每一项的属性和标签是符合某个函数关系的,即:
文章图片
我们希望这个函数尽可能的符合真实的属性-标签之间的关系,我们用欧氏距离来度量,预测关系和真实关系的差距,当这个差距足够小,我们就可以使用
文章图片
来近似这种关系。
所以我们有如下最优化目标
文章图片
这是一个关于w的函数,取不同的数据集,有不同的结果,我们要求这个函数取最小值时的w ,当然我们可以选择对函数求导,令导数等于0,就可以求解,我们不采取这种方法(在现实任务中,一阶导数等于0这个式子不容易求解)。
我们选择一种看上去比较蠢,但是实用的方式:对w一点点的调整,我们希望每一次调整,计算结果都在减小,这是一个迭代过程,直到w的调整无法使函数值下降,我们认为此时的w是最优的w。(这就是梯度下降的基本思想)
设w每次的调整为:w-w0=ηv,因为w是一个参数向量,所以其变化用η(步长,变化大小,标量),v(变化方向,单位向量)来表示。我们需要求v(变化方向),使得函数的变化最快,在v未知的情况下,怎么得到调整后的函数值呢?
此时就可以使用泰勒公式对函数值进行估计,表示如下(使用一阶泰勒展开式):
文章图片
表示为w的方程为:
文章图片
因为w-w0=ηv ,有:
文章图片
因为每次参数w调整之后,函数值减小,有:
文章图片
文章图片
因为步长η是一个标量,不影响符号,所以先省略,得到:
文章图片
v是一个单位向量,函数的导数也是一个向量(函数增长方向),那么两个向量的乘积在什么时候小于0呢?
如下是向量的乘积:
文章图片
当cos(α)<0,时向量乘积小于0 ,因为我们希望下降速度是最快的,所以令cos(α) = -1,即两个向量的方向相反。
那么知道了v与f'(w0)方向相反,且是个单位向量,所以v为:
文章图片
因为
文章图片
是个标量,那么将它并入η ,则w的更新公式为:
文章图片
【数学|梯度下降法和泰勒公式】这就是梯度下降法,梯度上升是求最大值时用的,即把上式中的-换成+
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现