博舍

什么是人工智能 (AI) 最新的人工智能框架是什么意思

什么是人工智能 (AI)

虽然在过去数十年中,人工智能(AI)的一些定义不断出现,但JohnMcCarthy在2004年的文章 (PDF,127KB)(链接位于IBM外部)中给出了以下定义:"它是制造智能机器,特别是智能计算机程序的科学和工程。AI与使用计算机了解人类智能的类似任务有关,但不必局限于生物可观察的方法"。

然而,在这个定义出现之前数十年,人工智能对话的诞生要追溯到艾伦·图灵(AlanTuring)于1950年出版的开创性作品"计算机器与智能"(PDF,89.8KB)(链接位于IBM外部)。在这篇论文中,通常被称为“计算机科学之父”的图灵提出了以下问题:“机器能思考吗?” 他在这篇文章中提供了一个测试,即著名的“图灵测试”,在这个测试中,人类询问者试图区哪些文本响应是计算机做出的、哪些是人类做出的。虽然该测试自发表之后经过了大量的审查,但它仍然是AI历史的重要组成部分,也是一种在哲学中不断发展的概念,因为它利用了有关语言学的想法。

StuartRussell和PeterNorvig随后继续发表了“人工智能:一种现代方法 ”(链接位于IBM外部),成为AI研究方面的重要教材之一。在这本书中,他们深入探讨了AI的四个潜在目标或定义,基于理性、思考和行动来区分计算机系统:

人类方法:

像人类一样思考的系统像人类一样行动的系统

理想方法:

理性思考的系统理性行动的系统

艾伦·图灵的定义可归入"像人类一样行动的系统"类别。

以最简单的形式而言,人工智能是结合了计算机科学和强大数据集的领域,能够实现问题解决。它还包括机器学习和深度学习等子领域,这些子领域经常与人工智能一起提及。这些学科由AI算法组成,这些算法旨在创建基于输入数据进行预测或分类的专家系统。

目前,仍有许多围绕AI发展的炒作,市场上任何新技术的出现都会引发热议。正如Gartner在其hypecycle技术成熟度曲线(链接位于IBM外部)中指出的那样,自动驾驶汽车和个人助理等产品创新遵循“一个典型的创新周期,从欲望膨胀到期望幻灭、到最终了解创新在市场或领域中的相关性和作用。”正如LexFridman在2019年麻省理工学院演讲中指出的那样(01:08:15)(链接位于IBM外部),我们正处于欲望膨胀高峰期,接近幻灭的谷底期。 

随着对话围绕AI的伦理道德展开,我们可以开始看到幻灭谷底初见端倪。如想了解更多关于IBM在AI伦理对话中的立场,请阅读这里了解更多信息。

10个最佳的人工智能开发框架和AI库

编辑推荐:本文主要讲解了10个人工智能开发框架和AI库分别是什么及优缺点。本文来自于云+社区,由火龙果软件Anna编辑、推荐。

人工智能(AI)已经存在很长时间了。然而,由于这一领域的巨大进步,近年来它已成为一个流行语。人工智能曾经被称为一个完整的书呆子和天才的领域,但由于各种开发库和框架的发展,它已经成为一个友好的IT领域,并有很多人正走进它。

在这篇文章中,我们将研究用于人工智能的优质库,它们的优缺点以及它们的一些特征。让我们深入并探索这些人工智能库的世界!

1.TensorFlow

“使用数据流图表的可伸缩机器学习的计算”

语言:C++或Python。

当进入AI时,你会听到的第一个框架之一就是Google的TensorFlow。

TensorFlow是一个使用数据流图表进行数值计算的开源软件。这个框架被称为具有允许在任何CPU或GPU上进行计算的架构,无论是台式机、服务器还是移动设备。这个框架在Python编程语言中是可用的。

TensorFlow对称为节点的数据层进行排序,并根据所获得的任何信息做出决定。点击查看详情!

优点:

使用易于学习的语言(Python)。

使用计算图表抽象。

用于TensorBoard的可用性的可视化。

缺点:

这很慢,因为Python不是语言中最快的。

缺乏许多预先训练的模型。

不完全开源。

2.MicrosoftCNTK

“开源深度学习工具包”

语言:C++。

我们可以称之为微软对Google的TensorFlow的回应。

微软的计算网络工具包是一个增强分离计算网络模块化和维护的库,提供学习算法和模型描述。

