学习的枯燥似乎有种魔力,让人无法提起干劲。
看着我收藏夹里的各类课程,感觉基本上都难逃吃灰的命运,
除了它——可以“玩游戏”的深度强化学习课程。
阿里技术副总裁贾扬清说过:
人工智能课程是玩游戏。
这话对之于这个课程简直再合适不过了!
在课程中,你可以建立自己的智能体,然后教他们学会玩太空侵略者,我的世界,星际争霸,刺猬索尼克等等!
怎么样?是不是心动了。
那就开始你的游戏智能体的学习之旅吧。
深度强化学习 (DRL) 是一种使用深度学习技术去扩展传统强化学习方法的一种机器学习方法。
传统强化学习方法的学习内容是:
智能体根据从环境中所获得的奖励,来学习如何才能够使自身获取的奖励最大化。
而传统无模型的强化学习方法则需要使用到函数逼近方法,然后让智能体能够学习得出值函数或策略。
在这种情况下,深度学习中强大的函数逼近能力便显示出他的优势并开始被研究人员所使用。
于是,二者的交叉——深度强化学习就出现了。
深度强化学习的标志性开端是2013年的论文——《Playing Atari with Deep Reinforcement Learning》
之后,基于深度强化学习的AlphaGo和OpenAI Five等人工智能在各类复杂游戏中相继击败了人类顶尖玩家,引起了各方的关注。
此外,深度强化学习在其他领域也有着不同程度的研究和应用,比如:机械手的敏捷训练、室内定位、智能运输等。
该课程一共分为12章:
可以看出,从DRL基础(1),再到Q-Learning、深度Q-Learning(2-4),然后是策略梯度(5-8),最后是Unity机器学习智能体(10-12)。
作者用一个循序渐进的过程讲授了各类常见且主流的深度强化学习的方法。
同时,最大的吸引点莫过于是每一章节都安排了不同的游戏实践。
这很令人兴奋不是嘛?
动手去这些游戏建立自己的智能体!
对此,作者Thomas Simonini介绍道:
自2018年推出该课程的第一版以来,我们发布了许多新库:TF-Agents、Stable-Baseline 2.0…和环境:MineRL(Minecraft)、Unity ML-Agents、OpenAI retro(NES、SNES、MD游戏机里的游戏…)。您现在可以访问许多游戏来建立自己的智能体。
这就是为什么这是开始学习的最佳时机,而使用本课程,你来对地方了。
这是一门从初学者到专家的免费课程,在这里您将掌握所需的技能和体系结构,从而成为深度强化学习专家。
Thomas Simonini
一位热衷于强化学习(RL)教育及其在视频游戏行业中的应用的视频游戏从业者。
2016年获得法律和政治科学学士学位,之后开始自学数学、深度学习和深度强化学习等相关课程。
2017年进入Udacity学习并分别获得了深度学习、人工智能的Nano学位。
2018年,他开设了深度强化学习课程,这是一个免费的开源文章和视频系列。这门课程成功收获了45,000+的点赞,每周约有4,000名阅读量。
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数 |
类型 |
默认值 |
描述 |
userid |
String |
无 |
平台注册账号 |
appid |
String |
无 |
平台创建的应用id |
key |
String |
无 |
平台应用生成的秘钥 |
msg |
String |
"" |
用户端消息内容 |
接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552
注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class apitest {
/**
* Get请求,获得返回数据
* @param urlStr
* @return
*/
private static String opUrl(String urlStr)
{
URL url = null;
HttpURLConnection conn = null;
InputStream is = null;
ByteArrayOutputStream baos = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5 * 10000);
conn.setConnectTimeout(5 * 10000);
conn.setRequestMethod("POST");
if (conn.getResponseCode() == 200)
{
is = conn.getInputStream();
baos = new ByteArrayOutputStream();
int len = -1;
byte[] buf = new byte[128];
while ((len = is.read(buf)) != -1)
{
baos.write(buf, 0, len);
}
baos.flush();
String result = baos.toString();
return result;
} else
{
throw new Exception("服务器连接错误!");
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
if (is != null)
is.close();
} catch (IOException e)
{
e.printStackTrace();
}
try
{
if (baos != null)
baos.close();
} catch (IOException e)
{
e.printStackTrace();
}
conn.disconnect();
}
return "";
}
public static void main(String args []){
//msg参数就是传输过去的对话内容。
System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
}
}