李宏毅强化学习课程笔记 Imitation Learning

我的笔记汇总:

apprenticeship learning

  1. 无法从环境中获得 reward。
  2. 某些任务中很难定义 reward。
  3. 人为设计的奖励可能导致意外的行为。

学习专家的行为。

Behavior Cloning

监督学习,但是样本有限。

Dataset Aggregation

  1. 通过行为克隆得到 actor π1\pi_1
  2. 利用 π1\pi_1 和环境交互得到一些新的样本
  3. 由专家对上一步采样得到的样本进行标注
  4. 利用新得到的样本训练 π2\pi_2

如果机器的学习能力有限,可能复制专家多余无用的动作。监督学习无法区分哪些是需要学习、哪些是需要忽视的行为。

Miss match

监督学习中,我们假设训练数据和测试数据有相同的分布。Behavior Cloning 中可能分布不同。

Inverse Reinfofcement Learning

反向强化学习
没有 reward 函数,通过专家和环境互动学到一个 reward function,然后再训练 actor。

类似于 GAN 的训练方法(actor 换成 generator,reward function 换成 discriminator)。
学到 actor 的 pi 后,调整 reward function,保证专家的行为得分大于学到的行为。


李宏毅强化学习课程笔记 Sparse Reward

我的笔记汇总:

Reward Shaping

如果 reward 分布非常稀疏的时候,actor 会很难学习,所以刻意设计 reward 引导模型学习。

Curiosity Intrinsic Curiosity module (ICM)

在原来 Reward 函数的基础上,引入 ICM 函数。ICM 鼓励模型去探索新的动作。最后 ICM 和 Reward 和越大越好。

鼓励探索新动作之后,会导致系统风险变大。对比预测的下一个状态和真正的状态的差异程度进行抑制。

Feature Ext 对状态进行抽取,过滤没有意义的内容。
Network 1 预测下一个状态,然后再和真实状态计算 diff 程度。
Network 2 预测 action,和真实的 action 进行对比。如果两个 action 接近,说明 f 可以进行特征提取。重要程度计算。

Curriculum Learning

规划学习路线,从简单任务学习。

Reverse Curriculum Generation

Hierarchical Reinforcement Learning

对 agent 分层,高层负责定目标,分配给底层 agent 执行。如果低一层的agent没法达到目标,那么高一层的agent会受到惩罚(高层agent将自己的愿景传达给底层agent)。

如果一个agent到了一个错误的目标,那就假设最初的目标本来就是一个错误的目标(保证已经实现的成果不被浪费)


李宏毅强化学习课程笔记 Actor Critic

我的笔记汇总:

Actor Critic

policy gradient

  • 给定在某个 state 采取某个 action 的概率。
  • baseline b 的作用是保证 reward 大的样本有更大的概率被采样到。
  • 从当前时间点累加 reward,并且当前 action 对后面的 reward 影响很小,添加折扣系数。
  • PG 效果受到采样数量和质量影响。

Q-learning

状态价值函数 Vπ(s)V^{\pi}(s)
状态行动价值函数 Qπ(s,a)Q^{\pi}(s,a)

Actor-Critic

用 V 和 Q 替换 PG 中的累积 reward 和 baseline。新的模型需要训练两个网络,比较困难。

Advantage Actor-Critic

用 V 去替代 Q,能降低模型整体方差(MC 到 TD)。最下面两个公式转化是由实验得到。

训练过程:

tip:

  1. actor 和 critic 具有相同的输入 s,可以共享部分网络结构。
  2. output entropy 作为 pi 的正则项,entropy 越大采样效果越好。

Asynchronous Advantage Acotr-Critic A3C

  1. 利用多个 worker 去训练。
  2. 每个 worker 复制主模型的参数。
  3. 每个模型单独采样,并且计算梯度。
  4. 更新全局参数。

Pathwise derivative policy gradient

该网络不仅仅告诉 actor 某一个 action 的好坏,还告诉 actor 应该返回哪一个 action。

将这个 actor 返回的 action 和 state 一起输入到一个固定的 Q,利用梯度上升更新 actor。

完整的训练过程和 conditional GAN 类似, actor 是 generator,Q 是 discriminator。

