吴恩达《机器学习训练秘籍》读书笔记(第44~46章)

陈曦,朱小栋

第八部分 调试推论算法(Debugging inference algorithms)

第四十四章 优化验证测试(The Optimization Verfication test)

(这部分的内容看得不是非常明白,尝试着简单总结一下)

就语音识别系统的例子来说,输入是A那么:

在A的条件下,得到句子S的概率Score值要最大。

假如出错,有两种可能:

  1. 搜索最大值的算法出错(Search algorithm problem)
  2. 目标(打分函数)出错(Objective/scoring function problem)

如何知道是哪一种错误呢?这里使用的就是优化验证测试的方法,假设正确的输出值为S*而实际输出为Sout那么有以下两种情况:

此时,是由于搜索算法出现了问题,才导致实际输出没有找到Score值最大的那个句子。

此时,是计算的目标(打分)函数出错了。

因此,到底是哪里出了问题就该着重改进哪里。

第四十五章 优化验证测试的普遍形式

(这里举了一个机器翻译的例子)

在人工智能领域,这是一种非常常见的 “设计模式”,首先要学习一个近似的打分函数Scorex(.) ,然后使用近似最大化算法(搜索output)。如果你能够明白这种模式,就能够使用优化验证测试来理解造成误差的来源。

第四十六章 加强学习的例子(Reinforcement learning example)

你的目标是使用一种学习算法,让直升机通过一个轨迹T安全地着陆。

这是就要用到加强学习的方法了,你要设计一个奖励函数(Reward function)。这个函数R(.)给轨迹T评估打分,假如直升飞机坠毁那么R(T)应该是-1000一个很大的负反馈。如果相反,降落的很平稳,则是一个正值。

同样,利用前面的理论,我们需要测试:

第一种情况,不等式成立。说明强化学习算法找到的Tout不够好,需要改进算法。

第二种情况,不等式不成立。说明打分函数R(.)这个函数设置的不合理,需要改进。

在上面的例子中,得分函数即是奖励函数,Score(T)=R(T) ,而采用的优化算法是强化学习算法,目的是找到好的轨迹。这和前面的例子有一个区别,那就是,与其比较 “最优” 输出,不如将其与人类水平的表现 Thuman 进行比较。我们认为,即使Thuman 不是最优的,它也是相当不错的。

英文原文翻译链接:https://mp.weixin.qq.com/s?__biz=MzUyNjc3NjIzNQ==&mid=2247483849&idx=1&sn=e21ae3c6fdb689f030adab83409bac1d&chksm=fa08e30dcd7f6a1bdd59ebf6325885dffd7d4f2f25e4d7e23e00d23c202bdf305918de2bfb3f&mpshare=1&scene=1&srcid=10099wNzjNF8UIZxPVjHseH1&pass_ticket=F1v1nGRqGWCDNcjZ%2F6W4o7ehf%2FsiC69neCcpU4fXAkz87J%2FjQsrvgvDALjcmkSHd#rd