YA

In me the tiger sniffes the rose.

  • 主页
  • 世界之内
  • 世界之外
  • 叶隙随笔
所有文章 友链 关于我

YA

In me the tiger sniffes the rose.

  • 主页
  • 世界之内
  • 世界之外
  • 叶隙随笔

【强化学习】Policy Gradient

阅读数:22954次 2018-11-03
字数统计: 3.9k字   |   阅读时长≈ 14分

2018.11.3创建

2018.12.9更新

2018.12.10更新

2018.12.11完稿

本篇介绍了Policy Gradient的结构、算法,以及优化

Q :Policy Gradient和Q-Learning的区别在于,前者直接选择动作,后者根据奖惩值选择动作。Q-Learning的方法,通俗点来说,就是哪个动作更有好处,就选择哪个。但是,PG在选择动作上的策略在本质上不也是因为这个动作更有好处吗?所以不还是需要一个类似奖惩值来供参考吗?

A:第一句话的后半句说得没错,但前半句就错了。PG和QL的区别在于,QL是基于贪婪算法的,具体地说,就是将每一个目标分成一个个小目标,只要把小目标做得好,大目标就做好了,所以QL做的是优化每一个小目标,而不管大目标怎么样;PG则倒过来,它不管小目标怎么样,他只关心大目标——只要大目标完成好了,之后就多多用完成大目标的这种方法,如果大目标完成不好,那这种方法就给它打入冷宫。

为什么是PG,而不是QL?

QL的输入是动作和状态,输出的是奖励值(评判在这种状态下做出这种动作是好是坏的分数),所以我们要把所有在该状态下可能的动作做一遍得到每个动作的奖励值,然后选择奖励值最大的(在该状态下最有利的动作)。因为这种性质,所以QL算法得到的策略不具有整体观——因为它选择的是每一个对当前状态最有利的行为。所以本质上QL也就是贪婪算法。

PG的输入是状态,输出是动作,是端对端的算法,更加直观而且更具有整体性。PG就是先不管三七二十一,随机来个100套动作试一试,其中有的一套做得好,有的做得不好,这一套动作做得好,就加分,增加下次做这套动作的可能性;那一套动作做得不好,就扣分,下次就尽可能不做这套动作了。这样下来,训练量多了,就大概知道什么状态下该做什么了。

正如Karpathy在其博文中写的:

It turns out that Q-Learning is not a great algorithm (you could say that DQN is so 2013 (okay I’m 50% joking)). In fact most people prefer to use Policy Gradients, including the authors of the original DQN paper who have shown Policy Gradients to work better than Q Learning when tuned well.

连DQN的作者都承认,PG比DQL表现得更好。😝

Pong 为例

我们以雅达利2600上的游戏Pong为例,来展示算法的思想和细节。

Pong

Pong就是一个类似于乒乓的游戏,你要控制右边的板子,把左边电脑控制的板子打过来的球打过去,对方没接到你得一分,你没接到对方就得一分。把这个游戏拆分成计算机能够懂得的模型,就是:我们看到一帧图片(比如说210*160*3的像素),通过分析图片中板子和球的位置和运动趋势,来做出板子移动的决策,这个决策只有两个:上(UP)和下(DOWN)。

Policy Network

首先我们要定义一个决策网络(Policy Network)。这个网络会收到游戏的状态,然后输出在这个状态下应该做的决策。在Pong中,我们的输入是一帧图片,输出是UP or DOWN,因为只有两个行为,所以我们可以只用一个神经元就能表示了(当然也可以用两个,如果用一个,那么输出其实是做出UP或者DOWN策略的概率)。

Policy Network

这是我们的计算代码:

1
2
3
4
h = np.dot(W1, x) # compute hidden layer neuron activations
h[h<0] = 0 # ReLU nonlinearity: threshold at zero
logp = np.dot(W2, h) # compute log probability of going up
p = 1.0 / (1.0 + np.exp(-logp)) # sigmoid function (gives probability of going up)

直观上来说,隐层(W1)提取了图片中的各个特征,比如板子在哪儿,球在哪儿,输出层(W2)则决定了UP和DOWN的概率,所以,在Policy Network中,W1和W2是最重要的参数,我们要训练的就是这两组参数。

