非常感谢百度带我进入强化学习的世界里,让我了解强化学习的理论以及实践,通过科科老师讲解以及实验作业,从一个小白慢慢的变成强化学习入门初学者。
课程入口:https://aistudio.baidu.com/aistudio/education/group/info/1335
课程从入门到高级,一步步带你了解强化学习世界,从Sarsa 到Q-learning,到深度学习DQN以及连续动作DDPG。
- 强化学习(英语:
Reinforcement learning
,简称RL
)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。 - 核心思想:智能体
agent
在环境environment
中学习,根据环境的状态state
(或观测到的observation
),执行动作action
,并根据环境的反馈reward
(奖励)来指导更好的动作。
强化学习的核心:
sarsa核心目标
sarsa更新过程,从环境中得到S‘,根据S‘得到下一步A‘,根据优化函数更新Q表格
Q-learning核心目标
Q-learning更新过程,从环境中得到S‘,选出Q表格中最大的一个,根据优化函数更新Q表格
两者对比
Q-learning是off-policy,而Sarsa是on-policy学习。
Q-learning在更新Q table时,它只会需要Q值最大,但是不一定会选择使这个Q值最大的动作,因为选择哪个动作是由其他的策略决定的,但是Sarsa在更新Q table时,不一定是Q最大的那个,而且接下来会选择此Q对应的action。Q-learning属于勇敢型,无论前方的路上有什么危险,它都会直接走过去,而Sarsa比较保守,一般只是会远远的躲过危险。
随着深度学习的发展,研究者也往往从神经网络中突破强化学习,Q表存储的缺点是当表格需求非常大时,占的空间非常大,这显然非常让费资源,因此引入了DQN,当初学数据结构写过迷宫程序的同学可能会有体会哈,如果计算机空间太小,但是你想设置的地图有特别大呢,可能会导致空间不足,继前人经验,诞生DQN、PG以及DDPG甚至更先进的学习策略。
DQN算法核心
DQN流程----定时更新Q‘,然后使用Q和Q‘进行loss计算,继而更新模型参数
DQN优点
PG算法(Policy Gradient)
PG流程
G更新策略
DDPG算法(Deep Deterministic Policy Gradient)
流程对比
DDPG流程-----同时更新Q网络参数又更新策略网络参数
强化学习世界我们仅仅是入门,需要进一步的去研究和学习
对于初学的小伙伴而言怎么才能有效的完成作业呢?以下是我个人的作业总结:
①使用老师讲解的代码
②调节超参数,如学习率、激活函数
③使用fine-tune思想
#if os.path.exists('model_dir/steps2_70184.ckpt'):
# agent.restore('model_dir/steps2_70184.ckpt')
④有能力的小伙伴可以设计网络结构或者其他参数调节
如果大家感兴趣可以参与百度的课程,也有强化学习入门作业,绝对让你受益匪浅,更上一层楼