梯度下降优化方法的思考

写在开头:看了AndroidNG的斯坦福公开课之后,又想重新审视对之前学的似懂非懂的梯度下降方法。写篇博客研究一下其中的数学知识。

1.线性回归

1.线性回归的预测模型: hθ(x)=θ0+θ1x1++θnxn
给定m个样本 (x(1),x(2),,x(m)) 对应的标记分别为 (y(1),y(2),,y(m)) :
我们要做的就是根据这m个样本去估计theta的值,
如何去估计呢?
方法一:直接将m个样本值带入回归模型求 θ ,可以得到:

y(1)=θ0+θ1x(1)1++θnx(1)ny(2)=θ0+θ1x(2)1++θnx(2)ny(m)=θ0+θ1x(m)1++θnx(m)n

注: x(i)j 表示的是第i个样本的第j个特征

x0=1 则上式转化成向量表示: Y=θTX 其中 Y=(y(1),y(2),,y(m));θ=(θ0,θ1,,θn)T

X=x(1)0x(1)1x(1)nx(2)0x(2)1x(2)nx(m)0x(m)1x(m)n

根据线性代数可知:
而且所有的点都位于拟合曲线上,会出现过拟合问题
方法二:最优化方法,构造损失函数,求得能使损失函数最小的最优 θ

机器学习中常用的损失函数:
(1) 01 loss function

f(θ)={1,0,yhθ(x)y=hθ(x)J(θ)=θ=θ0θkf(θ)

(2)quadratic loss function
J(θ)=i=1m(y(i)hθ(x(i)))2

(3)absolute loss function
J(θ)=i=1m(y(i)hθ(x(i)))

(4)logarithmic loss function
J(θ)=i=1mlogP(y(i)x(i))

在线性规划中最常用的是平方损失函数 J(θ)=mi=1(y(i)hθ(x(i)))2
我们实际上要最优化 θ 的目标也就等价于最小化损失函数 J(θ) ,这里的 J(θ) 就是关于 θ 的函数,其中这个式子中 x y都是样本的值带入,然后就成了常数,如何使得损失函数最小化,就是接下来需要考虑的问题,这种问题的学名叫做无约束优化问题
下面介绍几种常用的优化方法:
1.梯度下降
2.牛顿法

2.梯度下降(Gradient Descent)

考虑无约束数学规划问题:

minJ(θ),θRn

步骤:
(1)选取初始点 θ(0) ,指定计算精度 ϵ>0 。令 k=0
(2)计算迭代方向向量 dk=J(θ(k)) (负梯度方向)
(3)如果 ||J(θ(k))||ϵ (偏导为0,同样也可以判断函数值的变化),停止迭代, θ=θ(k) ,算法结束。
(4)否则,求最优步长 λk ,也就是 λk=argminλJ(θ(k)+λdk) (其中 θ(k),dk 都是已知,所以很容易求 λk ),令 θ(k+1)=θ(k)+λkdk,k=k+1 转步骤2。

编程的大致伪代码即为:
首先程序给予 θ(0)
repeat{
θ(k+1)=θ(k)λkddθJ(θ(k)) //梯度方法
}
注意:
此处的 θ 为向量也就是,上式可以转化为:
repeat{
θ(k+1)0=θ(k)0λkddθ0J(θ(k))
θ(k+1)1=θ(k)1λkddθ1J(θ(k))

θ(k+1)n=θ(k)nλkddθnJ(θ(k))
}
直到 J(θ) 的值不在变化时,停止迭代。
理论:沿着逆梯度方向函数值在减小,执行梯度下降需要满足原函数是凸函数,关于 J(θ) 是否满足,因为是二次函数,所以明显是满足的

缺点:首先需要说明的一点是 dk+1dk ,证明方法简单,步骤(4)中求最优 λk 时,求导等于0,即可得到上述结论。由于这个特点的存在,会导致在接近最优点的时候,每次迭代的步长会特别小,导致迭代次数增加。所有就有了牛顿法。

牛顿法

逻辑回归简述

MATLAB编程实现

关于最优化的思考

无约束优化

黄金搜索法

二次插值法

Nelder-Mead算法

最速下降法

牛顿法

模拟退火法

遗传算法

约束优化

拉格朗日乘子法

惩罚函数法

写在最后:这篇博客还没写完,编辑公式太浪费时间了。下面所要写的也都是优化问题的方法,所以一次没写完,要等着之后慢慢补充。关于优化问题,读者可以最好买几本数学的教材读一读。机器学习中充斥的最多的也就是优化问题。可以先随便看一本国内的优化问题的教材,然后攻读Stephen Boyd的Convex optimization(凸优化)。
——2016.12.8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值