从AlphaGo谈通用型人工智能设计
最近赢了人机大战的AlphaGo火了,火得一塌糊涂,圈里圈外,是人都在谈AlphaGo。但是AlphaGo毕竟是为特定场景特定应用设计的特定型人工智能,和通用型人工智能还是有很大差别,离人工智能普及更差得很远。所以这么说,是因为之前做过几个特定型人工智能项目(语音识别和图像识别类型的,合起来可以是视频识别,但是没做),有些体会,对特定型人工智能设计思路比较了解,近期一直在考虑通用型人工智能的事,现在已经开始做这件事。但是只是一个开始,很多东西还在琢磨、探索中,路能不能走通也是未知数。在此和大家说说,分享一下我们的设计思路,希望能抛砖引玉。
先从人工智能本身说起。人工智能是啥?就是让计算机拥有类似人的思维能力,怎么拥有呢?学习!现在这已经是共识,就是把一大堆数据输进计算机,借助大数据的存储计算能力,加上人对数据的分析理解,过滤掉里面的“噪音”,在大数据里形成一个相对准确的数据池。这个数据池,就成为计算机“思考”的源头。然后继续往里面加数据,这样数据池里的数据就会越来越多,计算机可以参考比较的内容也会越来越多,相应的分析判断能力就会越来越强,理论上,它就会越来越“聪明”。
这个过程好比老师教孩子。小孩受本身阅历限制,他的知识储备少,在成长过程中会接受错误信息,对某些问题不理解,或者对某些信息判断错误,老师在这时要及时发现纠正,灌输正确的知识,让孩子形成正确的认识。正确的东西学习重复多了,自然对错误的知识形成抗体,以后也不会再犯。
再说特定型人工智能。特定型人工智能和通用型人工智能相比,它是专门为某一个领域准备的。比如说这次人机大战的AlphaGo,它只思考下围棋的事,别的事不用管,那么做为它的老师,“真正的人”,只管向它输入各种围棋棋谱,给它建立一个分析模型,考虑对手落子之后,怎么根据这个落子下出正确的棋路。在这个过程中,它可能会下错,不过有老师在,老师会给它纠偏,慢慢它的棋艺就会越来越高。
相比之下,通用型人工智能就要复杂多了。因为我们面对的世界太庞大,上下五千年,东西两半球,小到柴米油盐,大到两次大战,啥事没发生过,还有人的各种感情问题,比如“你是风儿我是沙”这样卿卿我我的东西,让计算机能够理解,建立这样全方位的知识体系肯定难得多。
到这儿,就要说我们设想的这个东西了:自编程。自编程不是让人写代码,也不是让机器写代码(机器写代码N年前就有了,现在好象也没啥进展)。是让机器模仿人的意图,主动建立一套识别分析模型。在这套模型里,根据不同的录入内容,再进行细分,逐渐具体到一个个单项上。拿AlphaGo这件事来说,它只是世界上各种对弈棋类中的一种,在通用型人工智能这个大的模型框架下,是其中很小的一个子模型。
再打个比方,军坛里有很多人在讨论隐形飞机的事。这件事如果让机器做,那么应该这样处理:
1.建立一个飞机的识别分析模型。
2.在飞机的识别分析模型之下建立一个隐形飞机的识别模型。
3.向隐形飞机的识别分析模型里加注各种相关的数据。
如果有人问“世界上哪种隐形飞机最牛B”时,根据“最牛B”这个语义,找到和“隐形飞机”关联的数据进行计算。得分高的自然就牛B。开始可能会有错,那就调整关联参数进行纠偏。这个工作开始一般是人做,训练多了让机器识别判断自己做。人工智能很关键的“深度学习”、“自主学习”实际指的就是这个。以后随着越来多人问,正确答案会受到更多人肯定,关联参数的权重就要增加,达到一定比例后,把正确的保留,错误的取消掉。
这就是我们大体解决通用型人工智能的思路。归纳起来就是一个树形结构,先有“根”一级的识别分析模型,在“根”之下,有“子”一级识别分析模型,子还有“孙”,逐次递增,直到一个个具体单项。每一级识别分析模型都有各种属性与它建立关联。人机交互的时候,根据应用场景,与树形结构中的识别分析模型进行关联,找到最可能匹配的单项,再去寻找正确的答案。
如果把AlphaGo迁移到通用型人工智能下面,最少是这样一个层次结构:“棋-围棋-对弈”。AlphaGo将成为通用人工智能环境下的一个子集。以后李世石如果再找AlphaGo下棋,通用型人工智能将引导他到“对奕”下面。其实不只李世石,全世界的人都可以和AlphaGo搏杀,搞个万人对阵机器大赛,如果真有一天出现这个场景,那可比当年《棋王》里的王一生大战老者壮观多了去了!
扯远了,说正题!其实我们现在做通用型人工智能还是有很多困难。最大问题是要建立各种识别分析模型,还有在里面建立各种识别判断。而且每个识别分析模型的要求标准不一样,另外它们之间肯定有互通的地方,也有排斥的地方,这要建立很多关联,对它们精确定位,在计算的时候还在结合现实场景去理解和处理关联。统一规则肯定没法做到,比较靠谱的是针对几个相似的识别分析模型,做相对统一的规则,不过现在这个正在尝试中。
至于数据的存储计算问题,现在已经解决,我们有一个超强的大数据系统,PB、EB量级的数据,存储计算起来都已经在不在话下。目前已经是已经PB了。
总之我们做的通用型人工智能还是个框架,很多东西在摸索、探索中。有兴趣的兄弟可以交流,也希望哪位大神能给点提醒,来个突破!^_^!
从AlphaGo谈通用型人工智能设计的更多相关文章
- 【原创】NES第一波:如何用通用型6502宏汇编器,制用NES/FC游戏。
在163的博客关了呀.在这边重新开张了. 以后若网友有什么要长篇解答的问题,也在这儿作答. 作为第一波原创文章,我打算做一次小白示范.那就是一步一步的展示某个汇编编译器的用法. 一.科普 很多人认为程 ...
- 浅谈Hybrid技术的设计与实现第三弹——落地篇
前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...
- 浅谈Hybrid技术的设计与实现第二弹
前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...
- 浅谈Hybrid技术的设计与实现
前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发 ...
- (转)浅谈Hybrid技术的设计与实现
转载地址:https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hyb ...
- 城市经纬度 json 理解SignalR Main(string[] args)之args传递的几种方式 串口编程之端口 多线程详细介绍 递归一个List<T>,可自己根据需要改造为通用型。 Sql 优化解决方案
城市经纬度 json https://www.cnblogs.com/innershare/p/10723968.html 理解SignalR ASP .NET SignalR 是一个ASP .NET ...
- 泛型理解及应用(二):使用泛型编写通用型Dao层
相信目前所有的IT公司网站在设计WEB项目的时候都含有持久层,同样地使用过Hibernate的程序员都应该看过或者了解过Hibernate根据数据库反向生成持久层代码的模板.对于Hibernate生成 ...
- 【转】AlphaGo Zero 和强人工智能
AlphaGo Zero 和强人工智能 前段时间比较热门的是 AlphaGo(阿法狗)的升级版:AlphaGo Zero(阿法狗零).跟阿法狗不同,阿法狗零不依赖于任何人类对弈记录,完全从围棋的规则出 ...
- 浅谈Hybrid技术的设计与实现【转】
https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术 ...
随机推荐
- HTML 段落
可以把 HTML 文档分割为若干段落. HTML 段落 段落是通过 <p> 标签定义的. 实例 <p>This is a paragraph</p> <p&g ...
- 剑指offer系列30-----删除链表中重复的节点
[题目]在一个排序的链表中,存在重复的结点, * 请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. * 例如,链表1->2->3->3->4->4->5 ...
- android学习笔记25——事件处理Handler
Handler消息传递机制 ==> android消息机制是另一种形式的“事件处理”,这种机制主要是为了解决android应用的多线程问题. ——android平台不允许Activity新启动的 ...
- NotifyIcon用法
-------------------控件NotifyIcon-----------//客户端调用 private void btnShowError_Click(object sender, Eve ...
- memcache 永久数据被踢
1.memcache的slab chunk 就像公交车的坐位一样,有大小之分,还有活跃的状态. 2.代码 index.php -->插入数据,注意$value的大小和重复次数,跟chunk和其数 ...
- VirtualBox 下USB 设备加载的步骤及无法加载的解决办法
1. 将u盘插入电脑,在windows能够识别后,进入VirtualBox的选定要加载的虚拟机,选择设置——>选择usb设备项 2. 选择右边的第一或者是第二个图标,增加一个新的筛选器,第一个图 ...
- SVN学习之参数定义及设置
http://jackyrong.iteye.com/blog/238835 conf目录中打开svnserve.conf ,去掉注释,搞成如下这样 [general] anon-access = r ...
- SparkSQL的解析详解
SparkSQL继承自Hive的接口,由于hive是基于MapReduce进行计算的,在计算过程中大量的中间数据要落地于磁盘,从而消耗了大量的I/O,降低了运行的效率,从而基于内存运算的SparkSQ ...
- poj 2567 Code the Tree 河南第七届省赛
Code the Tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2350 Accepted: 906 Desc ...
- HttpClient和HttpURLConnection整合汇总对比
性能 1.HttpUrlConnection直接支持GZIP压缩:HttpClient也支持,但要自己写代码处理. 2.HttpUrlConnection直接支持系统级连接池,即打开的连接不会直接关闭 ...