算法:

  1. action 由训练的 actor 决定
  2. 利用 s 和 a 更新 Q

GAN 和 AC 方法对比


【Never Reading】 202007 互联网商业模式

不知不觉中每月分享已经进行半年,不过前 6 期都没有想到取什么名字。上期的标题「Never Reading」来自稍后读列表名称,仔细一想不正好成为每月分享的名字吗?而且还有致敬「Λ-Reading」的成分。

互联网商业模式

202006 Never Reading 中摘录过「即刻半月刊」的一段内容:

  • 所谓“商业模式”其实指的是这家公司的“价值创造模式”,即用什么样的模型创造了更多价值。
    • 世界上现存所有的商业模式无非三种,一是[[边际效应]](规模效应/协同效应),二是[[双边效应]],三是梅特卡夫[[网络效应]]。不同的价值创造模型,带来不同的增长动力,继而带来不同的货币化方法。
    • 滴滴是什么模型?

当时没有找到上面这一段内容的解释,只是觉得有点神奇就记录下来。这个月收听「三五环」中刘飞和少楠关于交易平台两期内容(14、17),其中提到许小年教授的一本书「商业的本质和互联网」。在书中详细的介绍商业平台的效应,感兴趣的可以找来详细的阅读。

  • [[规模效应]]:[[边际成本]]越低和边际收益越高
  • [[协同效应]]:依赖于品种增加带来的 1+1 > 2
    • 百货公司拥有协同效应
    • #problem 协同效应失败的例子?
  • [[双边市场效应]]
    • 双边供需的进入,都会有正外部性。公式:V=kmn
    • 电商平台的效应弱:需要平台来管控质量,即变成了单边的;滴滴的效应强:司机和乘客的增加,都会带来正向效应(但边际收益未必持续提升)。
  • [[梅特卡夫效应]]
    • 一个网络的价值与用户量的平方成正比。与常见网络效应的概念基本相同。任何用户的进入,都会有正外部性。
    • 社交网络
    • 曾李青定律:V=k*n²/r²(r 受 T、S、I、C 影响)。

读完之后,滴滴是什么模型这个问题就迎刃而解。这个月 有一个比较火视频 复盘出行大战:被BAT选中的滴滴,如何完成垄断霸业_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili,介绍滴滴创业的故事。做为一名内部人士,也被里面的内容给震撼到。之前沈南鹏在吴海波的采访中说过一句话「未来十年看滴滴」。记录自己看到的三个细节:

  • 滴滴接受腾讯投资后,程维和王刚彻底关上和阿里的联系。
  • 和快的补贴大战中:马化腾建议每次补贴金额在 12-20 中间的一个随机数
  • 和 uber 大战中:腾讯封禁 uber 在微信上的微信号

有一个梦想是能看到程维的传记,之前特意查过他的花名 —— 常遇春。知乎热榜这个月出现过一个奇怪的问题,里面有一段引用:

王保保这个“奇男子”的称号,是朱元璋给的,评价较帝国双壁之一常遇春更高,含金量十足:朱元璋曾大会诸将,问道:“天下奇男子谁也?”诸将都说:“[[常遇春]]将不过万人,横行无敌,真奇男子。”明太祖笑曰:“遇春虽人杰,吾得而臣之。吾不能臣王保保,其人奇男子也。”(《明史》-《扩廓帖木儿传》)