在需要大量服务器进行操作的情况下,CNTK可以同时利用多台服务器。

据说它的功能与Google的TensorFlow相近;但是,它会更快。在这里了解更多。

优点:

这是非常灵活的。

允许分布式训练。

支持C++、C#、Java和Python。

缺点:

它以一种新的语言――网络描述语言(NetworkDescriptionLanguage,NDL)来实现。

缺乏可视化。

3.Theano

“数值计算库”

语言:Python。

Theano是TensorFlow的强有力竞争者,是一个功能强大的Python库,允许以高效率的方式进行涉及多维数组的数值操作。

Theano库透明地使用GPU来执行数据密集型计算而不是CPU,因此操作效率很高。

出于这个原因,Theano已经被用于为大规模的计算密集型操作提供动力大约十年。

然而,在2017年9月,宣布Theano的主要开发将于2017年11月发布的1.0版本后停止。

这并不意味着它是一个不够强大的库。你仍然可以随时进行深入的学习研究。在这里了解更多。

Theano

data-intensivecomputations

优点:

正确优化CPU和GPU。

有效的数字任务。

缺点:

与其他库相比,原生Theano有点低级。

需要与其他库一起使用以获得高度的抽象化。

AWS上有点bug。

4.Caffe

“快速、开源的深度学习框架”

语言:C++。

Caffe是一个强大的深度学习框架。

像这个清单上的其他框架一样,深度学习的研究速度非常快。

借助Caffe,您可以非常轻松地构建用于图像分类的卷积神经网络(CNN)。Caffe在GPU上运行良好,这有助于在运行期间提高速度。查看主页获取更多信息。

Caffe主要的类有:

mainclasses

优点:

Python和MATLAB的绑定可用。

性能表现良好。

无需编写代码即可进行模型的训练。

缺点:

对于经常性网络不太好。

新体系结构不太好。

5.Keras

“人类的深度学习”

语言:Python。

Keras是一个用Python编写的开源的神经网络库。

与TensorFlow、CNTK和Theano不同,Keras不是一个端到端的机器学习框架。

相反,它作为一个接口,提供了一个高层次的抽象化,这使得无论它坐落在哪个框架上,神经网络的配置都会变得容易。

谷歌的TensorFlow目前支持Keras作为后端,而微软的CNTK也会在很短的时间内做到这一点。在这里了解更多。

优点:

它是用户友好的。

它很容易扩展。

在CPU和GPU上无缝运行。

与Theano和TensorFlow无缝工作。

缺点:

不能有效地用作独立的框架。

6.Torch

“一个开源的机器学习库”

语言:C。

Torch是一个用于科学和数字操作的开源机器学习库。

这是一个基于Lua编程语言而非Python的库。

Torch通过提供大量的算法,使得深度学习研究更容易,并且提高了效率和速度。它有一个强大的N维数组,这有助于切片和索引等操作。它还提供了线性代数程序和神经网络模型。点击查看详情!

优点:

非常灵活。

高水平的速度和效率。

大量的预训练模型可用。

缺点:

不清楚的文献记录。

缺乏即时使用的即插即用代码。

它基于一种不那么流行的语言――Lua。

7.Accord.NET

“机器学习、计算机视觉、统计和.NET通用科学计算”

语言:C#。

这是专为C#程序员设计的。

Accord.NET框架是一个.NET机器学习框架,使音频和图像处理变得简单。

这个框架可以有效地处理数值优化、人工神经网络,甚至可视化。除此之外,Accord.NET对计算机视觉和信号处理的功能非常强大,同时也使得算法的实现变得简单。检查主页面。

优点:

它有一个强大而积极的开发团队。

非常有据可查的框架。

质量可视化。

缺点:

不是一个非常流行的框架。

比TensorFlow慢。

8.SparkMLlib

“可扩展的机器学习库”

语言:Scala。

Apache的SparkMLlib是一个非常可扩展的机器学习库。

它非常适用于诸如Java、Scala、Python,甚至R等语言。它非常高效,因为它可以与Python库和R库中的numpy进行互操作。

MLlib可以轻松插入到Hadoop工作流程中。它提供了机器学习算法,如分类、回归和聚类。

这个强大的库在处理大型数据时非常快速。

优点:

对于大规模数据处理非常快速。

提供多种语言。

缺点:

陡峭的学习曲线。