一般来说,我们会用至少两帧图片作为输入(把两帧图加起来或者减一下,或者干脆并排放在一起),为了使神经网络能够识别出连续的动作。



疑问:Policy Network抽象上来说,实际上就是根据一帧帧的图像来反馈相对应的一个个动作,问题在于,也许我到第20个动作才得分,但是我之所以能得分,是取决于我第10个动作精妙的技巧,但是Policy Network肯定不知道啊,那么我们又谈何学习这个动作,增加这个动作的概率呢?所以问题在于,我们要知道是哪一个动作决定了我得分,并且在我知道这个得分后学习到了这个动作。

Supervised Learning

如果你之前接触过监督学习,就会发现决策网络和监督学习是非常像的,唯一一点不同就是Label,那么我们在学习Policy Gradient之前,就先谈谈监督学习(Supervised Learning)。

如下图,我们输入一张图片,得到了输出,输出的是log概率(是log概率还是原始概率,不是关键)。在监督学习下,我们知道在这种情况下应该怎么做,假设我们知道应该UP,那么我们就可以用BP算法来更新权重,来达到增加在这种情况下得出UP决策的概率。

Supervised Learning

关于监督学习的内容不再赘述,可以查相关资料。

Policy Gradient

那么如果我们没有Label怎么办呢?假如我们进行了一次计算,得到UP的概率为30%,DOWN的概率为70%,那么我们就会在这个分布中随机选择一个,假如选中的是DOWN吧,那么在这时就让板子往下移动,如果这个移动是好的,那么Label就是positive的,在backprop后就增加在这个状态下DOWN的概率。问题是,我们怎么知道这就是好的呢?比如我在第一帧选择了DOWN,然后在20帧才赢/输了游戏,我又不知道第一帧的动作对结果有什么影响。

我们可以这么做,先做一系列动作,直到游戏结束,然后再根据结果,对这一串动作中的每一个动作标记Label。比如说我第一帧DOWN,然后最后赢了,那么DOWN的Label就是positive的。

在PG中,我们的损失函数是∑iAilogp(yi|xi),其中Ai是advantage,如果赢了就是1,输了就是-1;yi是我们选取的动作;xi是输入的状态(在Pong例子中是图片(像素))。

以上以pong为例,对advantag的选择也过于草率(因为一律都是1或者0),实际上,对于不同的动作x,advange是不同的。



下面我们抛去pong这个例子,来重新描述policy gradient。

基本组件

对于一个强化学习问题,我们首先要明确,这个问题的基本对象有这些:Actor、Environment、Reward Function。

举个例子,AlphaGo下围棋的问题,Actor是AlphaGo,Environment是对手和棋盘,Reward Function基于围棋的规则。再举个栗子,我们玩电子游戏,手柄是Actor,电脑屏幕或者游戏机是Environment,Reward Function是杀死敌人或者占领据点(还是依据游戏规则)。其中Environment和Reward Function是我们无法在训练过程中改变的,只有Actor是受控的。

那么如何控制Actor?

Policy of Actor

我们对Actor的控制,需要策略,而策略我们用 π 符号表示。

π 是一个参数为 θ 的神经网络,输入是observation(矩阵);输出是数量为 n 的神经元。

observation是给神经网络提供当前状态的参数,我们可以把游戏的当前图像作为observation,这时observation实际上是一串像素,我们也可以直接把各种参数作为observation,比如说我和敌人的距离、我方英雄技能的攻击范围。总之,observation提供了当前状态的特征。

输出的每个神经元代表一个动作,神经元包含的值表示这个动作的发生概率。

image-20181209160020187

我们会选择概率最高的动作,作为策略的最终结果,然后根据反馈,计算这个动作的得分reward,第i个动作ai的reward用ri表示。

以电脑游戏为例

比如说我们玩一个电脑游戏,游戏现在的状态是s1,然后 π 选择了动作a1,游戏照做了,然后我们计算一个reward r1;游戏在执行了动作a1后的状态为s2,然后我们再选择了动作a2,执行动作后,计算了一个reward r2,这样一直下去,直到游戏结束(游戏赢了或者输了)。

