最近,我常说人工智能的寒冬快要来了,提醒业界要做好思想准备,但同时我也说:冬天来了,春天就不会远了……
6月我写了篇文章《深度学习的问题究竟在哪?》,说到深度学习的一个主要问题是,必须用大量数据集中进行训练和学习,有点类似我们人类在学校的学习,但却不能像我们人还可以在日常生活中去持续学习。
“因为我们人类自诞生以来,就在进行日常学习,这种学习也使我们从原始人发展成为文明人,使我们发明了文字、纸张、书籍、学校等等,也就是说直到有了学校或其最初的形式,才有了第二种学习。其实更准确地说,在我们还没有成为人,还是动物,甚至只是个单细胞的时候,这种学习就在进行了。
所以智能在学校学习出现之前很早就有了,如果说学习产生了智能,那么这个学习无疑是日常学习,而非学校中的那种集中训练,学校学习只是让这种智能更加提高而已。
至此,事情就明白了,深度学习之所以不能有更高智能的原因很可能在这里,也就是说它只能集中大量数据突击学习,而不能在日常应用中进行点点滴滴的学习。”
“这首先带来的问题就是应变能力不够,我们人随时随地都在学习,能够从第一次遇到的事件中学习经验、教训,并即刻将其用到之后的经历中。”
“其次就是小数据问题,……你只要碰上一次,便会学习到类似情况的应对,……但深度学习就必须用大量数据学习之后才能做到。”
也就是说,没有这种在日常生活中的持续学习能力,机器是不可能具有真正的人工智能,即不可能实现强人工智能,或通用人工智能。
业界的专家想必也都看到了这一问题所在,开始进行这方面的研究和探索。比如谷歌旗下着名的人工智能公司DeepMind,对,就是那个搞出AlphaGo在围棋上碾压人类的家伙,开发出Progressive Neural Networks(可进步神经网络)和Elastic Weight Consolidation(灵活权重综合),还有诸如伦敦玛丽女王大学的PathNet(路径网络)、罗彻斯特理工学院的FearNet(恐惧网络,呃,不太明白这里的“恐惧”是啥意思,可能是缩写)。
这些系统主要采用两种方法,一种是用一个新的神经网络去应对新问题(可进步神经网络、路径网络、恐惧网络);另一种是根据新问题对原有神经网络进行修改,使其对新、老问题都适合(灵活权重综合,恐惧网络似乎也部分采用了此方法)。
很显然,这些系统并没有真正解决问题,因为它们都还停留在原有的思路上,当有新的问题出现,仍然是采用原有的深度学习方法,再次使用大量数据集中进行训练和学习。这就类似我们人类,在遇到某个比较深奥、复杂的新东西需要学习时,比如想学人工智能,就去参加某个培训班进行再学习,实际上这还是“学校学习”。这种学习其实应该叫作“增量学习”,它和“持续学习”是不同概念。
认知智能未来机器人接口API简介介绍、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。
接口申请官网地址:
·
接口地址(例子):
·
http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+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 .HttpURLConnection;
·
import .URL;
·
import .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("http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip));
·
}
·
}
·