【读书记 258】柏拉图 《会饮篇》

《会饮篇》记录阿伽通获得酒神节悲剧比赛第一名后,苏格拉底等人在庆祝宴会中「赞美爱神」的比赛过程。实际上记录与会人七种不同的爱情观。最后,酒神狄奥尼索斯决定出当晚的获胜者。


2020 挑战

2020 年最后一天下午,坐在工位上想着「今年有什么遗憾?」想到最大遗憾:这个世界变不回原来的样子。超级黑天鹅「Covid 2019」或多或少改变我们生活,新时代就这样拉开大幕。在这个背景下,承受来自各个方面的压力,各种「挑战」也随之而来。在这一篇总结中,我会通过关键字回顾自己过去一年。

一 工作

没有太多变化,还是选择留在滴滴。年初获得机会参与「晋升」答辩,在老板和同事的帮助下,异常艰难地升到下一个级别。两点感悟:需要做有价值的事情以及有把做过的事情说清楚的能力。之后参与内部一个比较大的探索项目,费了很大力气上线后,12 月底开始和同事一起写相关的论文,希望能中 KDD 2021。

晋升之后,日常工作中会接触到更多的人,如何与其他人进行有效的沟通成为自己新的挑战。后来也有机会指导实习生,不过没有多久就离开了。简单总结自己变化:做人家分配的事情,到自己思考如何做事情,再到分配事情给其他人做。这些变化中,我经历长时间不适应的感受。大学参与编程比赛培养的是靠外部刺激和目标驱动,工作中需要的是你不断拓展边界,打破旧的认知和规则。

二 技术能力

分成两个部分:尝试一些工程的开发,改线上代码差不多和呼吸一样自然。但是觉得自己总体上来说写的东西还是偏向简单,没有太多的设计和思考在里面。下半年很多时候是在修自己上半年的 bug……算法学习差不多是跟随业务需求进行,看得大部分还是 CTR 相关内容。另外也在 b站看了一半统计机器学习的内容。做的业务不像 CTR、NLP 这样有明确的界限,所以也没有机会去深入一个方向去实践,大部分时候浅尝辄止。

三 程序设计

不知道告别多久之后,下半年尝试想把这个东西捡起来。说回来,我之间问一个进过 world final 的候选人,工作中有没有用过相关的算法,他也是摇头。按自己目前的水平,每周日上午写 LeetCode 周赛是很奇妙的体验。每次都是一场孤独的挑战,只有调整好自己的思维方式,才能把自己从苦海中解脱出来。做这件事情的意义大概是山就在那里。多少年之后,我也体会到当年没有拼尽全力的遗憾。

9 月份,在周神的组织下,我们组成一个队伍参加 Leetcode 举办的秋季编程大赛。刚开始我们都是信心满满地,比赛开始之后就是无尽的折磨,最后就是以三题结束比赛。原来他们这么久不训练也不会写题目……希望等自己学校举办区域赛的时候还能打星参与一次。

四 生活

11 月份遇到房东卖房,从原来住的房子里面搬出来,跑到回龙观和同事一起合租。最大变化是通勤时间的变长,挤过几天地铁后,立马决定打拼车上班,另外忍受几次下班后打车的痛苦,也开始 20:30 自费打车。所以多了很多坐车的时光,一般早上都会带一个阅读器去看书。有一次堵在后厂村路上,看着《禅与摩托车维修艺术》,恨自己没有摩托车。晚上回来的时候,大概率是听播客。似乎比之前把节省下来的时间拿去冲浪好很一些。

五 知识管理

投入在 Input 上的时间越多,知识管理越差。

这个差不多是这几年一直在思考的话题(时间管理方法,我看清 GTD 本质之后,就不太纠结)。去年年末开始关注 Zettelkasten,当时还是在借助 sublime_zk 进行折腾。2 月份的时候,了解到一个工具 Roam Research,开始慢慢把自己的笔记迁移过去。几个月之后,Zettelkasten 和双向链接笔记在国内火了起来。给我最大的两点改变是:

  1. 区分自己写的笔记和收藏的文章(印象笔记就是因为剪藏太多变成垃圾堆)。
  2. 思考不同内容之间的关系。

很遗憾,这一年很大一部分精力停留在把之前散落在不同软件中的笔记汇聚到 Roam 中。新的一年尝试把更多的内容分享出来。

另外一方面,真正记住内容还需要不断回忆(给你选择记忆的机会),比较知名的软件就是 anki。有一段时间经常制作卡片,但是没能融入自己的系统,也没有把这个习惯坚持下来。

六 分享

2020 博客访问量统计

