Reinforcement Learning,微信公众号:DRL学习
欢迎大家关注微信公众号: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算法,给定目标位置,机械臂可以很快做出反应并到达指定位置,可以说是很棒棒了。
简单介绍其概念及学习方法和顺序,在之后的过程中会推出深度强化学习专栏,敬请期待!
Reinforcement Learning,微信公众号:DRL学习的更多相关文章
- 微信公众号入门学习1_使用C#,ASP.NET APIController如何公众号接入服务器并启动开发者模式
前言: 本文是以微信公众号中的订阅号(个人)来进行简单介绍,本人也是刚刚开始学习,有不足之处,欢迎批评指正. 先粘贴2个帮助链接: 入门指引:http://mp.weixin.qq.com/wiki ...
- python微信公众号开发学习记录
网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总结一下开发的一些简单流程. 一先去注册个微信公众号,这个就不详细说了, 二登录后 ...
- 微信公众号入门学习2_使用C#,ASP.NET APIController如何被动回复用户消息
前言: 这里就可以凸显使用APIController的一个优势了,因为可以通过MVC的路由设置相同的路由,但改变请求的方式(HttpPost),可以单独写被动回复接口. 毕竟,微信服务器转入到咱们自己 ...
- C#开发微信公众号-学习笔记
由于最近要做微信服务号的开发,所以开始找相关说明和接口文档开始学,故把学习过程及注意事项记录一下,帮助想学习的快速上手.废话不多少了,直接上干货! 1.申请微信公众号 这个就不需要多说了吧,大家直接照 ...
- httpClient实现微信公众号消息群发
1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2.基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一 ...
- 【原创】【2015最新】微信公众平台开发手把手入门之一:缘起微信公众号(PHP,MYSQL, BAE)
最近因为业务的需要,老板布置做了两个月简单的的微信公众平台开发,从网上搜了一些资料,实话说资料不多. 在参考学习的过程中也遇到了不少难缠的小问题,虽然不难逾越,但是确实浪费了时间. 我发现网上仅有不多 ...
- Unity自学路线整理(参看微信公众号Unity墙外的世界的文章 )
目前还是个新手. 发现自己有时候还是会一脸蒙...的对着电脑屏幕不知所措,为了利用好在大学零散的时间所以整理一下学习unity的路线. 计划好才能更好的利用时间. 1. 先学好C#再去看引擎,我看的是 ...
- .net微信公众号开发——快速入门
作者:王先荣 最近在学习微信公众号开发,将学习的成果做成了一个类库,方便重复使用. 现在微信公众号多如牛毛,开发微信的高手可以直接无视这个系列的文章了. 使用该类库的流程及寥寥数行代码得到的结果如下. ...
- .NET C#使用微信公众号登录网站
适用于:本文适用于有一定微信开发基础的用户 引言:花了300大洋申请了微信公众平台后,发现不能使用微信公众号登录网站(非微信打开)获得微信帐号.仔细研究后才发现还要再花300大洋申请微信开放平台才能接 ...
随机推荐
- MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)
MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在MATLAB中“fitgmdis ...
- js 弹窗插件
toastr 参考 https://www.cnblogs.com/fu-yong/p/8609597.html prettyPhoto使用 参考
- Matlab技巧1:在同一坐标系上绘制两个函数图像
x=-:; y1=sqrt(*abs(x)-x.^); y2=asin(abs(x)-)-pi/; plot(x,y1,'r',x,y2,'b') grid 程序结果:
- [AT3867] Digit Sum 2
给出N,求小于等于N的正整数中用十进制表示各数位数字之和的最大值. Solution 如果是X999的形式,那么就是自己 否则,就是(X-1)999 #include <bits/stdc++. ...
- Linux下tomcat端口被占用
首先查看占用端口的程序 netstat -alnp | grep 8080 然后出现 tcp6 2 0 :::8080 :: LISTEN 1392/java 杀死端口号 kill -9 1392(进 ...
- vue报错 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's
[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent c ...
- Python标准库Random
基本方法 获取一个[0,1)的随机浮点数: import random print(random.random()) #输出 0.6701488343121276 获取指定区间的随机浮点数: impo ...
- cpu几核
import psutil def GetCpuInfo(): cpu_count = psutil.cpu_count(logical=False) #1代表单核CPU,2代表双核CPU xc_co ...
- PP: Overviewing evolution patterns of egocentric networks by interactive construction of spatial layouts
Problem: get an overall picture of how ego-networks evolve is a common challenging task. Existing te ...
- MyBatis 动态代理开发
MyBatis 动态代理开发 § Mapper.xml文件中的namespace与mapper接口的类路径相同. § Mapper接口方法名和Mapper.xml中定义的每个statement的i ...