商业

  • 阿里很强调价值观,但[[阿里巴巴]]首先是一家商业组织。
  • 上学时,[[黄峥]]就意识到了机会可贵:“我在上学时就意识到几个事:一是寒门出贵子是小概率事件,大部分富二代,尤其是官二代非常优秀。二是田忌赛马,在整体资源劣势的情况下可以创造出局部优势,进而有机会获得整个战役的胜利。基于此,平凡人可以成就不凡事。第三是钱是工具,不是目的。”
  • 趣头条本质上是一款游戏产品,只不过披着内容信息流的外衣。
    • 不过这一些信息流产品只有学习用户兴趣,真正的影响用户行为还是要靠基于强化学习开发的游戏。
  • 字节系广告变现涉及4个角色:内容消费者,内容生产者,平台,广告主;阿里系广告变现涉及3个角色:消费者,商家,平台;所以阿里的广告变现链条更短,一定程度上也是效率更高的原因。多一个角色,多一份成本,最终效果要多乘一个参数。
  • Apple’s Relentless Strategy, Execution, and Point of View | by Steven Sinofsky | Jun, 2020 | Learning By Shipping Steven Sinofsky 是前微软 Windows 业务部门的总裁评价苹果架构迁移。
    • 其实没有仔细看这一篇文章。震惊到我的是,这位兄弟管理过 20000 人的工程团队?不知道现在国内有哪一些公司的 CTO 能管理这么多的人。
  • 从苹果的系统更新,理解设计中的「控制」与「自由」 - 少数派
    • 雪城大学建筑学教授理查德·洛萨(Rhichard Rosa)认为**“设计的本质即是在于控制与自由。”**这句话非常简洁但直接地介入了设计的核心——设计行为为混乱与无序赋予秩序,使之得以承载可控的人类行为;但设计也一定不是绝对的控制,它一定要为使用者预留一些自由。
    • 设计师对美学的自信会落脚在对细节的强制:贝聿铭设计京都东郊的美秀美术馆,下雨天需要领取相应颜色的雨伞才能进入。
    • 有些人说:“消费者想要什么就给他们什么。” 人们不知道想要什么,直到你把它摆在他们面前
    • 设计一定需要控制,但一定不是绝对的控制。平台的搭建者需要预留一些自由给开发者以及用户,对秩序的全盘接手最终会导致自下而上民意的反弹。
    • [[设计的哲学]],设计的背后是不是需要有哲学?一味满足用户需求的软件是不是会变得十分的复杂?比如 Emacs 之类自由度高的软件?
  • 顶级PM的产品观:王慧文看行业-合集 - 简书
    • 互联网 AB 面:A类是供给和履约在线上,B类是供给和履约在线下。
    • B类又可以分为:以SKU为中心的供给B1和以Location为中心的服务B2。
    • A 类能力体现在产品设计领域,体现在用户理解上,体现在对于通讯、社交以及内容把握上。
    • B1里面,主要体现在对于品类的理解,对于供应链的理解,对于定价的理解。
    • B2里面,如果你们去盘点一下B2的公司,他们总体来说有一个比较共有的特征,大规模的线下团队。
    • 是否有大规模的线下团队是B1和B2一个很大的差别。
    • 在LBS的方向上,中国和美国的企业这样的差距是怎么样发生的?大概有四个因素决定:人力成本、人口密度、人口规模、代际竞争。

互联网 AB 面

阅读

  • 理解世界的一个有效方法是,在人生的某个阶段,把任何之前视为理所当然的事情全都重新研究与思考一遍,并弄清楚它们运行的真正起源与机理。在这个过程中,自问的问题越基础、越显得不需要去质疑,收获往往就会越多——人为什么要每天吃三顿饭、买东西为什么要花钱、书籍和文章为什么会存在——真理通常就藏在这些大多数人想都不会想的事情里。[[张潇雨]]
    • 「银河系漫游指」里面有一句:任何在我出生时已经有的科技都是稀松平常的世界本来秩序的一部分。
  • 什么是第一原理?
    • [[亚里士多德]] 在[[形而上学]]中提出这个哲学概念,指「公理:无法再分、无法证明且不证自明的命题。」
    • “第一原理”本身并不是什么原理,它只是个简称。准确地说,应该叫做“从第一原理推理”(reasoning by first principle),是分析问题,找出其不可继续拆分的根本原因,即第一原理,再从第一原理反推出解决方案的思考方式。
    • 第一原理是先验

算法

这就是本期的 「Never-Reading」,我们下个月再见。


【每月分享】 202006 Never Reading

这一份 6 月的阅读总结来的有一点晚。前几年一直断断续续在实践 GTD,人的拖延症超乎想象,学到的一个经验是 「Now or Never」。所以,这个月将自己的阅读列表取名为「Never Reading」。

笔记方法精进

Roam Research 引起现在这一波 Backlink 笔记软件浪潮,本月依然阅读一些和笔记方法相关的文章。

