热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

人工智能离真正的智能还很漫长[python头条资讯]

人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统

简介

在跟非IT行业的朋友解释人工智能总是一个比较费劲的事情,他们对这块也有比较大的误区,本人虽然不是什么知名人士,但也从事过一段时间相关内容的学习与研究,本篇文章就尝试从较高的层面去讨论一下人工智能以及它目前的局限。

我会以我比较擅长的NLP(自然语言处理)领域作为例子,下面都是我个人观点,如有不对,还请斧正。

当前人工智能的本质

我们常说的人工智能通常指的是深度学习,因为近年大数据的兴起,让深度学习大展拳脚,但深度学习「理论层面的东西并没有大的突破」,依旧是旧的东西,本质依旧是概率论与统计学。

这里以微软小冰、苹果Siri这些智能助手为例,它们的技术原理其实都是对话系统+语音识别。当我们说一句话给小冰时,小冰此时做了什么?

小冰接收到这句话时,首先会进行语音识别,所谓语音识别就是利用它此前训练好的概率模型,计算这些语音数据对应了哪些文字,然后再进行对话预测,即这些文字下一句出现概率最大的文字是哪些,「小冰本身并没有理解我说的话,它只是通过计算概率给出回答」。

训练一个可以商用的聊天机器需要很多工程技巧的支撑,但本质就是概率模型这么回事,我们可以从微博上、从论坛上爬取大量的语料数据,这些数据是我们正常人类在网上留下的,进行复杂的预处理后,得到训练数据,而训练大致就是从这些数据中找到文字之间的规律。

举个例子,比如一个100T的语料中,出现了很多次「快来关注HackPython」这句话,那么模型就会记住「关注」这个词后大概率要接「HackPython」,但模型并没有理解这句话,它并不知道「HackPython」是一个公众号,并不知道「快来关注」是一种宣传表述,它知道的就只有概率。

NLP领域中,无论是「LSTM」、「GRU」,还是「注意力机制」,亦或是当前比较热门的「知识图谱」,都是基于文本在玩概率游戏,不同的方式只是在使用训练数据的信息时不同。

当前所有知名模型的本质都是如此,通过矩阵运算训练数据来获得某种概率分布,复杂模型的概率分布通常是高维的,这里又会引申出各种数学方法,如测度论、流形,但本质的思想依旧是想通过概率分布来描述训练数据的特征。有了这些,对于同类的数据,就可以使用相同的概率分布去描述,从而实现所谓的「识别」。

获得了概率分布后,其实还有问题缠绕着我们,如:为什么会训练出这样的概率分布?

这块对我们来说依旧是黑盒,我们也不知道这些数据通过这种模型训练后,为什么是这样的概率分布,即不可解释。

不可解释性的问题让深度学习在某些领域的使用受到一定的障碍,如金融领域,模型说这样投,大概率赚钱,但你无法严格的去证明这个结论的可靠性,只能直观的去解释,这就会让人犹豫,毕竟可能损失大量金钱。

同样的,自动驾驶也受到模型不可解释带来的困扰,自动驾驶依赖于图像识别技术。通过大量数据训练出的图像识别模型虽然有很高的识别率,但依旧存在问题,这点从「对抗攻击」领域的研究可以看出,当我们改变图像中少量的数据,图像识别模型就无法识别或识别错误。因为我们无法从数据层面去解释图像识别模型的概率分布,所以不清楚它在什么情况会失效。

识别与理解的差异

通过前面的讨论,可以知道,目前的深度学习做到的是「识别」,如语言识别、图像识别等,而并没有做到「理解」,这点从NLP领域可以很直观的看出,最智能的对话系统表现的依旧强差人意。

我们通过大量的数据的训练,在「识别」上已经有了不错的效果,这些效果已经可以产生很大的作用,比如人脸识别用于安检领域、车牌识别用于交通系统等等,「但关于理解的工作可能才刚刚开始」。

