摘要:5月29日,Science刊登了一篇标题为“人工智能某些领域的核心进展一直停滞不前”的文章,在文章里,作者Matthew Hutson提到:一些多年之前的“老算法”如果经过微调,其性能足以匹敌当前的SOTA(编者注:得分最高的算法)。
所有的分析结果主要有两种:1、研究员声称的核心创新只是对原算法的微改进;2、新技术与多年前的旧算法在性能上相差不大。
具体到技术层面,论文对比分析的AI建模方法包括:神经网络剪枝、神经网络推荐算法、深度度量学习、对抗性训练、语言模型。
他们通过对比81相关篇论文,并在对照条件下对数百个模型进行修剪后,明显发现神经网络剪枝这一领域并没有标准化的基准和指标。换句话说,当前最新论文发表的技术很难进行量化,所以,很难确定该领域在过去的三十年中取得了多少进展。
对当前排名靠前的几种推荐算法进行了系统分析,发现近几年顶会中提出的18种算法,只有7种能够合理的复现。还有另外6种,用相对简单的启发式方法就能够胜过。剩下的几种,虽然明显优于baselines,但是却打不过微调过的非神经网络线性排名方法。
研究员声称近十三年深度度量学习(deep metric learning) 领域的目前研究进展和十三年前的基线方法(Contrastive, Triplet) 比较并无实质提高。
研究员一共指出了现有文献中的三个缺陷:不公平的比较、通过测试集反馈进行训练、不合理的评价指标。
近期的很多研究都声称他们的对抗训练算法比投影梯度下降算法要好的多,但是经过研究发现,几乎所有最近的算法改进在对抗性训练上的性能改进都可以通过简单地使用“提前停止”来达到。(编者注:所谓“提前停止”,即不进行那么多的训练,换句话说,人们用了各种办法想去解决问题,实际上少训练一些就解决了。)
作者通过大规模的自动黑箱超参数调优,重新评估了几种流行的体系结构和正则化方法,得出的一个结论是:标准的LSTM体系结构在适当的正则化后,其性能表现优于“近期”的模型。(编者注:老办法还是最好的。)
点评:这样的事实说明了几个问题:
1、业界的浮燥,只是为了达到一个好看的分数,有一篇看起好像很厉害的论文,根本不管其算法在实际应用中是否有效,因为文中所说的很多问题,离开特定的数据,放到实际应用中去检验,立马就能现出原形。
2、总是去追捧那些看上去高大上、深奥、复杂的方法,总觉得只有这样的方法,用了很多的数学公式、方程,才称得上是高水平的研究和成果。我们忘了初心,那就是用尽量简单的方法去解决复杂问题,因此会闹出“提前停止”这种笑话,做了一大堆复杂的事情,结果还不如“少做一点”。不由得让人又想起那个段子,要花上百万设计出机械手去抓取生产线上的空香皂盒,结果用一台风扇放在生产线旁一吹就解决了。是时候仔细想想了,我们大脑真的是用那些复杂的数学方程在解决问题吗?
3、人工智能、机器学习、深度学习真的是顶到天花板了,在原有基础上小修小补已经解决不了问题,把测试分数提高1%、2%实在是没有什么意义了。现在需要的是革命性的突破,需要一种全新的、与深度学习具有本质不同的方法。所谓本质不同,就是深度学习不管多深奥、测试分数多高,都不能解决机器的认知问题,即机器无法知道大千世界及其各种事物的意义,不知道面包可以吃,人要生存必须吃东西,面包可以让人活下去……没有这样的认知,机器永远不可能有高水平的智能。而新的方法,必须在机器认知上向前迈进一步,这或许是非常困难的,但也很有可能如上面所说,其实并不是不可逾越,甚至可能是比较简单的,只需要我们转变一下观念,或许就会柳暗花明……
认知智能未来机器人接口API简介介绍
- 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。
接口申请官网地址:www.weilaitec.com
接口地址(例子):
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 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("http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip));
}
}