我的 Zettelkasten 卡片盒笔记法实践 | 吕立青的博客

文章链接

上个月介绍过,自己已经从 Roam Research 迁移到 Obsidian,然后就看到吕立青这一篇基于 Obsidian 的 Zettelkasten 实践。文章中将卡片盒笔记分拆分成四步:

1️⃣ 第一步:必须用自己的话写笔记卡片,以确保你将来能够理解。

2️⃣ 第二步:无论何时添加新笔记,主动查找可链接到的已有笔记。

3️⃣ 第三步:通过添加新记录并联系起来,延续这一系列的连续思考。

4️⃣ 第四步:使用 Anki 间隔重复加深记忆,主动由大脑触发远程联想。

搞笑地是,在他写出这篇文章没有多久之后,已经开始尝试往 Roam Research 上迁移……另外,为了更好在国内推广,他参与发起 roam/cn 组织,从英文世界翻译一些推特、视频以及分享一些个人的案例。

Zettelkasten note-taking in 10 minutes

两条原则:

  • Don’t try to get this method perfect from the get go.
  • The advanced practices are useful only when you’ve got close to 1000 notes

My productivity app for the past 12 years has been a single .txt file

12 年间使用一个 txt 进行任务管理方法分享。作者提到 to do list 变成 what done list 的过程,每天晚上将日历中第二天的代办事项整理到 txt 中,第二天顺手记录任务相关的信息(比如讨论出的结论,或者得到的信息)。结合自己使用经历,OmniFocus 是一个 to do list,基于纯文本的任务管理方式(org-mode 或 taskpaper)更容易成为 what done list。

商业

阅读

人生总有一刻,我们会开始思考死亡

茨威格在《人类的群星闪耀时》所说的那种幸运是什么 —— 「最大的幸运,莫过于在年富力强的时候,发现了自己的使命」

人生总有一刻,我们会开始思考死亡 - 知乎 [[张潇雨]]
于是我发现,面对死亡最终可能只有两种方法。

  • 一种是将自己与一些更宏大的东西联系起来:一个数学定理、一本文学著作、一件艺术作品或一种恒久的信仰。马尔克斯与康德靠《百年孤独》与《纯粹理性批判》遗世独立,米开朗基罗把《创世纪》和《最后的审判》印刻在西斯廷大教堂里,供千万后朝拜——他们肉身虽灭,但精神不朽——反正建筑是永远戳在那儿的。
  • 还有一种就是,生活在当下的每个瞬间里,不烦扰过去、不担忧将来。

即刻半月刊

6.18?即刻重新开放,之前对这个社区没有太多印象,尝试关注一些人之后,信息流的质量也不错。「即刻半月刊」是某些爱好者挑选的一些即友发言集合。摘录一些我觉得有意思的内容。

  • 老罗带货首卖小米的中性笔:数量太少。之前看到过一个分析,抖音自己做电商最大的困难点在于没有用户的物流地址。简单想一下,用户可能在填写地址这一步流失。
  • @Rey_L 我在判断哪家公司的产品会换灰色皮肤的时候,基本都猜对了hhh,滴滴头条一定会做,京东会做,淘宝也许会做,拼多多肯定不做。
  • 微信小程序减少 App Store 在国内的下载量。不过大部分巨头的小程序还是想要从微信中引流的。
  • 底下有回复cite了一个working paper,大意说的是名校(elite education,这里用的是211高校与非211高校的断点回归)能够给学生带来的起薪上 30-45% 的提升,其原因在于名校当中的social network,elite的peer普遍家庭条件更好,成绩也更好。上网课带来不了这种social connection…所以说不单只是知识改变命运,环境也很重要
  • 所谓“商业模式”其实指的是这家公司的“价值创造模式”,即用什么样的模型创造了更多价值。
    • 世界上现存所有的商业模式无非三种,一是[[边际效应]](规模效应/协同效应),二是[[双边效应]],三是梅特卡夫[[网络效应]]。不同的价值创造模型,带来不同的增长动力,继而带来不同的货币化方法。
    • 滴滴是什么模型?
  • A/B test只能做模型的小优化,但找不到大的绝对的增长点,所以除了推荐系统里的参数,即刻的很多产品决策希望尽量远离A/B test
  • 张小龙的饭否,张一鸣的微博,黄峥的微信公众号,很可惜这几个都成了过去形态。现在只剩下王兴的饭否了。
  • 一个反向小思考:兴趣社交刚需归刚需,社交app的本质还是信息分发。RSS订阅20周年,分发的有效性也不是什么相似推荐,^而是真正提供专注力的阅读^。因为个性推荐的本质就是专注力。信息廉价甩卖的今天,打开微博广场/抖音主页/朋友圈(广告),用户最需要的不是新鲜事而是减少噪音的阅读器,人永远看到自己想看到的,产品顺水推舟不也是更讨巧,所以需要设计者克制。沟通永远是双向的,当用户感到一个舒适被接纳的舆论场所,也会更加有表达欲。
  • 芒果系这么多年都在做一件事,就是把握这个时代的情绪。[[乘风破浪的姐姐们]]

