最优化理论

最优化理论

机器学习简单来说,主要做的就是线性逼近,其根本就是优化问题:
•先初始化一下权重参数
•然后利用优化方法来优化这个权重
•直到准确率不再是上升
•迭代停止

通常的形式:优化目标(目标函数) + 约束条件 一般可归结为对目标函数(Objective Function)(或称之为误差函数 Error Function、代价函数Cost Function、损失函数Loss Function) 求极值的问题,即对于目标函数,找到一个极值点,使得最小(或最大)

 

极限

“极限”是数学中的分支——微积分的基础概念
广义的“极限”是指“无限靠近而永远不能到达”的意思。
数学中的“极限”指某一个函数中的某一个变量,此变量在变大(或者变小)的永远变化
的过程中,逐渐向某一个确定的数值A不断地逼近而“永远不能够重合到A” 的过程中。
此变量的变化,被人为规定为“永远靠近而不停止”,“不断地极为靠近A点的趋势”。

 

线性逼近

 

 

泰勒公式

泰勒公式 将一个在x=x 0 处具有n阶导数的函数f(x)利用关于(x-x 0 )的n次多项式来逼近函数的方法。 

 

凸函数

任意两点的连线都在凸函数图形以内

 

 

 

最优化理论

相关性质:
•连续、可微可导
•任意两点的连线都在函数曲线的下面
•局部最小值就是全局最小值
•若f1和f2为定义在凸集S上的两个凸函数,则其和f=f1+f2仍为定义在S上的凸函数

最小二乘法

•最小二乘法( Least Squares Method,又称最小平方法),是一种数学优化技术,求解机器学习算法的模型参数的常用方法之一
•通过最小化误差的平方和寻找数据的最佳函数匹配
•利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小
•最小二乘法还可用于曲线拟合

不关心S的值具体是多少,只关心S取最小值的时候模型参数arg  w 的取值

Eg:

a,b加帽子表示对值的估计值,是个推测值,不是真实值

扩展:链式求导法则

链式法则(chain rule):

若h(x)=f(g(x)),则h'(x)=f'(g(x))g'(x)

链式法则用文字描述,就是“由两个函数凑起来的复合函数,其导数等于里边函数代入外边函数的值之导数,乘以里边函数的导数。

举例:

f(x)=x²,g(x)=2x+1, 则 

{f[g(x)]}'

=2[g(x)]×g'(x)

=2[2x+1]

 

梯度下降

•梯度下降算法(Gradient Descent Optimization),是迭代法的一种,也称为最速下降法
•在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一
•在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。

梯度下降来自于泰勒展开;导数方向和法线方向是垂直的。

学习率是比较重要的参数,用来控制步长。

基本梯度下降算法

•批量梯度下降(Batch gradient descent)
•随机梯度下降(Stochastic gradient decent, SGD)
•小批量梯度下降(mini-batch gradient descent)

改进梯度下降算法

•Momentum 当前梯度+上次梯度 防止乱跑,拐来拐去
•Nesterov accelerated gradient (NAG)
•Adagrad、Adadelta、RMSprop
•Adaptive Moment Estimation (Adam)

批量梯度下降

•使用整个训练集计算目标函数的梯度并更新参数θ
•因为每更新一次参数就需要计算整个数据集,所以批量梯度下降算法十分缓慢而且难以存放在内存中计算
•更致命的是,使用批量梯度下降的算法无法在线更新

所有的数据都拿来计算梯度,比较累

 

随机梯度下降

•一次只使用一个样本进行目标函数梯度计算
•因为每次只计算一个样本,所以SGD计算非常快并且适合线上更新模型
•但是,频繁地更新参数也使得目标函数抖动非常厉害
•SGD频繁地参数更新可以使算法跳出局部最优点,更可能寻找到接近全局最优的解

 

小批量梯度下降

•结合了批量梯度下降和随机梯度下降的优点
•一次以小批量的训练数据计算目标函数的权重并更新参数
•其中,n为每批训练集的数量,一般设为50到256
•目标函数收敛得更加平稳
•可以使用矩阵操作对每批数据进行计算,大大提升了算法效率

先在内存里对齐,然后再做矩阵相乘

 

 

补充:Scatter3可以画3维图

Matplotlib.pyplot

 

最小二乘法 得到的是解析解

梯度下降是迭代得到的模型参数

 

Sigmoid函数

是一个在生物学中常见的S型函数,也称为S型生长曲线。 [1]  在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值