ICLR 2020论文精选:“好奇心”的本质探讨,元学习与增强学习(RL)的“好奇心”机制,好奇心算法搜索,智能体的适应力增强

与其说人类是智能“搜索”机,不如说人类是智能“贪婪”机— David 9
David最近在思考一个问题,表面上看所有智能问题都是“搜索”问题,包括今天我们讨论“好奇心”本质,也可以理解为对“好奇心”算法的搜索。
但是,人类仅仅是一台高级一点的“搜索机”吗?或者说除了“搜索”,“智能”(灵性)是否必须有一些其他重要属性比如“抽象能力”,“信息组织能力” ?换句话,仅仅用显式“搜索”构建的“智能”是不是“伪智能”?
事实上,今天我们探讨的这篇MIT在ICLR 2020的论文,就是这样一种“搜索”出来的“好奇心”。但是,这已经是当今一群聪明人可以设计的较好的“好奇心”机制了。
毫无疑问,好奇心是智能体主动探索外部环境,获取有用经验的驱动力。
在内部,MIT研究人员把“好奇心”设计为一种“代理回报”(proxy rewards)的机制:
来自:https://arxiv.org/pdf/2003.05325.pdf
在传统RL算法外部环境之间又架了一层“好奇心”模块,模块返回的\hat{r} 是RL算法真正训练使用的回报。(并不直接使用环境回报r )。
这样对于RL算法,回报不再是“傻乎乎”地锚定某个特定环境,而是可以适应多个环境。事实上该论文的实验就是针对多个RL环境游戏的,如Grid World:

继续阅读ICLR 2020论文精选:“好奇心”的本质探讨,元学习与增强学习(RL)的“好奇心”机制,好奇心算法搜索,智能体的适应力增强

Tesla自动驾驶Autopilot(第2弹):多任务分布式PyTorch训练,FSD芯片,NPU,Dojo和其他

过去十年是云计算(集中式计算)流行的十年,我们不知道什么时候分布式或其他形式的“分散式计算”会“卷土重来”,但我似乎看到了“暗流涌动”。 — David 9

补充上一期我们聊到的“Tesla自动驾驶搞定多任务学习”,这次,特斯拉AI负责人Andrej Karpathy在PyTorch DEVCON 2019上进一步讨论了内部整体架构:

来自:https://www.youtube.com/watch?v=oBklltKXtDE

其中主要谈了两点:“PyTorch distributed training” 和 infrastructure 层面的一些东西。

继续上次的讨论,我们知道特斯拉autopilot自动驾驶不借助LIDAR激光而是通过八个方向的摄像头进行环境判断:

来自:https://www.youtube.com/watch?v=oBklltKXtDE

最后对模型来说要有一个top-down的俯视图做最终决策:

来自:https://www.youtube.com/watch?v=oBklltKXtDE
这就要求autopilot模型不断接受从8个摄像头捕捉到的图像,并同时输出许多output(1000个左右),而且,模型同时承载多个任务(目标检测,深度检测,目标识别等等),整个autopilot模型会包含许多个子模型(子任务):
 
来自:https://www.youtube.com/watch?v=oBklltKXtDE

事实上,上图的8个子模型其实是简化了,其实auopilot有48个子模型。上图只是象征性地展示多模型同时有很多输出。而反向传播更新时, 继续阅读Tesla自动驾驶Autopilot(第2弹):多任务分布式PyTorch训练,FSD芯片,NPU,Dojo和其他

给普通科研人员跑TensorFlow Models项目的一点建议,编译tf,谷歌Bazel,TensorFlow Slim和其他

TensorFlow Models项目是谷歌TensorFlow项目下存放大量官方SOTA模型论文模型实现的子项目,大量的科研学习可以从这里开始(每个论题模型都是科研机构各自维护的):

但要快速上手任意模型,对于普通科研人员并不容易(除非你同时是CS系或同时熟悉C和python编程等)。这里David就带大家绕过一些不必要的坑。

models/research下的迁移学习domain_adaptation项目为例NIPS 2016论文),缺少编程经验的朋友(或者只会python的朋友)如果按照introduction走,很快就傻眼了:

普通科研人员不会知道bazel是google的一个编译工具,也不知道slim是什么东西(TF-slim其实是TensorFlow Models项目中独立出来的通用库)。事实上,对于只需研究模型本身的研究人员,这些都可以绕过!对于上述红框中的命令你完全可以用下面命令替代:

# python download_and_convert_data.py -- --dataset_dir $DSN_DATA_DIR --dataset_name=mnist

Models子项目虽然用bazel管理,但本质上都是TF的python项目,你总能找到python主入口跑这个项目,而不是用bazel这种专业工具(谷歌内部喜欢用的工具)。同样,slim本质上也是一个python库,用python脚本跑程序就可以:

$ python download_and_convert_data.py \
    --dataset_name=flowers \
    --dataset_dir="${DATA_DIR}"

另外,路径出错也是常见错误,

Traceback (most recent call last):
  File "dsn_eval.py", line 28, in <module>
    from domain_adaptation.datasets import dataset_factory
ImportError: No module named domain_adaptation.datasets

如上错误很可能是domain_adaption这个文件夹路径没有找到而已,这时对于一些不熟悉linux命令行的朋友,建软链或加环境变量不是最佳选择,最直接的方法是修改代码,比如在代码中插入下面两行,就可以把目录上两级库也添加进来,解决问题: 继续阅读给普通科研人员跑TensorFlow Models项目的一点建议,编译tf,谷歌Bazel,TensorFlow Slim和其他