其实函数间隔

的取值并不影响最优化问题的解,假设将w和b成倍的改变为aw,ab,那么函数间隔也会相应变成a

,函数间隔的对上面最优化问题的不等式没有影响,也对目标函数没有影响,因此为简便,取

,而且我们注意到最大化

等价于最小化

(为啥取平方呢,因为后面好求导),便可得到下面支持线性可分(线性不可分的情况后面会提到)的支持向量机的最优化问题

这是一个凸二次优化的问题,可以直接求解,但是为了简便呢,我们要应用拉格朗日对偶性,求解他的对偶问题

其实求解对偶问题相比于原问题有一下几点好处(1).对偶问题更容易求解,因为不用求w了 (2)我们可以自然引入核函数,这样可以推广到线性不可分分类问题上

建立拉格朗日函数,引进拉格朗日乘子

,定义拉格朗日函数:

根据原始问题的对偶性,原始问题的对偶性是极大极小问题,即

首先我们来求最小,零L(w,b,a)分别对w和b求导为零可

将其代入对偶问题,可得

解出alpha之后,那么w,b也相应得到啦

接下来,我们看看很有意思的上式不等式约束的kkt条件(不懂请百度)带给我们的信息

咦,对于任意训练样本

,总有

或者

,也就是说最终与模型有关的的样本点都位于最大间隔的边界上,我们称之为支持向量,其余的样本点与模型无关

在前面的讨论中,我们都是聊的线性可分的情况,那么大多数情况下都线性不可分怎么办,比如这样(如左)

山人自有妙计,我们可以将样本先映射到高维特征空间,然后就可以继续分割了(如右)

前面我们说到了对偶问题是

公式中涉及到计算

,xi,xj是映射到特征空间之后的内积,由于特征维数可能会很高,甚至是无穷多维,直接计算很困难,所以我们引入了核函数:

这样我们就可以不用麻烦的计算内积了

dqn的各种trick:

第一个Trick。DQN引入卷积层。模型通过Atari游戏视频图像了解环境信息并学习策略。DQN需要理解接收图像,具有图像识别能力。卷积神经网络,利用可提取空间结构信息卷积层抽取特征。卷积层提取图像中重要目标特征传给后层做分类、回归。DQN用卷积层做强化学习训练,根据环境图像输出决策。

第二个Trick。Experience Replay。深度学习需要大量样本,传统Q-Learning online update方法(逐一对新样本学习)不适合DQN。增大样本,多个epoch训练,图像反复利用。Experience Replay,储存Agent Experience样本,每次训练随机抽取部分样本供网络学习。稳定完成学习任务,避免短视只学习最新接触样本,综合反复利用过往大量样本学习。创建储存Experience缓存buffer,储存一定量较新样本。容量满了,用新样本替换最旧样本,保证大部分样本相近概率被抽到。不替换旧样本,训练过程被抽到概率永远比新样本高很多。每次需要训练样本,直接从buffer随机抽取一定量给DQN训练,保持样本高利用率,让模型学习到较新样本。

第三个Trick。用第二个DQN网络辅助训练,target DQN,辅助计算目标Q值,提供学习目标公式里的maxaQ(st+1,a)。两个网络,一个制造学习目标,一个实际训练,让Q-Learning训练目标保持平稳。强化学习 Q-Learning学习目标每次变化,学习目标分部是模型本身输出,每次更新模型参数会导致学习目标变化,更新频繁幅度大,训练过程会非常不稳定、失控,DQN训练会陷入目标Q值与预测Q值反馈循环(陷入震荡发散,难收敛)。需要稳定target DQN辅助网络计算目标Q值。target DQN,低频率、缓慢学习,输出目标Q值波动较小,减小训练过程影响。

第四个Trick。Double DQN。传统DQN高估Action Q值,高估不均匀,导致次优Action被高估超过最优Action。targetDQN 负责生成目标Q值,先产生Q(st+1,a),再通过maxa选择最大Q值。Double DQN,在主DQN上通过最大Q值选择Action,再获取Action在target DQN Q值。主网选择Action,targetDQN生成Action Q值。被选择Q值,不一定总是最大,避免被高估次优Action总是超过最优Action,导致发现不了真正最好Action。学习目标公式:Target=rt+1+γ·Qtarget(st+1,argmaxa(Qmain(st+1,a)))。

第五个Trick。Dueling DQN。Dueling DQN,Q值函数Q(st,at)拆分,一部分静态环境状态具有价值V(st),Value;另一部分动态选择Action额外带来价值A(at),Advantage。公式,Q(st,at)=V(st)+A(at)。网络分别计算环境Value和选择Action Advantage。Advantage,Action与其他Action比较,零均值。网络最后,不再直接输出Action数量Q值,输出一个Value,及Action数量 Advantage值。V值分别加到每个Advantage值上,得最后结果。让DQN学习目标更明确,如果当前期望价值主要由环境状态决定,Value值大,所有Advantage波动不大;如果期望价值主要由Action决定,Value值小,Advantage波动大。分解让学习目标更稳定、精确,DQN对环境状态估计能力更强。

