专栏中《零神经网络实战》系列持续更新介绍神经元怎么工作,最后使用python从0到1不调用任何依赖神经网络框架(不使用tensorflow等框架)来实现神经网络,梯度下降、反向传播、卷积神经网络CNN、循环神经网络RNN。从0基础角度进行神经网络实战。本篇为第三篇。
作者:司南牧
Alpha Zero就是利用强化学习打败柯洁。可以说强化学习是我觉得目前最可以叫做智能的算法。因为不需要数据就能自己总结出经验,这符合人的学习方式。
注意:强化学习有很多概念,不要一开始被这些概念束缚了。首先得知道强化学习大致是什么,再看这些概念就会恍然大悟。 本文的思路就是先介绍我对强化学习的理解。然后介绍强化学习中的一些概念。最后是强化学习实践。
打破概念束缚:强化学习是个啥?
答:强化学习就是受到动物从生活中学习技能的思想启发的一种智能算法;那么怎么启发的呢?动物学习技能的过程就是不断尝试各种行为,最后总结经验,然后以后遇到相同情况直接用以往的经验就可以。强化学习就是这么做的。“不断猜测,检验,再猜测,再检验,直到找到达成目标的经验”这个过程就是强化学习。它学习的经验叫做模型。学习到了这些经验后以后就不用猜测了,直接用经验就可以。强化学习“学到”的经验是什么:“在某个状态下,做哪个行为,得到的奖励最大”,经验这是一个列表是一本教科书。
总结:强化学习的输出结果是找到解决某个问题的经验。强化学习的过程是不断乱尝试,并记录所处的状态和行为,找到某个状态下奖励最大的行为。
为何要用强化学习?( 知道为什么才是打破概念束缚的关键)
答:因为智能体不知道哪些行为可以产生奖励,也不知道什么时候会来奖励。这些经验都是要从环境中学习所得到。
似懂非懂?没关系有个模糊的是那么回事的印象就可以。看下面的例子就懂了。
举个例子:在高中生物书上有个“巴甫洛夫的狗”这个实验。 就是巴甫洛夫每次给它狗喂食的时候都会摇铃铛,然后这条狗慢慢学到了“摇铃铛=有东西吃”这个经验。然后学到这个经验后,只要“摇铃铛”它就会流口水。强化学习就是受到这种启发而发明的算法。
从“巴甫洛夫的狗”看强化学习几个概念
强化学习思想很简单,7个词够了:
- 智能体、目标、环境、观察、状态、行动、奖励
不要慌。接下来用例子来解释着7个东西是什么。 我们用“巴甫洛夫的狗”这个实验解释下这强化学习这个六个要素。
- 智能体。首先这条狗它是一个智能体(Agent)。
- 目标。它的目标(Goal)是吃饭。
- 环境。环境就是字面意思,它在的这个地方发生的一切都属于环境里面的东西。
- 观察。然后,它各种看和听什么现象和食物相关。这个过程叫做观察。
- 状态。观察到的内容叫做状态(state)。这里的状态是:有没有饭吃、有没有人说话、有没有脚步声、有没有铃声。
行为。然后它根据这些观察会作出一些动作,如:“摇尾巴,流口水等等”。这个叫做行为(action)。行为是根据观察到内容(状态)而作出的。 这里可能的行为是(前半部分是状态,后半部分是行为):
- 听到脚步声——摇尾巴
- 听到铃声——流口水
- 听到脚步声——流口水
- 看到天黑了——汪汪汪叫
7.奖励。在这里,奖励是作出的行为有没有饭吃。
- 听到脚步声——摇尾巴——没饭吃
- 听到铃声——流口水——有饭吃
- 听到脚步声——流口水——没饭吃
- 看到天黑了——汪汪汪叫——没饭吃
从“巴甫洛夫的狗”分析强化学习执行过程
现在,我想你隐隐约约应该看出动物怎么学习的了。就是“不断猜测,检验,再猜测,再检验”,检验唯一标准是有没有达成目标。
但是怎么理性科学的看待这个问题呢?答:“不断猜测,检验,再猜测,再检验,直到找到达成目标的经验”这个过程就是强化学习。它学习的经验叫做模型。学习到了这些经验后以后就不用猜测了,直接用经验就可以。强化学习“学到”的经验是什么:“在某个状态下,做哪个行为,得到的奖励最大”,这是一个列表清单。
为何“狗”要不断尝试呢?
因为它不知道哪些行为可以产生奖励,也不知道什么时候会来奖励。这些都是要从环境中学习所得到。
欢迎关注我的知乎专栏适合初学者的机器学习神经网络理论到实践。
第一篇为零基础神经网络实战(1):单个神经元+随机梯度下降学习逻辑与规则
第二篇为适合初学者的神经网络理论到实践(2):理解并实现反向传播及验证神经网络是否正确