截止游戏结束,我们一共选择了T个动作,计算出了T个reward,这一回合我们称之为一个episode,一个episode的整个reward是每个动作的reward之和:

R=∑Tt=1rt

我们用一个图来更直观地看看在这个过程中Actor, Environment, Reward 之间的关系。

image-20181209161133065

这整个episode是Environment、Actor之间的交互,在episode中产生了一串环境与动作的序列,叫做Trajectory

Trajectory τ=s1,a1,s2,a2,…,sT,aT

我们可以算出整个trajectory的概率pθ(τ)

pθ(τ)=p(s1)pθ(a1|s1)p(s2|s1,a1)pθ(a2|s2)…=p(s1)ΠTt=1pθ(at|st)p(st+1|st,at)

有一点很重要,虽然在episode中,θ是确定的,但是Environment是不受我们控制的,所以即使在相同的θ下,游戏状态si是不受控的,所以在不同的状态下,产生出的trajectory也会不同。所以要求在 θ 下的Reward,我们需要求R的期望Expectation

¯Rθ=∑τR(τ)pθ(τ)=Eτ−pθ[R(τ)]

我们的目的很明确很简单,就是调整θ把¯Rθ最大化,下面就是我们常用的梯度下降(Gradient Descent)

θ←θ+η∇¯Rθ

其中

∇¯Rθ=∑τR(τ)∇pθ(τ)=Eτ−pθ[R(τ)∇logpθ(τ)]

≈1N∑Nn=1R(τn)∇logpθ(τn)

=1N∑Nn=1∑Tnt=1R(τn)∇logpθ(ant|snt)

整个过程如图

image-20181209164225978

在N个episode中,我们要记录每一个τn中的序列对(sni,ani),记录τn的rewardR(τn),然后对θ进行更新。

Important Tips

在Policy Gradient中,我们可以做一些优化,这些优化包括:增加基线、分配合适奖励值

Tip1: Add a Baseline

增加基线,很好理解,我们看下面这个情况:

在Policy Gradient中,我们常常会发现在实际情况下,每一个动作的奖励值都是正的,比如说我们训练Agent玩FIFA,因为Agent进的球最少是0,其奖励值不可能是一个负数。

但是实际上,即使都是正的,也不会影响到我们训练的结果,因为奖励值有多有少,所以在回馈的时候,对参数的调整也有大有小。奖励值大的,参数就往这一个动作序列靠近得大;奖励值小的,参数就往这一个动作序列靠近得小。因为输出的动作是根据动作的概率来判定的,而所有的动作概率之和为1,一个动作概率大了,其他动作的概率就会变小,所以参数倾向于对奖励值大的动作靠近,实际上就是在远离奖励值较小的动作。

但问题是,注意我们之前推导的梯度下降公式:

∇¯Rθ≈1N∑Nn=1∑Tnt=1R(τn)∇logpθ(ant|snt)

我们是在对动作序列 τi 进行采样,采样的结果是,我们不可能把所有的可能序列都采集到。所以会出现这种情况:有一个动作序列τj的奖励值是很高的,但是我们没有采样到,我们只采样到了不是很高的动作序列。那么我们就只能在这一群矮子中挑高的,把参数调整得靠近其中最高的动作序列,提高一个序列几率代表着减少其他动作序列的几率,所以那个原本奖励值最高的τj,就被埋没了。气不气?

所以我们提出,加一条基线,这样矮子就不会因为运气好,没和高子排在一起而被当成高子处理了。加一条基线,在公式中表示为奖励值多减了一个b:

∇¯Rθ≈1N∑Nn=1∑Tnt=1(R(τn)−b)∇logpθ(ant|snt)

其中这个b,我们一般取所有序列总奖励值的期望:

b≈E[R(τ)]

Tip2: Assign Suitable Credit

我们看下面这个例子:

我有两个episode:

image-20181210235905610

根据公式

∇¯Rθ≈1N∑Nn=1∑Tnt=1(R(τn)−b)∇logpθ(ant|snt)

我们要对每一个Action都乘上相同的R,在episode1中是3,episode2中,是7。

image-20181211000035207

