一起读《深度强化学习实战》-gym案例
定义
1. 深度强化学习 DRL(Deep Reinforcement Learning)属于机器学习的一个子领域,将深度学习模型(神经网络)应用于强化学习。
2. 什么是强化学习?类似大人教小孩子,训练狗,做的差不多或完全正确就给奖励,然后不停地强化。
3. 强化学习需要做出决策和采取动作(控制任务control task),通过试错学习如何最佳地匹配状态(states)和动作(actions),以期获得最大的回报(rewards)。
4. 状态是环境的“快照”(环境是连续的,状态是离散的)。
5. 动态规划Dynamic Programming,分析问题,拆解成清楚如何解决的最小单元,再逐级解决。
6. 蒙特卡洛法,对未知的场景,反复试错进行判断。
应用
强化学习,可以应用于打游戏(DeepMind的DQN算法),股票交易,广告投放等等
实践
1. 使用Python Gym库(安装pip3 install gym)提供大量可与学习算法交互的环境和接口。运行书中给的例子:
import gym
env = gym.make('CarRacing-v0')
env.reset()
env.step(action)
env.render()
2. python3运行,报错`gym.error.DeprecatedEnv: Environment version v0 for CarRacing is deprecated. Please use CarRacing-v2 instead.`表示已经不推荐弃用,换成‘CarRacing-v2’
3. 再次运行,出现新的报错‘gym.error.DependencyNotInstalled: box2D is not installed, run pip install gym[box2d]’,
4. 安装pip3 install gym[box2d],报错如下
5. 通过sudo apt install swig解决
6. 再次运行还是会报‘NameError: name 'action' is not defined’,上面确实没有定义,修改成如下:
import gym
env = gym.make("CarRacing-v2", render_mode="human")
observation, info = env.reset()
while True:
action = env.action_space.sample() # agent policy that uses the observation and info
observation, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
observation, info = env.reset()
env.close()
7. 运行的效果如下,小车会一直尝试拐弯
视频分享