当前位置: 首页 > ds >正文

深度学习与自动驾驶中的一些技术

深度学习与自动驾驶中的一些技术

强化学习 reinforcement learning
  1. 框架

    1. 智能体在环境中运行
    2. 智能体具备执行动作的能力
    3. 每个动作都会影响智能体的未来状态
    4. 通过奖励信号衡量成功与否
    5. 目标是选择能最大化未来奖励的动作
  2. 马尔可夫决策过程 Markov Decision Process

    是一种用于自动驾驶汽车深度学习的数学模型,用于描述序列决策问题

    s0,a0,r1,s1,a1,r2,...,sn−1,an−1,rn,sns_0,a_0,r_1,s_1,a_1,r_2,...,s_{n-1},a_{n-1},r_n,s_ns0,a0,r1,s1,a1,r2,...,sn1,an1,rn,sn

    sss:state;

    aaa:action;

    rrr:reward

    sns_nsn:Terminal state

  3. Major Components of an RL Agent

    policy:策略;智能体的行为函数

    value function:价值函数;每个状态和\或动作的好坏程度

    model:模型;智能体对环境的表征

  4. value function

    future reward

    R=r1+r2+r3+...+rnR=r_1+r_2+r_3+...+r_nR=r1+r2+r3+...+rn

    Rt=rt+rt+1+rr+2+...+rnR_t=r_t+r_{t+1}+r_{r+2}+...+r_nRt=rt+rt+1+rr+2+...+rn

    discounted future reward(environment is stochastic)未来奖励的折扣(环境是随机的):

    Rt=rt+γrt+1+γ2rt+2+...+γn−trn=rt+γ(rt+1+γ(rt+2+...))=rt+γRt+1R_t=r_t+γr_{t+1}+γ^2r_{t+2}+...+γ^{n-t}r_n = r_t+γ(r_{t+1}+γ(r_{t+2}+...)) = r_t+γR_{t+1}Rt=rt+γrt+1+γ2rt+2+...+γntrn=rt+γ(rt+1+γ(rt+2+...))=rt+γRt+1

    对于智能体来说,一个好的策略是始终选择一个最大化(discounte)未来奖励的动作

  5. Q-Learning

    Q学习是一种强化学习算法,常用于自动驾驶等机器学习领域

    state value function:状态价值函数:VΠ(s)V^Π(s)VΠ(s)

    在s开始并跟随Π时的预期返回

    state-action value function:状态-动作价值函数:QΠ(s,a)Q_Π(s,a)QΠ(s,a)

    在s中开始、执行a和跟随Π时的预期返回

    Useful for finding the optimal policy可用于查找最佳策略

    可以基于经验进行估计(Monte Carlo)

    使用QΠ(s,a)Q_Π(s,a)QΠ(s,a)选择最佳动作

    Q-learning: off-policy非策略

    使用任何策略来估计Q,以最大化未来的奖励:Q(st,at)=maxRt+1Q(s_t,a_t)=maxR_{t+1}Q(st,at)=maxRt+1

    Q直接近似于Q* (Bellman最优性方程)

    与所遵循的政策无关

    仅需满足一个条件:持续更新每个(s,a)对

    Qt+1(st,at)=Qt(st,at)+α(Rt+1+γmaxaQt(st+1,a)−Qt(st,at))Q_{t+1}(s_t,a_t)=Q_t(s_t,a_t)+α(R_{t+1}+γmax_aQ_t(s_{t+1},a)-Q_t(s_t,a_t))Qt+1(st,at)=Qt(st,at)+α(Rt+1+γmaxaQt(st+1,a)Qt(st,at))

    Qt+1(st,at)Q_{t+1}(s_t,a_t)Qt+1(st,at):新状态

    Qt(st,at)Q_t(s_t,a_t)Qt(st,at):旧状态

    Rt+1R_{t+1}Rt+1:奖励

    ααα:学习率

    γγγ:discount factor

  6. Deep Q-Learning

    使用函数(带参数)来近似Q函数

    非线性:Q-Network

    Q(s,a;θ)≈Q∗(s,a)Q(s,a;\theta)≈Q^*(s,a)Q(s,a;θ)Q(s,a)

    1. Deep Q-Network: Atari

    2. training:

      bellman equation:Q(s,a)=r+γmaxa′Q(s′,a′)Q(s,a)=r+γmax_{a'}Q(s',a')Q(s,a)=r+γmaxaQ(s,a)

      loss function(squared error):L=E[(r+γmaxa′Q(s′,a′)−Q(s,a))]L=E[(r+γmax_{a'}Q(s',a')-Q(s,a))]L=E[(r+γmaxaQ(s,a)Q(s,a))]

Long Short Term Memory(LSTM)Networks
  1. LSTM:选择忘记什么和记住什么

  2. LSTM Conveyer Belt

    LSTM传送带用于传输先前状态和新的数据:

    决定忘记什么(状态)

    决定记住什么(状态)

    决定输出什么(条件判断)

    1. step1:决定忘记/忽视什么

      ft=σ(Wf⋅[ht−1,xt]+bf)f_t=\sigma(W_f·[h_{t-1},x_t]+b_f)ft=σ(Wf[ht1,xt]+bf)

    2. step2:决定要更新哪些状态值(使用sigmoid函数)以及用哪些值进行更新(使用tanh函数)

      it=σ(Wi⋅[ht−1,xt]+bi)i_t=\sigma(W_i·[h_{t-1},x_t]+b_i)it=σ(Wi[ht1,xt]+bi)

      C~t=tanh(Wc⋅[ht−1,xt]+bC)\widetilde{C}_t=tanh(W_c·[h_{t-1},x_t]+b_C)Ct=tanh(Wc[ht1,xt]+bC)

    3. step3:执行遗忘和状态更新

      Ct=ft∗Ct−1+it∗C~tC_t=f_t*C_{t-1}+i_t*\widetilde{C}_tCt=ftCt1+itCt

    4. step4:生成输出时使用tanh [-1,1]决定数值,同时使用sigmoid [0,1]进行过滤

      ot=σ(Wo[ht−1,xt]+bo)o_t=\sigma(W_o[h_{t-1},x_t]+b_o)ot=σ(Wo[ht1,xt]+bo)

      ht=ot∗tanh(Ct)h_t=o_t*tanh(C_t)ht=ottanh(Ct)

http://www.xdnf.cn/news/18798.html

相关文章:

  • Java基础(十四)分布式
  • KingBase数据库迁移利器:KDTS工具深度解析与实战指南
  • golang6 条件循环
  • 01-鸿蒙系统概览与发展历程
  • Android面试指南(五)
  • 青少年机器人技术(二级)等级考试试卷-实操题(2024年9月)
  • C语言文件操作精讲:从格式化读写到随机访问
  • GOLANG 接口
  • Axure:如何打开自定义操作界面
  • loj数列分块入门2-3
  • c++string
  • crypto.randomUUID is not a function
  • 拓扑排序|hash
  • frp+go-mmproxy 实现透明代理的内网穿透
  • Qt5 高级功能
  • 关于说明锂电池充电芯片实际应用
  • 曲面方程的三维可视化:从数学解析到Python实现
  • 从罗永浩访谈李想中学习现代家庭教育智慧
  • 定时器互补PWM输出和死区
  • 54.Redis持久化-AOF
  • JEI(Journal of Electronic lmaging)SCI四区期刊
  • 控制建模matlab练习16:线性状态反馈控制器-⑤轨迹追踪
  • Linux内核进程管理子系统有什么第三十三回 —— 进程主结构详解(29)
  • 【KO】前端面试四
  • Java八股文-java基础面试题
  • 9.Shell脚本修炼手册---数值计算实践
  • 使用tensorRT10部署yolov5目标检测模型(2)
  • UE5.3 中键盘按键和操作绑定
  • 青少年机器人技术(六级)等级考试试卷-实操题(2021年12月)
  • 深入理解3x3矩阵