很显然,这是很不公平的。因为在最终结果好的episode里,指不准有一个action是不好的。比如说上图的episode1,它的action2导致了后来action3的得分为负。但是我们同样把它看成了一个好的动作,并且增大了这个动作的几率。

同样的,即使在结果不好的episode里,也可能有好的action。比如说上图的episode2,它的action2虽然导致了后来action3的得分也为负,但是负的程度变小了,说明action2还是有益的。

那么我们可以把代替原来的公式:

∇¯Rθ≈1N∑Nn=1∑Tnt=1(R(τn)−b)∇logpθ(ant|snt)

代替为以下公式:

∇¯Rθ≈1N∑Nn=1∑Tnt=1(∑Tnt′=trnt′−b)∇logpθ(ant|snt)

其中,我们把

R(τn)

替换成了

∑Tnt′=trnt′

什么意思呢?我们由原来的,对动作ai都乘上一个相同的R,变成乘上一个以动作ai为起点的动作序列的奖励值。直观上理解,就是对每个动作的调节,不再是看整个动作序列的结果了,而是看这个动作在整个动作序列中发挥的作用。

理解了上面的意思,我们可以进一步优化,将

∑Tnt′=trnt′

改进为

∑Tnt′=tγt′−trnt′

其中0<γ<1

这个也很好理解,随着动作ai和aj之前隔的时间越来越久,两个动作的相关性就越来越小。

Reference:

Deep Reinforcement Learning: Pong from Pixels

http://karpathy.github.io/2016/05/31/rl/

Reinforcement learning An introduction

Policy gradient methods for reinforcement learning with function approximation.

“Deep Reinforcement Learning, 2018” by 李宏毅

赏

谢谢你请我吃糖果

支付宝
微信
  • 本文作者: YA
  • 本文链接: http://www.yuuuuang.com/2018/11/03/Policy-Gradient/
  • 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
  • 世界之内

扫一扫,分享到微信

计算机组成与体系结构
怀疑是否有价值——怀疑论
  1. 1. 为什么是PG,而不是QL?
  2. 2. Pong 为例
  3. 3. Policy Network
  4. 4. Supervised Learning
  5. 5. Policy Gradient
    1. 5.1. 基本组件
    2. 5.2. Policy of Actor
    3. 5.3. 以电脑游戏为例
    4. 5.4. Important Tips
      1. 5.4.1. Tip1: Add a Baseline
      2. 5.4.2. Tip2: Assign Suitable Credit
  6. 6. Reference:
© 2018-2025 YA
GitHub:hexo-theme-yilia-plus by Litten
本站总访问量26553次 | 本站访客数21574人
  • 所有文章
  • 友链
  • 关于我

