财新传媒
位置:博客 > 王川 > 深度学习有多深?(二十四)乔布斯和Deepmind的突围

深度学习有多深?(二十四)乔布斯和Deepmind的突围

(1)

游戏公司 Atari 在1977年推出的 Breakout (突围)电脑游戏,主要开发者是苹果公司的创始人之一, Steve Wozniak. 乔布斯的角色是 Atari 和 Wozniak 中间的掮客.

Atari 起先告诉乔布斯,游戏如果四天内开发出来,将支付 700 美元的报酬。乔布斯许诺和 Wozniak 平分这笔钱。但Wozniak 不知道的是, Atari 还承诺如果此游戏在逻辑芯片的需求上低于某个指标,将给予更多的奖励.

最终Wozniak 连续四天挑灯夜战只拿到了 350 美元 的报酬, 而乔布斯则独吞了从  Atari 那里获得的五千美元的额外奖励。等Wozniak 知道真相时,已经是1984年,苹果上市四年了.

"突围" 游戏的规则很简单:显示屏上八层砖头,每两层是同一种颜色, 总共分黄,绿,桔,红四色。玩家用板子击球,球碰倒砖头后就得分。不同颜色的砖头得分各不相同。如果来球没有被接到,就丢掉一个回合。球的速度随着击打次数的增加也不断增加。最终目的是在三个回合内获得最高分.

有兴趣的读者建议亲自去玩一下这个游戏。要想成为高手,着实不易。

(2)

2013年12月,总部在伦敦的 Deepmind 公司的团队发表论文:Playing Atari with Deep Reinforcement Learning ("使用深度增强学习玩Atari 电脑游戏"), 详细地解释了他们使用改进的神经网络算法在包括 Atari Breakout 在内的电脑游戏的成果.

Deepmind 算法设计时,把电脑游戏的最新的四帧屏幕,作为神经网络的输入。每帧屏幕用 84 x 84 的像素表征.

除了获得的分数以外,没有任何人为输入的游戏规则的信息。全靠长期培训,让机器自己悟出,什么是最佳的策略.

这颇有点像某哲人曾经对培养华尔街交易员的评论, "我们把他们扔到有很多鲨鱼的水箱里,能自己野蛮生长的,就留下来 ".

神经网络有三个隐层,其中有两个卷积层 (convolution layer), 用于过滤和提取像素中的局部特征。第三层是一个全连接层 (Fully connected layer), 针对游戏中每一个瞬间玩家可能采取的行动选择 (大约有 4-18个行动选择),输出相应的价值函数的估算。 

不同行动选择的回报值,就是所谓的 Q-value. 神经网络的培训,就是要拟合 Q-value,用于计算如何选择利益最大化的行动. 这个用三层神经网络学习打游戏的模型,就叫 Deep-Q-Network (深度-Q-网络, 简称 DQN).

DQN 的参数初始值,完全随机化,就像一个新入行,两眼一抹黑的小白。但开始不懂没关系,最重要的,是自我学习新技能的速度.

(3)

在增强学习和运筹学里一个经典问题是选择”勘探还是开发“ (exploration or exploitation) . 换言之,是仅仅根据现有的信息把利益最大化,还是花一部分时间去探索外面的世界是否更精彩.

解决这个问题的通行做法,是所谓的 epsilon-greedy strategy, 这里翻译为 "有时不贪婪的策略".   这个策略,就是大部分时间贪婪 (根据现有信息寻求利益最大化),但是还有 epsilon 的几率去做一些完全随机的探索 (有时不贪婪).

埋头读书工作,固步自封的人,epsilon = 0, 这是传统的贪婪策略.

天天到处乱晃,东一榔头西一棒子的人, epsilon = 1.

这两个极端都不好.

有时不贪婪,做一些短期的牺牲,是为了长期的贪婪和利益最大化。如何把握 epsilon 这个度,是个挑战.

DQN 的 epsilon 的初始值为 1,以随机探索为主, 经过一百万帧的培训后慢慢降到 0.1 不变, 也就是始终保持 10%的时间随机探索.

对于一个 60 赫兹的显示屏而言,一秒钟是 60帧,一百万帧就相当于约四个多小时的游戏时间.

DQN 在拟合神经网络参数的计算时,使用了上篇文章提到的 “经历回放”的技巧,用于存储经历的空间达到一百万帧.

经过长期培训后的 DQN, 打电脑游戏时的表现,让程序设计者也大吃一惊.

(未完待续)

推荐 3