(1)
在增强学习领域,经历 (experience) 是指四个参数的集合, (x, a, y, r) 表示在状态 x, 做了 a, 进入了新的状态 y, 获得了回报 r. 教训 (lesson) 则是指一个时间序列的经历的集合.
经历回放 (experience replay) 的概念由 Long Ji Lin 在 1993年的博士论文里第一次提出.
"经历回放" 的第一个好处是更有效率。经验教训,尤其是有重大损失的经验教训,是昂贵的,如果把它存储到记忆里,可以日后反复调用学习,那么学习效率就会大大提高, 不用吃二遍苦,受二茬罪.
这就是俗话说的, “吃一堑,长一智”.
这实际上和我以前文章里,介绍过的神经网络的“长短期记忆” (Long Short-term memory) 有异曲同工之妙。(可直接点击下面链接)
王川: 深度学习有多深? 学了究竟有几分? (十一)
“经历回放”在增强学习的计算中是这样实现的:
在环境中学习积累的数据 (x, a, y, r) 被不断存储到一个数据集里.
每一次对神经网络的参数进行更新时,就从数据集里随机地调取一小批”经历“,帮助培训神经网络.
"经历回放"样本的随机性,彻底解决了上一篇文章里讲述的导致价值函数发散的两个原因:
第一, 每次用于培训的一小批“经历”不再是连续相关的数据。这就好比一个小白投资者可以同时见证学习牛市,熊市,猪市和猴市, 跳出了他生活时代的历史局限.
第二, 每次用于培训的“经历”不再受价值函数波动对环境的影响,这就好比股票投资者在股市时髦的时候,仍然有机会全面地学习房市,债市,外汇, 期权, 期货,风险投资等其它领域的知识,跳出了他工作环境的局限.
(2)
实际操作上,不管是人还是机器, "经历"的数据集的大小是有限制的。如果积累的数据超过这个限制,不得不将老的数据扔掉,给新的数据腾出空间.
有谚语道,“what we learned from experience is that we never learn from experience", (根据经验,我们从来不从经验中吸取教训) 又云,”好了伤疤忘了疼“. 说的就是这个事.
不是所有的经历的记忆,都有同样的价值。算法上如何管理有限的记忆,给有些经历更多的优先权,是一个重要的问题.
当年曹操俘获吕布,吕布表达了投靠曹操为其卖命之意。曹操略有动心,回头问刘备怎么样.
刘备答到:“公不见丁建阳、董卓之事乎?”曹操恍然大悟,早已淡薄的,吕布杀害自己前两个主子的记忆,瞬间回放,于是果断把吕布咔擦了.
一个改进的算法,所谓“优先化经历回放", (Prioritized Experience Replay) , 是把各类经历按照所谓的时间误差 (Temporal Difference Error) 来排序,误差绝对值越大的经历,日后被重新调用的几率也就更大.
时间误差的概念,其本质就是实际的回报和预期的回报的差别.
这个算法直觉上也很好理解,生活中越是那些出乎意料的大惊大喜的经历,越是值得我们记忆和学习.
(3)
人类还有一个重大的内在认知弱点,机器是没有的.
人脑总是会在纷杂的现象和噪音中寻找规律,但是大千世界,总会有些个别现象和看似最确定的规律相悖。如果大脑总是因为一些例外,而去质疑过去总结的规律,以人脑的计算能力,很多日常的小事都很难决断。
这就是人们为什么会有确认偏见 (confirmation bias) 的原因,有了成见,完全忽略相反的证据,只看支持自己结论的证据。 年纪越大, 越是以前有过成功经验的人,越容易固执, 越难克服自己的确认偏见.
笔者以前听长辈讲过一个故事, 多年前家乡一个有着强烈确认偏见的糙汉宣称,“老子嗯是不信,电也会咬人! ". 他于是亲自摸了一下.
然后就没有然后了.
巴菲特老师曾说,“当人们告诉我,他们从经验中学到东西了,我告诉他们,秘诀是从别人的经验中学习". (When people tell me they've learned from experience, I tell them the trick is to learn from other people's experience).
机器,在计算能力和能量供给方面的限制比人脑小得多,程序设计时可以完全没有确认偏见. 它冷静地吸收学习自己的经验和别人的经验, 理性地更新自己的生存策略. 它轻松地超越其它顽固不化的竞争者, 也就是必然的了.
增强学习的真正突破,就要到来了.
(未完待续)
0
推荐