欢迎大家关注微信公众号:DRL学习,我们一起来学习强化学习和深度强化学习的算法及现状应用问题。

强化学习简单说就是学习如何最大化未来奖励的预期总和,以及agent学会在环境中做出的行动序列,其中随机状态对代理人来说是未知的,并且取决于其行动。具体的强化学习分类如谢图所示,强化学习属于交叉学科,对于很多的计算及计算机学科都有帮助及涉及。

今天,就带大家来聊聊强化学习那些事以及小编这一年多走过的弯路,遇过的坑。前段时间看过一篇文章叫做《强化学习-从入门到放弃》,文章写的挺好的,而且句句扎心。内心不够强大,抗压能力不达到一定境界的孩纸,小编劝你们不要涉足强化学习,因为真的会让你疯,让你成魔。

强化学习(reinforcement learning)是高于深度学习的强人工智能领域,最被人们所熟知,也最成功的例子就是DeepMind做的AlphaGo,AlphaGo Zero以及AlphaZero。目前最值得关注的领域为无人驾驶领域,强化学习应用在无人 驾驶技术的L4级别和L5级别中,也算是最热门,坑最多的人工智能领域。其实,强化学习属于无监督学习的代表,它的思想特别简单,如下图所示。

大脑代表agent,地球代表environment,agent给出action到environment当中,同时environment给agent当前的观察observation得出的状态,同时给出当前行为的reward,agent根据返回的observation和reward决定下一步该怎么走,思想说起来其实很简单,但是真正实现起来却特别难。其原因首先是environmnent的多变性,不同的环境就会产生不同的影响;其次,reward奖励的设定也很重要,如果设置不合理,agent会投机取巧走捷径,得不到你想要的结果。因此如何设置环境和奖励是强化学习的难点也是关键点。

接下来,跟大家分享小编自己的学习方法,希望对大家的学习有益。对于强化学习的学习,小编是五步走战略,希望可以给刚涉足人工智能的小伙伴一些启示。第一步,学习强化学习,就一定要用python语言基础,因为无论你使用的平台是TF还是caffe,python语言都是基础知识,没有强大的C++和python语言做支持,学了也是白学。第二步,机器学习(machine learning),机器学习是入门人工智能的基石,在这里我推荐大神吴恩达的机器学习课程或者台湾国立大学李宏毅教授的机器学习课程,这两门课程都非常的详实,对于入门和掌握机器学习的内容都非有用,书籍推荐南京大学周志华教授的西瓜书《机器学习》,其他的一些培训机构不能说不好,会有一定用处,但我总觉得批量生产出来的程序员总有些奇怪。第三步,深度学习(deep learning),其实也就是研究经典网络,例如在CNN网络当中的几大经典网络LeNet5,AlexNet,VGG,Google Inception和ResNet是必须掌握透彻的,然后利用学习的网络自己动手做实验,如图像的分类,检索等问题,只有自己动手的网络才是自己掌握的网络,因为你会遇到各种奇奇怪怪的问题,真正解决问题才能进步。第四步,学习强化学习的基本知识,包括一些基本概念和公式的推导,基础阶段我推荐我的男神,AlphaGo之父David Silver在2015年伦敦大学的系列公开课,他的公开课讲的特别详实对学习强化学习的基础知识起到很好的理解与引导作用;目前,UC Berkely新出来了课程CS294也是很不错的,大家都可以自行观看学习。第五步,读论文,而且是最新的论文,小编的前四步,花费了一年多的时间才完成,目前在第五步阶段,并养成一个习惯是每天早上打开电脑的第一件事是去Deepmind和Openai主页看一眼,看看他们这两大巨头又在闷声干啥大事,因为这些公司一定会把他们的最新成果公布出来,所以,每天关注是对自己有好处的。

最后,我们来聊聊强化学习的现状与应用。目前,强化学习在游戏领域和机器人领域做的是最突出的,究其原因其实是因为游戏的环境相对稳定且易于操控,所以很多人喜欢用游戏进行强化学习算法的检验,最经典的游戏莫过于Atari游戏。对于机器人,小编了解相对较少,因为涉及的东西太多,但是强化学习算法在机械臂的应用非常的好,最棒的就是Openai推出的HER算法,给定目标位置,机械臂可以很快做出反应并到达指定位置,可以说是很棒棒了。

简单介绍其概念及学习方法和顺序,在之后的过程中会推出深度强化学习专栏,敬请期待!

最新文章

  1. Spring配置
  2. SRS(simple-rtmp-server)
  3. enbale blakboxing
  4. 源代码解读Cas实现单点登出(single sign out)功能实现原理
  5. JQuery Pagenation 知识点整理——phototype 应用(20150517)(转)
  6. 界面上传文件js包【AjaxUpload.js】
  7. SQLSERVER2012数据库还原
  8. RecursiveDirectoryIterator目录操作类
  9. 使用struts的模型驱动注意的问题
  10. ProgressMonitorInputStream
  11. brk(), sbrk() 用法详解
  12. DBUS基础知识
  13. Spring boot 学习笔记 1 - 自定义错误
  14. SQL开发——SQL语法
  15. [Postman]拦截器扩展(15)
  16. javascript 正则表达式(十)
  17. Kubernetes有状态应用管理——PetSet
  18. L266 作文
  19. 设计师们做UI设计和交互设计、界面设计等一般会去什么网站呢?
  20. 安卓ADB命令

热门文章

  1. ES6实现图片切换特效
  2. Wannafly Camp 2020 Day 6N. 合并!
  3. PP: Modeling extreme events in time series prediction
  4. Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
  5. leetcode top-100-liked-questions刷题总结
  6. TCP的粘包和拆包问题及解决
  7. moveTo 与 moveBy的区别 (转贴)
  8. 编码 - 坑 - win10 下采用 utf-8, 导致 gitbash 中文字体异常, 待解决
  9. 打表法fffff
  10. 10行代码实现简易版的Promise