算法的trick_完整推导了svm一遍,还有强化学习问的很多,dqn的各种trick了...相关推荐

  1. 【学习强化学习】六、DQN算法原理及实现

    文章目录 参考资料 前言 1. State Value Function 1.1 State Value Function Estimation 1.1 Monte-Carlo(MC)-based 1 ...

  2. 强化学习《基于价值 - DQN其他细节算法》

    一:优先级回放(Prioritized Experience Replay) 二:Multi-step: Combination of MC and TD 三:Noisy Net

  3. AI算法工程师手册,Google软件开发指南,JAX强化学习环境,全国高校生活质量信息汇总,几篇AI前沿论文 | ShowMeAI资讯日报

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

  4. 系统学习深度学习(三十九)--基于模型的强化学习与Dyna算法框架

    转自:https://www.cnblogs.com/pinard/p/10384424.html 在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Poli ...

  5. 【强化学习】Q-Learning算法详解以及Python实现【80行代码】

    强化学习 在文章正式开始前,请不要被强化学习的tag给吓到了,这也是我之前所遇到的一个困扰.觉得这个东西看上去很高级,需要一个完整的时间段,做详细的学习.相反,强化学习的很多算法是很符合直观思维的. ...

  6. 【强化学习实战】基于gym和tensorflow的强化学习算法实现

    [新智元导读]知乎专栏强化学习大讲堂作者郭宪博士开讲<强化学习从入门到进阶>,我们为您节选了其中的第二节<基于gym和tensorflow的强化学习算法实现>,希望对您有所帮助 ...

  7. 蒙特卡罗强化学习算法

    该算法通过考虑采样轨迹,克服了模型未知给策略估计造成的困难.此类算法需在完成一个采样轨迹后再更新策略的值估计,而基于动态规划的策略迭代和值迭代算法在每执行一步策略后就进行值函数更新.两者相比,蒙特卡洛 ...

  8. 深度强化学习探索算法最新综述,近200篇文献揭示挑战和未来方向

    ©作者 | 杨天培.汤宏垚等 来源 | 机器之心 强化学习是在与环境交互过程中不断学习的,⽽交互中获得的数据质量很⼤程度上决定了智能体能够学习到的策略的⽔平.因此,如何引导智能体探索成为强化学习领域研 ...

  9. 无需公式或代码,用生活实例谈谈 AI 自动控制技术“强化学习”算法框架

    不用公式.不用代码,白话讲讲强化学习原理 The best way to learn is to teach others. 战胜围棋高手李世石的 AlphaGo ,称霸星际争霸2的 AIphaSta ...

最新文章

  1. 课时 29:安全容器技术(王旭)
  2. AA.Dapper升级了
  3. 深度优先搜索重要模板
  4. 戳破“砖家”假面:唯快不破的时代,为什么这件事一定要慢慢做?
  5. nginx 正向代理
  6. 教你解决ssh连接慢的问题
  7. Android之Camera拍照
  8. css常见样式命名思想
  9. rostcm6情感分析案例分析_周小鹏分析情感案例——你愿意嫁给一个离过婚带孩子男人吗?...
  10. win10计算机桌面天气,win10电脑桌面显示时间和天气日期怎么设置
  11. 对话机器人技术简介:问答系统、对话系统与聊天机器人
  12. SYN cookie
  13. pve远程连接 spcie_PVE开启硬件直通功能
  14. perfectmoney php接口_兑换paypal PerfectMoney(转载)
  15. 直角三角形面积Java_用java编写输出直角三角型、倒直角三角形
  16. STEM创新教育-热量与马铃薯含水量之间的关系
  17. java图形化界面编程之Swing
  18. java计算机毕业设计基于springboo+vue的共享单车自行车管理系统
  19. matlab中Svmtrain和Svmpredict的用法
  20. Matlab plotyy画2个纵坐标不同的图

热门文章

  1. 算法与程序设计——由a-z,0-9组成3位的字符密码
  2. sqlserver 内连接 左右连接 自动连接
  3. Gets和scanf的区别
  4. 易地推拓客分享培训机构如何玩转私域流量
  5. GitHub Flavored Markdown 中实现【页内跳转】
  6. 面试流程及常见面试题
  7. 【第100题】元音统计 | 乘法原理加速计算
  8. 数据挖掘导论学习总结——第四章
  9. 爬虫易烊千玺影响力榜单(利用浏览器驱动的方法)
  10. C++数据结构day01-链式存储