机器学习

本月 KDD 2020 的文章应该已经放出,推荐阅读 Airbnb 深度模型实践相关的文章 Managing Diversity in Airbnb Search 以及 Improving Deep Learning For Airbnb Search。 7 月份希望能写一篇博客分享自己的阅读笔记。


【每月分享】 202005 Newsletter

Newsletter

从去年开始给我一种 RSS 复兴的感觉,这个月尝试使用 Newsletter。对于创作者来说,RSS 不仅无法统计数据,也很难开展会员模式。Newsletter 通过邮箱订阅的的手段,完美解决这两个问题,国外开始有一站式的解决方案,可能几个月之后也会在国内火起来。推荐自己订阅的一些邮件组给大家。

阅读

  • How to take smart notes,方法及工具 - 少数派:Zettelkasten 这种做笔记方法慢慢开始要在国内流行起来,自己已经关注差不多超过半年的时间,接下来也在计划写一篇相关的博客文章。
  • Human Programming Interface 简单看来一下,利用 py 包和 Emacs 管理所有相关的个人数据,挺疯狂的。
  • 上古论坛差不多十年前的帖子, 我的千书阅读计划 - 意欲蔓延 - Hi!PDA Hi!PDA fatdragoncat 通过阅读成为一名自由职业者。帖子中介绍大量篇幅介绍如何高效阅读、锻炼、自我管理等等。在印象笔记中找到几年前自己写的笔记,现在重新整理一下相关的内容,并分享给大家。
  • AndyMatuschak - Making sense of Design Unbound vs. prior theories of collaborative design work - Twitch [[Evergreen notes]]的创始人公开展示写作的过程。通过这个视频可以发现他使用的笔记软件是 [[Bear]],看起来 Reference 和 Backlink 都是手动输入的,不过这样也符合 [[Zettelkasten]] 的原则。只是 [[Roam Research]] 这样的软件让我们变懒。
  • 莫言获得诺贝尔文学奖发表的演讲中有一个故事:到了荒滩上,我把牛羊放开,让它们自己吃草。蓝天如海,草地一望无际,周围看不到一个人影,没有人的声音,只有鸟儿在天上鸣叫。我感到很孤独,很寂寞,心里空空荡荡。有时候,我躺在草地上,望着天上懒洋洋地飘动着的白云,脑海里便浮现出许多莫名其妙的幻象。我们那地方流传着许多狐狸变成美女的故事,我幻想着能有一个狐狸变成美女与我来作伴放牛,但她始终没有出现。但有一次,一只火红色的狐狸从我面前的草丛中跳出来时,我被吓得一屁股蹲在地上。狐狸跑没了踪影,我还在那里颤抖。有时候我会蹲在牛的身旁,看着湛蓝的牛眼和牛眼中的我的倒影。有时候我会模仿着鸟儿的叫声试图与天上的鸟儿对话,有时候我会对一棵树诉说心声。但鸟儿不理我,树也不理我。许多年后,当我成为一个小说家,当年的许多幻想,都被我写进了小说。很多人夸我想象力丰富,有一些文学爱好者,希望我能告诉他们培养想象力的秘诀,对此,我只能报以苦笑。

