博弈论在现代人工智能(AI)解决方案中正扮演着至关重要的角色,深度强化学习(DRL)正是积极拥抱博弈论的头等公民。 从单智能体程序到复杂的多智能体深度强化学习环境,博弈论原理贯穿了 AI 程序的整个生命周期。而反过来,DRL 的快速演化也重新激发了人们对博弈论研究的关注。 目前,大多数 DRL 模型事实上还停留在传统的博弈论层面,例如纳什均衡或零和游戏等。但随着DRL的发展,传统博弈论方法已经逐渐呈现出不足之处,而同时则有一些新的博弈论方法被纳入到人工智能的程序当中。 因此,对于我们来说,若想进一步优化深度强化学习的模型,考虑融入新的博弈论方法,是值得考量的一个方向。 以下三个,正是在深刻影响 DRL 的「新」博弈论方法,或许用到你的模型中会大大改观模型的性能。 一、平均场博弈(Mean Field Games) 在博弈论家族中,平均场博弈(MFG)还是一个相对较新的领域。 平均场博弈论诞生于 2006 年,这一理论是由两个团队独立提出的,一个是蒙特利尔的 Minyi Huang、Roland Malhame 和 Peter Gaines,另一个是巴黎的 Jean-Michel Lasry和菲尔兹奖获得者 Pierre-Louis Lions。 从概念上讲,平均场博弈论是一套方法和技术的组合,它被用来研究由「理性博弈方」组成的大群体下的差异化博弈。这些智能体不仅对自身所处的状态(如财富、资金)有偏好,还关注其他智能体在整个样本分布中所处的位置。平均场博弈理论正是针对这些系统对广义纳什均衡进行了研究。 平均场博弈的经典案例是,如何训练鱼群朝相同方向游,或者以协作方式游。 这个现象很难用理论解释,但它的本质事实上是,鱼会根据最靠近的鱼群的行为做出反映。再具体点儿,每条鱼并不在乎其他单个鱼的行为,而是关注附近作为一个整体、统一移动的鱼群做出的行为。
如果我们用数学方程表述这个原理,一方面可以用 Hamilton-Jacobi-Bellman 方程来描述鱼对周边鱼群的反应,另一方面则可以用 Fokker-Planck-Kolmogoroy 方程来表示决定整个鱼群行动的所有鱼的行为集合。 平均场博弈理论就是这两个等式的组合。 从深度强化学习的角度来说,在研究大范围环境中 大量智能体的表现方面,平均场博弈论扮演着重要的角色。 实验和理论已经证实,在“接近无限多智能体、并假设采用不精确的概率模型进行操作”的环境中,已有的 DRL的方法并不具备现实可用性。 而 MFG 却是模拟这类 DRL 环境的一个有意思的方法,非常值得尝试。 一家叫做Prowler 的创业公司最近就在针对平均场博弈论(MFG)在大型多智能体(DRL)环境中的表现开展研究工作。
认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。 接口申请官网地址:www.weilaitec.com 接口地址(例子): a239p06512.zicp.vip/Web/BuAppJa…"+ip 用户端消息内容。 String msg ="你在干嘛呀?"; apikey参数。这个apikey就是网站上申请的APIKEY apikey =""; //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以) String ip =""; //这里一定要encode转换编码。转成GBK。 msg = URLEncoder.encode(msg, "GBK"); 三个参数全部小写 msg参数就是传输过去的对话内容。 msg参数要编码成gbk,不然会乱码。 接口具体代码: package ai.nlp.jiekou.test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import ai.nlp.util.changliang.ChangLiangZi; 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 ChangLiangZi.WU; } public static void main(String args []){ //三个参数全部小写 //msg参数就是传输过去的对话内容。 //msg参数要编码成gbk,不然会乱码。 String msg ="你在干嘛呀?"; //apikey参数。 String apikey ="UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV"; //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以) String ip ="127.0.0.1"; //这里一定要encode转换编码。转成GBK。 try { msg = URLEncoder.encode(msg, "GBK"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println(opUrl("a239p06512.zicp.vip/Web/BuAppJa…"+ip)); } }