某一刻突然意识到可以选择自己的记忆,我顿悟了。
某一刻突然意识到可以选择自己的记忆,我顿悟了。
李宏毅强化学习课程笔记 Imitation Learning
我的笔记汇总:
apprenticeship learning
学习专家的行为。
监督学习,但是样本有限。
Dataset Aggregation
如果机器的学习能力有限,可能复制专家多余无用的动作。监督学习无法区分哪些是需要学习、哪些是需要忽视的行为。
监督学习中,我们假设训练数据和测试数据有相同的分布。Behavior Cloning 中可能分布不同。
反向强化学习
没有 reward 函数,通过专家和环境互动学到一个 reward function,然后再训练 actor。
类似于 GAN 的训练方法(actor 换成 generator,reward function 换成 discriminator)。
学到 actor 的 pi 后,调整 reward function,保证专家的行为得分大于学到的行为。
我的笔记汇总:
如果 reward 分布非常稀疏的时候,actor 会很难学习,所以刻意设计 reward 引导模型学习。
在原来 Reward 函数的基础上,引入 ICM 函数。ICM 鼓励模型去探索新的动作。最后 ICM 和 Reward 和越大越好。
鼓励探索新动作之后,会导致系统风险变大。对比预测的下一个状态和真正的状态的差异程度进行抑制。
Feature Ext 对状态进行抽取,过滤没有意义的内容。
Network 1 预测下一个状态,然后再和真实状态计算 diff 程度。
Network 2 预测 action,和真实的 action 进行对比。如果两个 action 接近,说明 f 可以进行特征提取。重要程度计算。
规划学习路线,从简单任务学习。
Reverse Curriculum Generation
对 agent 分层,高层负责定目标,分配给底层 agent 执行。如果低一层的agent没法达到目标,那么高一层的agent会受到惩罚(高层agent将自己的愿景传达给底层agent)。
如果一个agent到了一个错误的目标,那就假设最初的目标本来就是一个错误的目标(保证已经实现的成果不被浪费)
我的笔记汇总:
状态价值函数
状态行动价值函数
用 V 和 Q 替换 PG 中的累积 reward 和 baseline。新的模型需要训练两个网络,比较困难。
用 V 去替代 Q,能降低模型整体方差(MC 到 TD)。最下面两个公式转化是由实验得到。
训练过程:
tip:
该网络不仅仅告诉 actor 某一个 action 的好坏,还告诉 actor 应该返回哪一个 action。
将这个 actor 返回的 action 和 state 一起输入到一个固定的 Q,利用梯度上升更新 actor。
完整的训练过程和 conditional GAN 类似, actor 是 generator,Q 是 discriminator。
算法:
【Never Reading】 202007 互联网商业模式
不知不觉中每月分享已经进行半年,不过前 6 期都没有想到取什么名字。上期的标题「Never Reading」来自稍后读列表名称,仔细一想不正好成为每月分享的名字吗?而且还有致敬「Λ-Reading」的成分。
在 202006 Never Reading 中摘录过「即刻半月刊」的一段内容:
当时没有找到上面这一段内容的解释,只是觉得有点神奇就记录下来。这个月收听「三五环」中刘飞和少楠关于交易平台两期内容(14、17),其中提到许小年教授的一本书「商业的本质和互联网」。在书中详细的介绍商业平台的效应,感兴趣的可以找来详细的阅读。
读完之后,滴滴是什么模型这个问题就迎刃而解。这个月 有一个比较火视频 复盘出行大战:被BAT选中的滴滴,如何完成垄断霸业_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili,介绍滴滴创业的故事。做为一名内部人士,也被里面的内容给震撼到。之前沈南鹏在吴海波的采访中说过一句话「未来十年看滴滴」。记录自己看到的三个细节:
有一个梦想是能看到程维的传记,之前特意查过他的花名 —— 常遇春。知乎热榜这个月出现过一个奇怪的问题,里面有一段引用:
王保保这个“奇男子”的称号,是朱元璋给的,评价较帝国双壁之一常遇春更高,含金量十足:朱元璋曾大会诸将,问道:“天下奇男子谁也?”诸将都说:“[[常遇春]]将不过万人,横行无敌,真奇男子。”明太祖笑曰:“遇春虽人杰,吾得而臣之。吾不能臣王保保,其人奇男子也。”(《明史》-《扩廓帖木儿传》)
这就是本期的 「Never-Reading」,我们下个月再见。
这一份 6 月的阅读总结来的有一点晚。前几年一直断断续续在实践 GTD,人的拖延症超乎想象,学到的一个经验是 「Now or Never」。所以,这个月将自己的阅读列表取名为「Never Reading」。
Roam Research 引起现在这一波 Backlink 笔记软件浪潮,本月依然阅读一些和笔记方法相关的文章。
上个月介绍过,自己已经从 Roam Research 迁移到 Obsidian,然后就看到吕立青这一篇基于 Obsidian 的 Zettelkasten 实践。文章中将卡片盒笔记分拆分成四步:
1️⃣ 第一步:必须用自己的话写笔记卡片,以确保你将来能够理解。
2️⃣ 第二步:无论何时添加新笔记,主动查找可链接到的已有笔记。
3️⃣ 第三步:通过添加新记录并联系起来,延续这一系列的连续思考。
4️⃣ 第四步:使用 Anki 间隔重复加深记忆,主动由大脑触发远程联想。
搞笑地是,在他写出这篇文章没有多久之后,已经开始尝试往 Roam Research 上迁移……另外,为了更好在国内推广,他参与发起 roam/cn 组织,从英文世界翻译一些推特、视频以及分享一些个人的案例。
两条原则:
12 年间使用一个 txt 进行任务管理方法分享。作者提到 to do list 变成 what done list 的过程,每天晚上将日历中第二天的代办事项整理到 txt 中,第二天顺手记录任务相关的信息(比如讨论出的结论,或者得到的信息)。结合自己使用经历,OmniFocus 是一个 to do list,基于纯文本的任务管理方式(org-mode 或 taskpaper)更容易成为 what done list。
茨威格在《人类的群星闪耀时》所说的那种幸运是什么 —— 「最大的幸运,莫过于在年富力强的时候,发现了自己的使命」
人生总有一刻,我们会开始思考死亡 - 知乎 [[张潇雨]]
于是我发现,面对死亡最终可能只有两种方法。
- 一种是将自己与一些更宏大的东西联系起来:一个数学定理、一本文学著作、一件艺术作品或一种恒久的信仰。马尔克斯与康德靠《百年孤独》与《纯粹理性批判》遗世独立,米开朗基罗把《创世纪》和《最后的审判》印刻在西斯廷大教堂里,供千万后朝拜——他们肉身虽灭,但精神不朽——反正建筑是永远戳在那儿的。
- 还有一种就是,生活在当下的每个瞬间里,不烦扰过去、不担忧将来。
6.18?即刻重新开放,之前对这个社区没有太多印象,尝试关注一些人之后,信息流的质量也不错。「即刻半月刊」是某些爱好者挑选的一些即友发言集合。摘录一些我觉得有意思的内容。
本月 KDD 2020 的文章应该已经放出,推荐阅读 Airbnb 深度模型实践相关的文章 Managing Diversity in Airbnb Search 以及 Improving Deep Learning For Airbnb Search。 7 月份希望能写一篇博客分享自己的阅读笔记。
从去年开始给我一种 RSS 复兴的感觉,这个月尝试使用 Newsletter。对于创作者来说,RSS 不仅无法统计数据,也很难开展会员模式。Newsletter 通过邮箱订阅的的手段,完美解决这两个问题,国外开始有一站式的解决方案,可能几个月之后也会在国内火起来。推荐自己订阅的一些邮件组给大家。
出于对 Roam Research 开发者的不放心,已将全部文档迁移到 Obsidian。目前还在探索新的工作流,5 月分享不可避免产生拖延。另外还在寻找一种建立 Digital Garden 的方法。
不知不觉又到更新每月分享的时间。
想写一下我为什么做这件事情?分享自己平时看到有意思的内容,现实世界认识的人,很少对我关注的内容感兴趣,所幸能借助博客超越时间和空间限制的分享。
另外一点,我希望自己能将这个系列当成一个产品去迭代,每一期都有形式和内容上的进步。这件事看起来很简单,但却需要耗费很大的精力。其实在网上看到很多人通过这种形式分享,到头来还在坚持的大概也没有多少人(比如阮一峰的科技爱好者周刊)。
Zettlekasten 是一个德语单词,意思是卡片盒。现在主要指一种记笔记的思路。Roam Research 是目前国外很火的一个笔记软件,最大的特点是实现不同笔记之间的双向链接。好几个月前就开始尝试 Zettlekasten 的方法,4 月开始才使用 Roam Research。这里先分享一些我看过的文章。
写作软件中积累一些文章的草稿,不过由于我的兴趣变化太快,很多文章还没有完成就已经被我放弃。借这个机会,展示一些有意思的东西。
程序员圈子中编辑器战争一直是一个绕不过去的话题。自己日常的工作中会使用多种编辑器:
不论选择什么编辑器,都推荐大家去看陈斌的 一年成为Emacs高手 (像神一样使用编辑器) 。
去年底的时候,由于想尝试 org-mode
做任务管理(下个月再分享相关的内容),开始尝试使用 Emacs。Emacs 最大的有点是基于 Elisp 开发,软件中的每一个功能都对应一个函数,一个快捷键对应一个按键和函数的 map。修改功能和配置非常的方法。比如有人完全将 Vim 在文本操作上的功能迁移过来做成 evil 这个插件(号称所有和 Vim 中表现不同的情况都是 bug)。
Emacs 需要大量时间调教才能用起来舒心,对于初学者推荐去网上找一些成熟的配置直接使用。目前比较流行的有 Spacemacs 和 Doom emacs,这些配置维护以及使用的人很多,方便解决你遇到的各种问题。另外那些某些大佬个人分享的配置,如果你和大佬的技术栈不同,没有必要强行 clone。把它当成是一个学习素材,更好的理解 Emacs 背后的哲学。再这些基础上,成为高效的程序员的第一步,就是打造属于你自己的专门的配置文件。
使用好的编辑器是为了更快的工作。那如何更快的工作?
关于 2,我在之前的文章中提到过一点,改变中文的输入方式(从全拼切换到小鹤双拼)。另外一点就是多使用快捷功能,比如 vim 里面的行号跳转。大部分软件的快捷键都是开发商配置好的,不过每一人主要使用的功能其实是完全不一样的。Emacs 中所有的快捷键可以查到定义的文件,从而进行修改。想象一种情况,为了减少我们按快捷键的次数以及难度。我们统计一段时间内使用 Emacs 各个功能的次数(插件 keyfreq),然后重新定义对应的快捷键。
由于我自己之前主要使用的是 vim,所以也给 vim 用户一个相对于合理的替换过程:
***
以及高亮在文章中做笔记,方便之后进行快速回顾。现在看来,又有多少人预测到这一次超级黑天鹅事件。