即插即用仅适用于Hadoop。

9.Sci-kitLearn

“用Python的机器学习”

语言:Python。

Sci-kitlearn是一个非常强大的机器学习Python库,主要用于构建模型。

使用numpy、SciPy和matplotlib等其他库构建,对统计建模技术(如分类、回归和聚类)非常有效。

Sci-kitlearn带有监督学习算法、无监督学习算法和交叉验证等功能。点击查看详情!

优点:

许多主要算法的可用性。

有效的数据挖掘。

缺点:

不是构建模型的最佳选择。

GPU效率不高。

10.MLPack

“可扩展的C++机器学习库”

语言:C++。

MLPack是一个用C++实现的可扩展的机器学习库。因为它是用C++编写的,所以你可以猜测它对于内存管理是非常好的。

MLPack以极高的速度运行,因为高质量的机器学习算法与库一起出现。这个库是对新手友好的,并提供了一个简单的API使用。点击查看详情!

优点:

非常可扩展。

Python和C++绑定可用。

缺点:

不是最好的文献记录。

人工智能

文章目录框架理论框架的基本结构框架的表示实例框架框架系统框架之间的纵向联系框架之间的横向联系框架理论

框架理论认为,我们对世间事物的认识都是以类似框架的结构存储在记忆中的。当遇到一个新事物就从记忆中找出一个合适的框架,并根据新的情况对齐细节加以修改、补充,从而形成对这个新事物的认识。

用以往经验来认识新事物使人们常用的方法,但是我们又不可能把过往发生过的所有经验都存在脑海中,而只能用一种通用的数据结构吧它们存储起来,当新情况发生的时候只需把新的数据添加到已有的通用数据结构中便可以实例化一个具体的实体。这种通用数据结构就是框架。

框架理论中,框架是知识的基本单位,把一组有关的框架连接起来便可以形成一个框架系统。

框架的基本结构

框架通常有描述事物各个方面的若干槽(slot)组成,每一个槽也可以根据实际情况拥有若干个侧面(aspect),每一个侧面又可以拥有若干个值(value)。

在框架系统中每个框架都有自己的名字,称为框架名,每个槽跟侧面也都有自己的名字。

例如:

这个框架共有10个槽,分别描述一个硕士生在姓名,性别,年龄等10个方面的情况。其中性别这个槽的第二个侧面是默认值(default)。

该框架中的每个槽或侧面都给出了相应的说明信息,这些说明信息用来指出填写槽值或侧面值时的一些格式限制。

单位(unit):用来指出填写槽值或侧面值时的书写格式,例如姓名槽应先写姓后写名范围(Area):用来指出所填的槽值仅能在指定的范围内选择默认值(default):用来指出当相应槽没填入槽值时,以其默认值作为槽值。尖括号’’:表示由它括起来的是框架名。

框架中给出这些说明信息,可以使框架的问题描述更加清楚,但这些信息不是必须,也可以进一步简化,省略以上说明并直接放置槽值或侧面值也可以。

框架的表示

当只是的结构比较复杂时,往往需要多个相互联系的框架来表示。

例如上面的硕士框架可以用学生框架和新的硕士框架来表示,其中新的这个硕士框架是学生框架的子框架。

学生框架描述所有学生的共性,硕士框架描述硕士生的个性,并继承学生框架的所有属性。

学生框架:

硕士框架:

在硕士框架中使用了一个系统预定义槽名AKO。所谓系统预定义槽名,是指框架表示法中事先定义好的可公用的一些标准槽名。

框架的继承,通常由框架中设置的三个侧面:Default、If-needed、If-Added来组合实现:

If-needed:当某个槽不能提供统一的默认值时,可在该槽增加一个If-needed侧面,系统通过调用该侧面提供的过程产生相应的属性值If-added:当某个槽值变化会影响到其他槽时,需要在该槽增加一个If-added侧面,系统通过调用该侧面提供的过程去完成对其相关槽后继处理。实例框架

当把一个学生的具体情况填入硕士框架之后,就可得到一个实例框架。

在这个实例框架中,用到了一个系统预定义槽名ISA,表示这个实例框架是硕士框架的实例。

框架系统

框架之间的纵向联系

纵向联系是通过定义槽名AKO、ISA来实现的。

框架之间的横向联系

一个框架的槽值或侧面值可以是另外一个框架的名字,这就在框架之间建立了横向联系。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