机器学习

  • 谈谈推荐系统中的用户行为序列建模 - 知乎 一篇关于用户行为序列建模的文章,基本上常用的方法都介绍了。
    • 和上一次 “从谷歌到阿里,谈谈工业界推荐系统多目标预估的两种范式 - 知乎[[机器学习实践]][[MTL]]” 属于同一个作者
    • 目前主流推荐系统框架 [[Deep Neural Networks for YouTube Recommendations]] 中的 Matching 和 Ranking。另外可能还有规则模块。
    • pooling-based architecture 范式,用户行为是无序集合,使用 sum/max pooling 或各种 attention
      • [[Deep Neural Networks for YouTube Recommendations]] 中将用户观看过的视频序列取到 embedding 后,做一个 mean pooling 作为用户历史兴趣的表达
      • Ranking 阶段:[[DIN]] target item 和行为序列的 item 做一个 attention,得到一个 weight,然后加权求和。
      • 结合 [[Transformer]] 做 self-attention 并行的建模长序列依赖,除去用户行为序列中的噪声:[[Behavior Sequence Transformer for E-commerce Recommendation in Alibaba]]
    • sequential-modeling architecture 范式,用户行为当成一个具有时间属性的序列,使用 RNN、LSTM、GRU 等
    • 上面两种方法都是将用户行为经过 pooling/attention/rnn 的处理,聚合成用户行为序列的 embedding,再和其他的特征 concat 在一起,经过 mlp 后接 sigmod/softmax
    • 抽取聚类出用户多峰兴趣,Capsule
      • 阿里 [[MIND]] 胶囊网络
    • 辅助损失函数
      • [[DIEN]] 兴趣提取和兴趣演化,以最后一个 hidden state 做为用户兴趣的表达。兴趣提取模块,使用隐状态和下一件商品预测做二分类。不加入辅助loss,GRU 的隐变量完全受限于最终点击的 label,加入后能约束 GRU 每个隐状态表示其本身的兴趣。
    • 提升用户序列长度,可以带来可观的 auc 提升。[[MIMN]]
  • Applying Deep Learning To Airbnb Search:一篇关于从 GBDT 模型迁移到深度模型的工业实践记录 paper。对于我这种没有经历过这种技术迭代的人来说,工业级的深度模型上线比想象中的要困难。作者们针对自己遇到的比如 listing embedding 训练不充分、如何判断 feature 的重要性等问题设计实验去验证以及给出解释。严谨的精神值得吾辈学习。

其他

出于对 Roam Research 开发者的不放心,已将全部文档迁移到 Obsidian。目前还在探索新的工作流,5 月分享不可避免产生拖延。另外还在寻找一种建立 Digital Garden 的方法。


【每月分享】 202004 新的尝试

不知不觉又到更新每月分享的时间。

想写一下我为什么做这件事情?分享自己平时看到有意思的内容,现实世界认识的人,很少对我关注的内容感兴趣,所幸能借助博客超越时间和空间限制的分享。

另外一点,我希望自己能将这个系列当成一个产品去迭代,每一期都有形式和内容上的进步。这件事看起来很简单,但却需要耗费很大的精力。其实在网上看到很多人通过这种形式分享,到头来还在坚持的大概也没有多少人(比如阮一峰的科技爱好者周刊)。

Zettelkasten 以及 Roam Research

Zettlekasten 是一个德语单词,意思是卡片盒。现在主要指一种记笔记的思路。Roam Research 是目前国外很火的一个笔记软件,最大的特点是实现不同笔记之间的双向链接。好几个月前就开始尝试 Zettlekasten 的方法,4 月开始才使用 Roam Research。这里先分享一些我看过的文章。