人工智能并不像我们想象的那么智能,无论是多么大的公司,推出多么先进的框架,什么自动调参、什么自动学习等牛逼的功能,本质都是如此,先进的框架只是让我们更快、更好的获得可以描述数据特征的概率分布,而这些概率分布并不能实现「理解」。

我们思考一下,人类是怎么做到「理解」的?

我们「理解」某个东西,通常指知道其背后抽象的概念,如「苹果」这个词,当我们看到这个词时,脑中会浮现出「苹果」相关的信息,这些信息并不来自「苹果」这个词,而是来自我曾经经历的生活,这些生活给了我们相应的背景知识,而这些背景知识让我们可以理解「苹果」这个词。

这些背景知识我们是怎么得到的?目前也还在研究。

这让很多学者开始质疑当前深度学习的研究路径是否正确,这里给出一个著名的讨论来展现当下我们训练模型的方式与自然界中真正学习方式的巨大差异。

日本的街头有很多乌鸦,研究人员发现这些乌鸦会偷坚果来吃,但乌鸦本身无法破开坚果的壳,那它们是怎么吃到坚果果肉的呢?它们在电线杆上观察十字路口的红绿灯,当红灯的时候,将坚果放在马路上,然后飞走,等绿灯,绿灯时,车流走过,将坚果果壳碾碎,当下次红灯时,乌鸦再飞过去悠闲的吃其中的果肉。

这件普通的事情表现了生物的学习其实只需要简单的观察就可以习得某个技能,这与深度学习学习方式完全不同,深度学习会利用大量的数据,然后反复的训练试错,使用试错获得的损失,利用梯度下降与反向传播的算法去更新模型,最终得到可以描述数据特征的概率分布,而乌鸦没有那么多命去试错,也没有那么多时间去试错。

可以说,乌鸦通过少量的观察「理解」了红绿灯的规律,而深度学习获得的模型无法做到。

自然界生物的学习方式与当前深度学习主流的学习方式之间具有的差异难以不让人疑惑。

莫拉维克悖论

1980 年汉斯・莫拉维克提到:要让电脑如成人般地下棋是相对容易的,但是要让电脑有如一岁小孩般的感知和行动能力却是相当困难甚至是不可能的。这便是著名的莫拉维克悖论(Moravec's paradox),这个悖论在当下依旧适用,简单而言,「困难的问题是简单的,简单的问题是困难的」是当下人工智能的处境。

对计算机而言,实现逻辑推理、数学运算等人类高级智慧只需要相对很少的计算能力,而实现感知、运动等低等级智慧却需要巨大的计算资源,这刚好与人类相反,对于感知、运动等,我们自身并不用费多少脑子就可以做好,而逻辑推导、数学计算这类问题却需要思考很久。

如何让人工智能具有「理解」能力?如何让人工智能对真实世界有基本的背景知识与反应?

当这两个问题解决了,我们才需要开始担心,人类会不会被人工智能取代。

但,深度学习带来的对数据特征的描述能力已经可以对一些职业产生致命的冲击,如工厂的工人,加了图像识别的机械臂可以很好的代替工人的大部分工作。

如果你担心一种技术或某件事情会对自己的产生影响,最好的方法就是去了解它,弄明白它的原理,而不是看各种媒体文章,他们只能扰乱视线,增加游戏难度。知道原理后,无知带来的担忧就会消散,自己也可以做出相应的调整。

文章虽然主要从NLP的角度去讨论问题,但这些现象存在于不同的领域,如图像处理、强化学习等。

最后,感谢阅读。

来源:PY学习网:原文地址:https://www.py.cn/article.html


推荐阅读
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文探讨了Python类型注解使用率低下的原因,主要归结于历史背景和投资回报率(ROI)的考量。文章不仅分析了类型注解的实际效用,还回顾了Python类型注解的发展历程。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 深入了解Python中的函数定义
    本文详细探讨了Python中函数定义的核心概念,包括基本语法、不同类型的函数参数、递归函数、闭包以及匿名函数等,旨在帮助读者全面掌握Python函数的应用。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
author-avatar
php学者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有