tag:

  • 随笔
  • 年终总结
  • 世界之内
  • 世界之外
  • 叶隙集
  • 机器学习
  • 叶隙随笔
  • 图像处理
  • 数据挖掘

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 【叶隙集】42 实习

    2025-05-31

    #随笔#叶隙集

  • 2024年终总结

    2025-04-08

    #随笔#年终总结

  • 【叶隙集】41 盘旋的白文鸟

    2025-01-12

    #随笔#叶隙集

  • 大语言模型正在伤害人机交互领域的研究

    2025-01-05

    #随笔#世界之内

  • 【叶隙集】40 台湾旅行

    2024-12-22

    #随笔#叶隙集

  • 【叶隙集】39 搬家了

    2024-09-05

    #随笔#叶隙集

  • 2023年终总结

    2024-06-27

    #随笔#年终总结

  • 【叶隙集】38 参加学术会议

    2024-05-22

    #随笔#叶隙集

  • Notes of 3D Gaussian Splatting

    2024-03-19

    #世界之内

  • 【叶隙集】37 音乐会和朋友

    2023-12-04

    #随笔#叶隙集

  • 【叶隙集】36 QE和音乐会

    2023-11-02

    #随笔#叶隙集

  • 【叶隙集】35 新室友和更积极的生活

    2023-09-11

    #随笔#叶隙随笔

  • 读书笔记|《规训与惩罚》

    2023-08-27

    #随笔#世界之外

  • 【叶隙集】34 无法参加学术会议

    2023-06-28

    #随笔#叶隙集

  • 【叶隙集】33 回国后与朋友和家人们的聚会

    2023-06-11

    #随笔#叶隙集

  • 视频压缩技术概述

    2023-04-28

    #世界之内

  • 2022年终总结

    2023-03-31

    #随笔#年终总结

  • 【叶隙集】32 平和的心态

    2022-12-27

    #随笔#叶隙集

  • 【叶隙集】31 双相情绪障碍症

    2022-12-17

    #随笔#叶隙集

  • 【学习笔记】CS5229 Advanced Computer Network

    2022-12-17

    #世界之内

  • 【叶隙集】30 下半学期太忙了!

    2022-11-25

    #随笔#叶隙集

  • 【叶隙集】29 当助教的半个学期

    2022-10-07

    #随笔#叶隙集

  • 【叶隙集】28 忙碌的第一个月

    2022-08-31

    #随笔#叶隙集

  • 【叶隙集】27 老师的职责

    2022-07-31

    #随笔#叶隙集

  • 【叶隙集】26 新加坡太难找工作了

    2022-07-23

    #随笔#叶隙集

  • 【叶隙集】25 生产工具、学习生活和阅读笔记

    2022-07-15

    #随笔#叶隙集

  • 【叶隙集】24 学习、科研、旅行和爱与关怀

    2022-06-24

    #随笔

  • 【叶隙集】23 学习与研究

    2022-04-26

    #随笔#叶隙集

  • 【学习笔记】人工智能规划与决策

    2022-04-26

    #世界之内

  • 博士申请的总结

    2022-03-31

    #随笔

  • 【叶隙集】22 新的体验和宗教

    2022-03-07

    #随笔#叶隙集

  • 2021年终总结

    2022-01-08

    #随笔#年终总结

  • 【叶隙集】21 新朋友和学术报告

    2021-10-31

    #随笔#叶隙集

  • 【叶隙集】20 音乐会与教训

    2021-10-19

    #随笔#叶隙集

  • 【叶隙集】19 六周年纪念日

    2021-10-03

    #随笔#叶隙集

  • 【叶隙集】18 疫情与疫苗

    2021-09-24

    #随笔#叶隙集

  • 摘录|联合国2021年气候问题总结报告的摘要

    2021-09-19

    #世界之外

  • 【叶隙集】17 音乐会和读书

    2021-09-08

    #随笔#叶隙集

  • 【叶隙集】16 喜欢上了游泳

    2021-09-01

    #随笔#叶隙集

  • 【叶隙集】15 课前的夜曲

    2021-08-24

    #随笔#叶隙集

  • 【叶隙集】14 平稳的学习生活

    2021-08-16

    #随笔#叶隙集

  • 【叶隙集】13 生活与朋友

    2021-07-15

    #随笔#叶隙集

  • 【叶隙集】12 毕业

    2021-06-30

    #随笔#叶隙集

  • 【叶隙集】11 毕业前的生活

    2021-06-23

    #随笔#叶隙集

  • 读书笔记|《国境以南,太阳以西》读后感

    2021-06-17

    #随笔

  • 【叶隙集】10 青甘环线旅行

    2021-06-13

    #随笔#叶隙集

  • 半监督学习|论文粗读

    2021-06-07

    #机器学习

  • 【叶隙集】9 纯粹地生活

    2021-06-06

    #随笔#叶隙集

  • 【叶隙集】8 生活的界限

    2021-05-30

    #随笔#叶隙集

  • 【叶隙集】7 隔离结束

    2021-05-21

    #随笔#叶隙集

  • 【叶隙集】6 隔离生活

    2021-05-14

    #随笔#叶隙集

  • 【叶隙集】5 新的阶段

    2021-05-08

    #随笔#叶隙集

  • 【叶隙集】4 团队管理

    2021-04-30

    #随笔#叶隙集

  • 【叶隙集】3 过低的自我评价

    2021-04-23

    #随笔#叶隙集

  • 【叶隙集】2 方向与交往

    2021-04-16

    #随笔#叶隙集

  • 【叶隙集】1 原爆点-续

    2021-04-08

    #随笔#叶隙集

  • 随笔|目的与纯粹

    2021-03-28

    #随笔

  • 随笔|白文鸟

    2021-01-20

    #随笔

  • 写在一百以后——2020年终总结

    2021-01-01

    #随笔#年终总结

  • 随笔|选择

    2020-12-25

    #随笔

  • 读书笔记|《人生的意义》总结、摘录

    2020-11-25

    #世界之外

  • 书评|Normal People, Normal Love

    2020-10-07

    #随笔

  • Decision Making|人工智能、机器学习与强化学习的概述与比较

    2020-10-03

    #世界之内

  • 随笔|疫情后的总结

    2020-09-10

    #随笔

  • 学习笔记@PRML|1 Introduction

    2020-07-31

    #世界之内

  • 随笔|面试后的回顾与思考

    2020-07-26

    #随笔

  • 数据挖掘|数据挖掘概论笔记

    2020-06-24

    #世界之内#数据挖掘

  • 续写|美女或野兽

    2020-06-18

    #随笔

  • 随笔|无常

    2020-05-31

    #随笔

  • 现象学|胡塞尔《小观念》笔记

    2020-05-13

    #世界之外

  • 随笔|我的局限性

    2020-05-13

    #随笔

  • 随笔|胡乱的记录

    2020-04-09

    #随笔

  • 随笔|疫情

    2020-02-16

    #随笔

  • 随笔|怅惘地忖度

    2020-01-29

    #随笔

  • 2019年终总结

    2019-12-08

    #随笔#年终总结

  • 机器学习|Flow-based Model学习笔记

    2019-11-06

    #世界之内#机器学习

  • 【Introduction to TensorFlow】03 卷积神经网络与复杂数据集

    2019-10-31

    #世界之内#机器学习

  • 【Introduction to TensorFlow】02 初识机器学习与计算机视觉

    2019-10-29

    #世界之内#机器学习

  • 【Introduction to TensorFlow】01 TF 快速入门

    2019-10-29

    #世界之内#机器学习

  • 【Introduction to TensorFlow】00 课程概览

    2019-10-29

    #世界之内#机器学习

  • 随笔|呓语

    2019-10-27

    #随笔

  • 周记|面纱 久别重逢

    2019-09-21

    #随笔

  • 学习笔记|拟合优化

    2019-09-15

    #世界之内

  • 周记|爱人 体验 芝诺

    2019-09-07

    #随笔

  • 摘录|造成不幸福的原因之六:嫉妒

    2019-09-06

    #世界之外

  • 随笔|虚无 纵欲

    2019-08-22

    #随笔

  • 周记|尘埃落定

    2019-06-29

    #随笔

  • 周记|本能 愉悦 基因

    2019-06-12

    #随笔

  • 周记|空荡荡

    2019-06-02

    #随笔

  • 四月裂帛——读《女儿红》

    2019-05-30

    #随笔#世界之外

  • 机器学习|主成分分析

    2019-05-10

    #世界之内#机器学习

  • 《好运设计》史铁生

    2019-05-09

    #世界之外

  • 机器学习|感知机与支持向量机

    2019-04-27

    #世界之内#机器学习

  • 周记|记忆 概念 庸俗

    2019-04-27

    #随笔

  • 机器学习|模型评估与选择

    2019-04-17

    #世界之内#机器学习

  • 机器推理|SLD Resolution

    2019-04-06

    #世界之内

  • 第五代计算机

    2019-03-31

    #世界之内

  • 学习笔记|Volume Rendering

    2019-03-31

    #世界之内#图像处理

  • 周记|三月驼云

    2019-03-28

    #随笔

  • 生成对抗网络与强化学习:文本生成的方法

    2019-03-11

    #世界之内

  • 《桨声灯影里的秦淮河》俞平伯

    2019-03-09

    #世界之外

  • 周记|雨

    2019-03-09

    #随笔

  • 《春之积雪》简媜

    2019-03-01

    #世界之外

  • 周记|逃离

    2019-02-15

    #随笔

  • 存在主义是一种人道主义

    2019-02-11

    #世界之外

  • 学习笔记|比较文学

    2019-02-09

    #世界之外

  • 尼采的美学

    2019-02-01

    #世界之外

  • 哲学涉猎

    2019-02-01

    #世界之外

  • 读书笔记|光的诗人——《如何看懂印象派》

    2019-01-28

    #随笔#世界之外

  • 叔本华的生命意志哲学

    2019-01-25

    #世界之外

  • 再也不要把他们弄丢了

    2019-01-21

    #随笔

  • 2018年终总结

    2018-12-31

    #随笔#年终总结

  • 人类的心理行为模式

    2018-12-25

    #世界之外

  • 周记|神经症人格

    2018-12-22

    #随笔

  • 【周记】旋转

    2018-11-30

    #随笔

  • 七牛云Bucket失效

    2018-11-21

    #世界之内

  • 周记|从前的日色慢

    2018-11-21

    #随笔

  • 【数理逻辑】Incompleteness Theorem

    2018-11-10

    #世界之外

  • 专业随想

    2018-11-05

    #随笔

  • 生活

    2018-11-04

    #世界之外

  • 计算机组成与体系结构

    2018-11-04

    #世界之内

  • 【强化学习】Policy Gradient

    2018-11-03

    #世界之内

  • 怀疑是否有价值——怀疑论

    2018-10-30

    #世界之外

  • 周记|Every hero and coward

    2018-10-20

    #随笔

  • Web in Java

    2018-10-11

    #世界之内

  • 周记|十月女泽

    2018-10-02

    #随笔

  • 托福备考

    2018-09-28

    #世界之内

  • 周记|裸体之舞

    2018-09-24

    #随笔

  • 周记|中秋幸福

    2018-09-18

    #随笔

  • History of artificial intelligence

    2018-09-09

    #世界之外

  • 周记|我那无趣的灵魂

    2018-09-09

    #随笔

  • Softmax Regression

    2018-09-08

    #世界之内

  • 周记|Rational

    2018-09-02

    #随笔

  • 贰 《SICP》笔记:模块化、对象和状态

    2018-08-05

    #世界之内

  • 周记|困倦

    2018-08-04

    #随笔

  • 壹 《SICP》笔记:构造数据抽象

    2018-07-31

    #世界之内

  • 周记|原爆点

    2018-07-31

    #随笔

  • 零 《SICP》笔记:构造过程抽象

    2018-07-23

    #世界之内

  • Norms or maybe more

    2018-07-09

    #世界之内

  • 事已至此

    2018-06-24

    #随笔

  • 【增强学习】AirSim搭建

    2018-06-02

    #世界之内

  • 【机器学习】BP算法

    2018-05-26

    #世界之内

  • 【康德】宏大的哲学语境

    2018-05-26

    #世界之外

  • 【康德】康德的研究领域是什么

    2018-05-11

    #世界之外

  • 【高等数学】什么是梯度(期中考试复习思考)

    2018-04-29

    #世界之内

  • 《自控力》读书笔记

    2018-04-21

    #随笔

  • 【线性代数】The Essence of Linear Algebra

    2018-04-21

    #世界之内

  • 【数据结构与算法】临时抱佛脚

    2018-03-10

    #世界之内

  • 科技革命与人类社会——《论工业社会及其未来》读后感

    2018-03-08

    #随笔

  • 《论工业社会及其未来》原文摘录

    2018-02-23

    #世界之外

  • 《如何高效学习》读后总结

    2018-02-19

    #随笔

  • 《精进》chapter-2读后总结

    2018-02-13

    #随笔

  • A Review of Brian - Inspired Computer Vision

    2018-02-11

    #世界之内

  • 最近有个女生,说对我很失望

    2017-12-07

    #随笔

  • 病入膏肓

    2017-01-29

    #随笔

  • 白文鸟

    2016-10-29

    #随笔

  • 《不能承受的生命之轻》读后感

    2016-07-13

    #随笔

  • 都五月份了

    2016-04-29

    #随笔

  • 《四月裂帛》简媜

    2014-09-29

    #世界之外

  • Fernweh
  • Wuuuudle (已失效)
  • Nemo
  • Elmo (yyh) (已失效)
  • highestpeak (已失效)
  • Kazoo Blog
努力做一名谦逊、独立、乐于思考的学生