阅读

  • 中文互联网中“讨论”的消亡 | 机核 GCORES:从产品设计角度分析国内主流网站如何限制用户讨论,互联网缩短人与人之间的距离,但我们用来互喷。
  • 互联网是人类历史的一段弯路吗?-虎嗅网:又一篇深度长文,很多观点可以背下来出去装B。
  • ByteDance程序员生存指南 - 知乎
    • 有些年轻人,在结束一整天的工作后,拖着疲惫不堪的肉体回到出租屋,这时候只想躺着啥都不想干,躺在好几周没有换过的床单上点开了抖音,不一会儿就刷到了凌晨,第二天再拖着疲惫不堪的肉体上班。到了周末也没有任何心力出去玩,只能睡到中午然后随便吃点东西看看剧。没有生活,没有朋友,一晃就单身了四五年,长此以往不仅仅是肉体在亚健康和崩溃的边缘,心理健康更是会出现问题。 孤独、焦虑、易怒等等情绪时刻伴随着一个人。
    • 每个月仅仅只有收到工资短信时可以高兴几分钟。但这笔钱并不敢轻易花出去,因为都是血汗积攒而来,付出的多自然不敢随意花出去。
  • 构建优雅的知识创造系统 [[阳志平]] [[卡片写作法]]
    • 利用电子卡片后,如何量化每天的产出?是不是可以换算成 github 更新多少字?
    • 卡片是自己看的,不需要分享:在卡片层级最大的误区是:分享不少人误将卡片、文件和项目三个层级混为一谈,喜欢在卡片层级搞分享。这样每次撰写卡片时就增加了一个选择项:这张卡片我是该分享还是该存着自己看?增加的认知操作加大了认知负荷,从简单反应时变为选择反应时。所以尽可能在卡片层级少做分享。
    • 一周、一月、一年、十年与数十年,进行自己的实践。
  • 所有人问俞军
    • [[金字塔原理]] 和 [[学会提问]]
    • 优秀的思维方式以及对人性和世界的底层理解
    • 我不是说人工智能不好,而是我自己只关心我能想明白一两年内能给创造什么用户价值的产品(或技术等),如果我想不明白这东西马上能给用户创造什么价值,我就毫无兴趣。
    • 看《搜索研究院》页首页尾的那句话,“我们若能更妥善地搜寻资料,实在已经改变世界。”
  • 前百度首席科学家吴恩达谈学习
    • 如果你学习,两天后的周一,你不会很快的就在工作中出彩,你的老板也不会知道你花了整天的时间学习,更不会夸奖你什么。你几乎找不到任何东西可以证明你在努力学习。
  • 再谈个人知识管理:革新我的笔记系统 | 吕立青的博客 好久没有看到立青写文章
    • 不同软件之间,单条笔记的迁移相当于一次对知识进行提炼的过程。
  • 关于动物之森的三则 – 苔原带
    • 以前玩家渴望在游戏里杀死巨龙,飞向人马座,击败外星侵入者。而现在我们只需要在游戏里“正常”的生活就乐呵呵了。和朋友一起野餐,请朋友到家里来玩,一个人傻乎乎做开心的事情在现实世界中已经有这么高的门槛了么?又或者只是因为在游戏里做这些事情的成本足够低,多巴胺回报足够快?

机器学习

放弃的事情:Emacs

写作软件中积累一些文章的草稿,不过由于我的兴趣变化太快,很多文章还没有完成就已经被我放弃。借这个机会,展示一些有意思的东西。

程序员圈子中编辑器战争一直是一个绕不过去的话题。自己日常的工作中会使用多种编辑器:

  • Sublime Text 简单处理文本
  • IDEA 处理 Scala Spark 相关的代码
  • PyCharm 连接 GPU 服务器处理 python 相关的代码
  • VS Code 本机上写 python、shell、cpp、sql 等脚本
  • Vim 服务器上修改文件

不论选择什么编辑器,都推荐大家去看陈斌的 一年成为Emacs高手 (像神一样使用编辑器)

去年底的时候,由于想尝试 org-mode 做任务管理(下个月再分享相关的内容),开始尝试使用 Emacs。Emacs 最大的有点是基于 Elisp 开发,软件中的每一个功能都对应一个函数,一个快捷键对应一个按键和函数的 map。修改功能和配置非常的方法。比如有人完全将 Vim 在文本操作上的功能迁移过来做成 evil 这个插件(号称所有和 Vim 中表现不同的情况都是 bug)。

