在七月算法上报了《无人驾驶实战》课程,老师讲的真好。好记性不如烂笔头,记录一下学习内容。 课程入口,感兴趣的也可以跟着学一下。
强化学习:通过和环境交互学习到如何在相应环境中采取最优策略的行为。特点是不需要标注,具有鲁棒性,对行为(Action)的学习更友好。
Environment:整体任务的工作环境
Reward:激励、奖励,对行为好坏的一个评价,Value Function,不同环境可以有不同的奖励, 奖励的设计对RL来说至关重要。
Agent:智能体,一般是RL的作用对象
Action:智能体可以采取的所有可能的行动
Sensors:环境返回的当前情况
MDP模型:马尔科夫决策过程
逆强化学习:能够找到一种能够高效可靠的Reward的方法,专家在完成某项任务时,其决策往往是最优或接近最优的。当所有的策略所产生的累积回报期望都不比专家策略所产生的累积回报期望大时, 对应的回报函数就是根据示例学到的回报函数。
常用的逆强化学习方法:学徒学习方法、最大边际规划算法MMP、基于最大熵的逆向强化学习
模仿学习: 从专家提供的范例中学习,一般提供人类专家的决策数据, 每个决策包含状态和动作序列, 把状态作为特征,动作作为标记进行分类或回归的学习从而得到最优策略模型。目标是使模型生成的状态-动作轨迹分布和输入的轨迹分布相匹配,算是一种监督学习方法( 行为克隆 )。特点是泛化性很差,依赖于大量数据 数据增广
深度学习:感知能力,缺乏一定的决策能力
强化学习:决策能力,非常适合做无人车决策规划
强化学习中的一些分类:On-Policy vs Off-Policy、Model Based vs Model Free、Q-Learning vs SARSA、
DQN(Deep Q Network) 端到端的学习方式、 深度卷积神经网络和Q学习、 经验回放技术;
DDPG(Deep Deterministic Policy Gradient ) actor-critic 算法、 深度神经网络作为逼近器;
强化学习主要方法的对比
无人车如何使用强化学习(模仿学习)
传感器感知(输入):Radar、Lidar、GPS、Camera ... ,从原始数据抽取高阶特征,机器学习将特征转化成知识,知识处理后进行推理;做出合理的动作决策。
Q-Learning
Q-Table为每一个 state 上进行的每一个 action 计算出最大的未来 reward 的期望,每个状态允许四种可能的操作:左移、右移、上移、下移, Table 里的参数式给定最佳策略的状态下采取相应动作获得的最大未来奖励期望
如何计算 Q-table 中每个元素的值?
Q-Learning、学习动作值函数(Q值)、Bellman 方程
更新Q值的策略
选取一个动作:在基于当前的 Q 值估计得出的状态 state 下选择一个动作 action。采用动作 action 并且观察输出的状态 s' 和奖励 reward。
DQN
4个Action:上下左右,每走一步有reward,Maximum 未来的 Reward总和
Q-Learning: 使用最佳策略使得最大化未来的Reward值(Q值),Off-policy,持续迭代更新每步(s, a) 。
Exploration vs Exploitation(探索和使用): 局部最优(贪心),初始的时候对信息一无所知
持续更新(S, A) 是Q-Learning的最大问题,因为低效,泛化能力差,对复杂问题维数爆炸,所以后面使用Deep Learning代替Q-Table
DeepMind在这方面发表了文章在Nature上
如何训练DQN?
1.给定状态转移方式 ;2.在状态s用前向推理计算所有Action的预测Q值;3.前向推理下一步s'及其最大Q'值;4.并用Loss function进行梯度更新
经验回放:提高数据利用率,遗忘数据流顺序(加入随机性)
课程总结
自动驾驶工程师技能图谱