机器学习基础(十一)—— Logistic Regression 梯度更新公式的推导
2016-03-24 15:21
316 查看
Logistic Regression 所要最佳化的问题是:
minw1N∑n=1Nln(1+exp(−ynwTxn))Ein(w)
Ein(w) 对 w 求导得:
∇Ein(w)=1N∑n=1Nθ(−ynwTxn)(−ynxn)
无法像 Linear Regression 一样找到 ∇Ein(w)=0 的解析解。我们采用 iterative optimization 的方式进行求解,已知 iterative optimization 的框架为:
wt+1←wt+ηv
也即,我们可将问题转换为:
Ein(wt+1)=Ein(wt+ηv)
我们继续对 Ein(wt+ηv) 进行一阶泰勒展开:
Ein(wt+ηv)≈Ein(wt)+ηvT∇Ein(wt)
只有 v 是未知的(假定其为单位向量),那什么时候 Ein 下降最快呢,v 与 Ein(wt) 呈负梯度方向时,也即:
v=−∇Ein(wt)∥∇Ein(wt)∥
故最终的梯度下降(gradient descent)公式为:
wt+1←wt−η∇Ein(wt)∥∇Ein(wt)∥
如果 η 的取值不固定,是变化的话,它应该正比于 ∥∇Ein(wt)∥,也即坡度(梯度)越大,它的步子应该跨得大一点,坡度小时,它就跨得小一点,以防跨过最小值点。
简单起见,我们可将 η 与 ∥∇Ein(wt)∥视为一定的比例关系,比值继续记做 η(此时称作 fixed learning rate),这样梯度更新就变成了:
wt+1←wt−η∇Ein(wt)
minw1N∑n=1Nln(1+exp(−ynwTxn))Ein(w)
Ein(w) 对 w 求导得:
∇Ein(w)=1N∑n=1Nθ(−ynwTxn)(−ynxn)
无法像 Linear Regression 一样找到 ∇Ein(w)=0 的解析解。我们采用 iterative optimization 的方式进行求解,已知 iterative optimization 的框架为:
wt+1←wt+ηv
也即,我们可将问题转换为:
Ein(wt+1)=Ein(wt+ηv)
我们继续对 Ein(wt+ηv) 进行一阶泰勒展开:
Ein(wt+ηv)≈Ein(wt)+ηvT∇Ein(wt)
只有 v 是未知的(假定其为单位向量),那什么时候 Ein 下降最快呢,v 与 Ein(wt) 呈负梯度方向时,也即:
v=−∇Ein(wt)∥∇Ein(wt)∥
故最终的梯度下降(gradient descent)公式为:
wt+1←wt−η∇Ein(wt)∥∇Ein(wt)∥
如果 η 的取值不固定,是变化的话,它应该正比于 ∥∇Ein(wt)∥,也即坡度(梯度)越大,它的步子应该跨得大一点,坡度小时,它就跨得小一点,以防跨过最小值点。
简单起见,我们可将 η 与 ∥∇Ein(wt)∥视为一定的比例关系,比值继续记做 η(此时称作 fixed learning rate),这样梯度更新就变成了:
wt+1←wt−η∇Ein(wt)
相关文章推荐
- 用xmlpull解析xml文件
- Java集合类常见问题(上)
- .net 操作 json
- android txt写入文件
- docker 开机重启
- FTP协议简介与断点续传功能的实现
- C#获取URL中的参数
- Hive学习之三 《Hive的表的详解和应用案例详解》
- 编译安装apache2.4.18遇到的问题以及解决办法
- Ajax交互,浏览器接收不到服务器的Json数据(跨域问题)
- 做一个合格的程序猿之浅析Spring AOP源码(十四) 分析ProxyFactoryBean
- 音频,PCM裸流的一些扫盲记录
- 判断点是否在多边形内
- 线程池的创建
- Xen缓冲区溢出漏洞(刘令)
- 回溯法与分支限界法
- 【python小练】0004
- hdu 1907 John
- Java并发编程:Callable、Future和FutureTask
- px4(apm)的log结构