Emacs 需要大量时间调教才能用起来舒心,对于初学者推荐去网上找一些成熟的配置直接使用。目前比较流行的有 Spacemacs 和 Doom emacs,这些配置维护以及使用的人很多,方便解决你遇到的各种问题。另外那些某些大佬个人分享的配置,如果你和大佬的技术栈不同,没有必要强行 clone。把它当成是一个学习素材,更好的理解 Emacs 背后的哲学。再这些基础上,成为高效的程序员的第一步,就是打造属于你自己的专门的配置文件。

使用好的编辑器是为了更快的工作。那如何更快的工作?

  1. 在加快敲击键盘的速度
  2. 减少敲击键盘的次数
  3. 减少鼠标和键盘之间的切换

关于 2,我在之前的文章中提到过一点,改变中文的输入方式(从全拼切换到小鹤双拼)。另外一点就是多使用快捷功能,比如 vim 里面的行号跳转。大部分软件的快捷键都是开发商配置好的,不过每一人主要使用的功能其实是完全不一样的。Emacs 中所有的快捷键可以查到定义的文件,从而进行修改。想象一种情况,为了减少我们按快捷键的次数以及难度。我们统计一段时间内使用 Emacs 各个功能的次数(插件 keyfreq),然后重新定义对应的快捷键。

由于我自己之前主要使用的是 vim,所以也给 vim 用户一个相对于合理的替换过程:

  1. 当成普通的 vim 使用
  2. 逐步接触 org-mode 相关的功能
  3. 使用 emacs 其他的特性

【每月分享】 202003

读书

  • 呼吸 (豆瓣):这是一本由 Byte.Coffee 主播 MilkShake 🐑 推荐的一本科幻小说集(前几天看其他东西的时候学会科幻小说的英文 sci-fi)。之前看到过,小说的价值在于作者用一个故事告诉你一个道理。最喜欢的是《商人和炼金术士之门》这篇:在传统的穿越小说无法改变未来和过去的基础上,论证穿越能更深刻理解生活。书中其他探讨的几个问题也很有价值,值得一读。

我看

文章

  • Seeking the Productive Life: Some Details of My Personal Infrastructure—Stephen Wolfram Writings:这篇超长的文章是 Stephen Wolfram (Mathematica CEO) 介绍自己几十年在家办公的经验,包括如何搭建一个适合自己的工作环境、如何管理文件和个人数据等等。不过这次疫情期间在家办公,大部分同事反应最大的问题是沟通效率降低。另外想想,或许是我们在这方面的思考不够。总之,互联网行业居家办公才是光明的未来。
  • Naval Ravikant: The Angel Philosopher:AngelList 的 CEO Naval Ravikant 的播客访谈,Naval 的公司投资 Uber Twitter 等 100 多家科技公司。主要介绍 Naval 的一些哲学,文字版在 Naval-Ravikant-TKP.pdf
    • 利用 Kindle 阅读,遇到喜欢的书,购买实体书收藏。对比书的价格,从书中学到可以改变自己人生的内容更重要。
    • 发现一个新的博客后,会在 Archived 页面挑选几篇仔细阅读。读书时也可以使用这个技巧。
  • How to Make Yourself Into a Learning Machine - Superorganizers:一位高中毕业后离开丹麦来到加拿大创业公司工作人的自我学习之路。
    • 自我定位 T 型人才。
    • 兴趣面广,主题阅读。
    • 高亮关键内容,使用 anki 记忆,相关的想法用 zettelkasten 记录。
    • zettelkasten 使用纯文本 + 脚本实现。(如果只记录英文 vim 和 emacs 真的是很强大的软件)
    • 利用谷歌检索的数量判断单词的重要性
  • The PARA Method: A Universal System for Organizing Digital Information - Forte Labs:介绍 PARA 这种数字信息整理方法。
  • The Best Books and Articles I Read in 2019 – The Blog of Author Tim Ferriss:一篇 2019 年阅读总结文章。对作者介绍的阅读流程比较感兴趣:
    • Evernote 搭配 web clipper 收集文章。 利用 *** 以及高亮在文章中做笔记,方便之后进行快速回顾。
    • 阅读 Kindle 格式的电子书,定期从亚马逊官网导出高亮笔记(国内不支持)。
    • 利用 Readwise 回顾之前提到的高亮。
    • 阅读实体书时,写简单的索引卡片,然后将卡片拍照导入 Evernote 中。

机器学习