机器学习中有很多有意思的 Trick,Deepmind 的 Shakir Mohamed (http://blog.shakirm.com) 维护了一个高质量的博客,其中写了一系列的机器学习 Trick,包括 Score Function 和 Reparameterisation。
本文接着上文
本文内容主要包括:
  • Score Function 的定义和性质

  • Score Function 的应用:变分推断和强化学习

Score Function (SF) 介绍

SF的定义
先从最大似然估计(MLE)说起,在学习统计时,最常见的一个操作是通过 MLE 来估计参数,为方便计算一般都采样对数似然函数(Log Likelihood, LL)作为目标函数,如下:

记 L(θ)=log p(x;θ),求最优的一个最直接方法就是令其对参数的导数为 0,如下:

这里 L(θ) 的一阶导数即为Score Function,记为:

即:求 MLE 相当于求解 Score 方程。如果继续对参数进行求导,会得到另一个非常有价值的量 Fisher Information,如下:

Fisher Information 经常用来衡量样本信息量,是一个非常有价值的指标(后面专门写一篇介绍 Fisher Information 的文章)。由上式可以看出,Fisher 信息量是 Score Function 的负导数。
SF的性质 
SF 之所以在机器学习中非常有用,是因为具有非常好的性质:
  • 与 MLE 有着密不可分的关系,参看公式 (2) (3)

  • SF 的期望等于 0,推导如下:

推导中用到了一个符合函数求导的公式,如下:

期望为 0 是一个非常好用的性质,比如:

这里的 b 是 baseline,在估计梯度时可以起到降低估计方差的作用,具体会在应用中讲到。SF 的方差为 Fisher Information,推导如下:

用来估计梯度时,可以松弛对代价函数的要求,不必使得代价函数可微,因此可以用来优化很多不可导的目标问题甚至是黑箱问题。

Score Function应用

SF 在机器学习中有着广泛的应用,尤其是在变分推断、强化学习中作用巨大。本节将通过详细的推导,对 SF 的应用进行介绍。 
变分推断
VI 的思路和 EBLO 的推导已在
推导出的优化问题如下:

其中,x 是观测变量,z 是隐变量,q(z) 是变分分布,λ 是变分分布的参数。
计算 L(λ) 的梯度如下:

公式 (10) 倒数第三行到导数第二行的推导利用了 score function 的期望为 0 这一性质,基于公式 (10) 就可以利用蒙特卡洛采样进行梯度估计,然后利用随机优化算法进行参数的更新。算法流程图如下:

参数估计除了要保证无偏之外,还希望估计的方差要尽量小。在此基础上,本文介绍一种经典的降低方差的方法 Control Variates,也会用到 score function 的一些性质。 
这里,假设一个估计是 f,希望可以找到一个新估计,使得:

控制变量法是构造一类估计函数,定义如下:

其中,a 是一个标量,h 是一个函数。由公式 (12) 容易得到,f 和的期望相同,方差如下:

直观上讲,Cov(f,h) 越大,新估计的方差越小,控制变量效果越好。令:

可得:

最优参数值是协方差和方差之比。为了方便计算,函数 h(z) 的选择是 score function,即:

所以,E[h(z)]=0。 
用新的估计来替换公式 (10) 中的估计 f,如下:

基于蒙特卡洛采样对梯度进行估计,从上述推导中可以保证新的估计方差会更小。 
强化学习
强化学习中有一类方法是无模型的策略梯度优化算法,本节将从 Score Function 的角度来推导 REINFORCE 及其变种。 
策略梯度优化算法需要解决的问题是:

优化目标是一个函数的期望,如果用基于梯度的优化方法,需要对期望的梯度进行估计。其中,γ 是一个 rollout,r(γ) 是该 rollout 的 reward,p(γ) 是这个 rollout 的分布。所以,由 score function 来推导 REINFORCE 如下:

通过对 rollout 进行采样来估计该期望的梯度,从而进行参数优化。从推导中可以看出,该方法并不要求代价函数可微,这个性质非常好,对于一些不可微的代价函数甚至是一些没有显式函数形式的黑盒函数的期望进行优化。 
根据公式 (5) score function 的期望为 0,可推导出加了 baseline 版本的 REINFORCE。

通过添加 baseline 这一项,参见公式 (17) 可见,选择一个合适的 baseline 可以有效降低梯度估计的方差,提高优化的效率。 
这里简单介绍了利用 score function 的性质来推导 REINFORCE 以及加了 baseline 的版本,对于随机优化问题来说,还有很多地方值得研究,比如估计梯度时的采样分布并不方便采样,可以借助重采样进行采样;比如为了保证收敛效果,可以考虑增加一些相应的约束条件;比如除了 score function 之外,pathwise derivative 也是一个常用的梯度估计方法。 
Policy Gradient 有一系列的方法,这类基于优化来做的方法,都有一定的共性,后面会抽空来写一个 Policy Gradient 的小综述,从最基础的 REINFORCE 开始,到最新的一些方法。具体会参考下图:

总结

score function 是一个非常有用的 trick,在梯度估计和方差降低两个基础问题中作用明显。在很多研究中 score function 还有一些其他名字,如:Likelihood Ratio,Automated Variational Inference,REINFORCE,Policy Gradients 等。
由上述两个应用可以看出,做函数期望的优化问题时,核心思路是通过一些 trick 将期望的梯度变成梯度的期望,从而利用蒙特卡洛采样对期望进行估计,然后利用随机优化算法,对所优化参数进行更新。梯度估计的方差越小,估计就越准确,优化求解效率就会越高。 
从核心计算问题上来看,变分推断和强化学习是可以统一起来的,下图可以看出,从期望梯度估计问题出发,变分推断和强化学习两个领域中的一些概念可以完全映射起来,两个问题完全可以协同着进行研究,其中一个领域诞生的新计算方法都可以在另一个领域进行尝试。

后续,会写一些相关综述,计划如下:
  • score function 的姊妹篇——pathwise derivative

  • 降低估计方差的常见方法

  • 变分推断的“前世今生”

  • 策略梯度的“从古到今”

  • DNN 预测不确定性估计的方法综述

参考文献

[1] Ranganath, R., Gerrish, S., & Blei, D. M. (2014). Black Box Variational Inference. In Proceedings of the Seventeenth International Conference on Artificial Intelligence and Statistics (pp. 814–822).

[2] http://blog.shakirm.com

[3] https://lilianweng.github.io

[4] Weber, T., Heess, N., Eslami, A., Schulman, J., Wingate, D., & Silver, D. (2015). Reinforced Variational Inference. In NIPS ABIW 2015 (2015).

点击以下标题查看更多往期内容:

#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site

• 所有文章配图,请单独在附件中发送

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

?

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

▽ 点击 | 阅读原文 | 获取最新论文推荐

Score Function Trick及其在机器学习中的应用相关推荐

  1. hash trick在机器学习中的使用

    普通的哈希算法暂且不讲了,我们探讨下哈希技术的各种应用.具体细节在以后博文中会有讲述. 1.一致性哈希.在分布式系统用途广泛. 2.局部敏感哈希LSH:simhash和minhash.可以用于相似度检 ...

  2. 机器学习中的损失函数(Loss Function)介绍、说明

    损失函数 损失函数介绍 常见的损失函数 1.对数损失函数(Logloss) 2. hinge loss 合页损失函数 3. exp-loss 指数损失函数 4. cross-entropy loss ...

  3. Hash Trick在机器学习中的应用

    一.我们探讨下哈希技术的各种应用. 1.一致性哈希.在分布式系统用途广泛. 2.局部敏感哈希LSH:simhash和minhash.可以用于相似度检测等.谷歌有篇文章利用LSH进行网页去重. 3.布隆 ...

  4. 机器学习中相关英文专业术语

    机器学习中相关英文专业术语 Name Instructions activation function 激活函数 additive noise 加性噪声 autoencoder 自编码器 Autoen ...

  5. 机器学习中激活函数和模型_探索机器学习中的激活和丢失功能

    机器学习中激活函数和模型 In this post, we're going to discuss the most widely-used activation and loss functions ...

  6. python决策树实例_机器学习中的决策树及python实例

    一棵树在现实生活中有许多枝叶,事实上树的概念在机器学习也有广泛应用,涵盖了分类和回归.在决策分析中,决策树可用于直观地决策和作出决策.决策树,顾名思义,一个树状的决策模型.尽管数据挖掘与机器学习中常常 ...

  7. 机器学习中的各种损失函数(Hinge loss,交叉熵,softmax)

    机器学习中的各种损失函数 SVM multiclass loss(Hinge loss) 这是一个合页函数,也叫Hinge function,loss 函数反映的是我们对于当前分类结果的不满意程度.在 ...

  8. 数学在机器学习中的重要性

    数学在机器学习中的重要性[by Dahua Lin] Linear Algebra (线性代数) 和 Statistics (统计学) 是最重要和不可缺少的.这代表了Machine Learning中 ...

  9. MIT一牛人对数学在机器学习中的作用给的评述

    MIT一牛人对数学在机器学习中的作用给的评述 感觉数学似乎总是不够的.这些日子为了解决research中的一些问题,又在图书馆捧起了数学的教科书. 从大学到现在,课堂上学的和自学的数学其实不算少了,可 ...

最新文章

  1. 知乎高赞怎么自学 python,大概要多久?
  2. mysql 多维度分表_亿级订单数据分库分表设计方案(满足多维度查询:订单号、用户、商家、渠道)...
  3. 零基础想学Python,明白这2点,越快年薪30W!
  4. 索引体积_MySQL入门之索引
  5. 服务器改win7 性能,性能大改善,微软Win10版本1909即将推出,网友为何坚持win7?...
  6. 中国学霸本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...
  7. 超链接一般有两种表现形式_外链的三种常见表现形式
  8. 经典而常用的配乐和背景音乐合集(上)
  9. 操作系统课程设计(页面置换算法 C语言)
  10. 网站性能并发测试工具
  11. python和r哪个好学知乎_r语言和python学哪个?
  12. 访谈 | 币圈量化群英会——寻找适合你的量化基金!
  13. BAT病毒-让电脑快速蓝屏
  14. 12星座的出生年月日性格_十二星座的出生日期及对应性格
  15. eclipse、ddms、android studio连接不上手机问题解决
  16. 2017-07-06:大神
  17. Bug: Safari浏览器input框placeholder和内容都不显示
  18. PyOpenPose编译与使用
  19. 微信小程序分享功能的实现方法有两种
  20. 湖南发现外星智慧创造人类证据(图)

热门文章

  1. postman设置带token的请求
  2. 7.6~7.20集训总结(一)
  3. python编程从入门到精通读书笔记(基础知识)
  4. js中“||”和“”的高级用法 js,与或运算符 || 妙用
  5. C++学习(十七)(C语言部分)之 指针
  6. 走在程序世界道路上的我___大一篇
  7. 奥运年08/07/19我正式加入博客园,开始.net的新征程^-^
  8. 笔记本应用/测试软件大全(个人使用心得)
  9. html字体整体偏移,html/css:在悬停鼠标时增加字体大小的链接时的位置偏移
  10. pythin怎么根据月份获取月初和月末_数据统计丨7月份塑料市场明显回暖,8月份是否延续乐观行情?...