从访问数据上来看,比起去年博客的流量快增加超过 5 倍。统计数据中,流量大概是 8 月中旬开始的,最大的原因是完成百度和 Google 对博客的收录。大部分流量来自于一篇文章(已被自己手动删除)。不过得到启示,某一些小众的关键字,如果能做到百度的前几名,获得的流量还是很可观的。

今年没有写多少正经的东西,最大的亮点是差不多用8个月的时间尝试摸索分享每个月阅读相关的总结「Never Reading」。这些文章内容来自 Roam Reasearch 阅读笔记。最终被自己停掉的原因是,形式上并不优美,可能阅读时,都只是一些没有上下文的关键词或短句。最好的形式还是自己将阅读的内容按主题写成文章进行分享。

放弃写每月的阅读总结后,自己觉得笔记-博客文章中应该还有一个中介介质。用现在时髦的话来说,是数字花园。苦于目前还没有发现如何快速将部分 Roam 笔记公开展示出来,9 月份的时候模仿 Meme of LinOnetwo — 林一二的模因和想法也搭建一个 算法花园・Xanadu — 吾辈心中亦有惑,坐!,想着分享一些读书和读论文的笔记。大概过一个多月,差不多就放弃这个网站……目前还是等待更高效导出 Roam 笔记制作站点的方案出现。

最后,也开始在 Twitter Ryen Xiang(@xiang578)进行分享。很遗憾,之前和人交流太少,写的东西除了错别字多以外,没有太强的逻辑性,可能很难理解………这一些都是在新的一年中需要克服的。

七 阅读

阅读的挑战是:为了什么而读?思考如何去做阅读笔记?主力阅读软件是微信读书,不仅仅是无限会员全场畅读,更重要的是导出的笔记格式都比 kindle 方便整理。全年读过 36 本书,平均下来一个月 3 本书,和年初计划每周一本书,还是有很大的差距。推荐几本 5 星的图书:

2021 年的阅读目标还是每周一本书,然后每月挑一本书写出读书笔记在博客中发表。

八 观影

今年在豆瓣上标记看过电影只有 40 个条目,仅是去年的 2/3。可能现在把更多空闲时间花费在看 B 站各种 UP 主的视频中,仔细想想还是需要去欣赏艺术。

九 游戏

动物森友会:上半年最火的游戏。曾经的QQ农场爱好者,不可避免在同事的带领下,成为一名光荣的岛主。100 多个小时候之后,就没有重新上过岛……
Ingress:一款手机端的 LBS 游戏,你扮演一名特工,完成游戏中的任务探索现实世界。自己最初希望通过这款游戏多出去走走。11 月和 12 月,为了做任务,多次出去暴走 20+ 公里!不过,已经变成匆匆寻找关键打卡地点,很多时候错过旁边的风景。
Celeste:IGN 满分作品,号称是治疗抑郁的。横版平台跳跃游戏,和马里奥相比多了一个冲刺键。最大优点是死亡之后复活特别快,第一关还没有通过,我差不多就死了 1k 次。

十 消费指北

克制自己的消费,不单独写一篇文章。

ErgoDox EZ:红轴,分体人体工程学键盘,反正看到的同事都觉得很酷。
Inkpad X:为了用微信读书,买的10寸安卓平板。分辨率只有 200 ppi,字体调大一些没有太大影响。不过没有实体翻页键还是挺难受的。微信阅读也没有怎么对这个设备优化。最近小米又出一个 pro 阅读器,也可以考虑。
DEVONthink pro:增强型文件管理器,主要用来替代印象笔记。虽然贵,但是好用。
Offscreen: 记录手机屏幕时间、打开次数等,不断提醒你今天沉迷手机多久。
产品沉思录:邮件组,有关互联网、科技和人文,提供不错的信息来源。可以先从精选集判断是否值得入手。

尾声

在迈入 2021 之际,给自己留下一些 New Year Challenge:

  1. 认识你自己
  2. 变得勇敢
  3. 成为生产者

于北京回龙观

2017 迷茫 >> 2018 探索 >> 2019 起步


深入浅出 BERT 源代码之 BertModel 类

国庆节前突然对如何计算 BERT 的参数量感兴趣,不过一直看不明白网上的计算过程,索性下载 BERT 源代码阅读一番。这篇文章记录阅读 BertModel 类(核心代码实现)时写的一些笔记,反正我也是纸上谈兵,所以不需要太关注数据处理和 Finetune 相关部分,最后附上计算 BERT 参数量的过程仅供参考。


李宏毅强化学习课程笔记 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」,我们下个月再见。