一切福田,不離方寸,從心而覓,感無不通。

Category Archives: AI

流行AI框架和库的优缺点比较

摘要: 不知道自己应该选用那个AI框架和库?看看本文就行了,本文为AI开发的工程师们梳理了现在最流行的框架,并简单的分析了它们的优缺点。 人工智能已经存在很长时间,然而,由于这一领域的巨大发展,近年来它已成为一个流行语。人工智能曾经被称为一个书呆子和天才领域,但由于各种库和框架的发展,它已成为一个友好的IT领域,更多的人开始了他们的人工智能之旅。 在这篇文章中,我们将研究人工智能的高质量库的优点和缺点,以及它们的一些特点。 1. TensorFlow “使用数据流图计算进行机器学习” 语言:C ++或Python。 当你进入AI时,你会听到的第一个框架之一就是Google的TensorFlow。TensorFlow是一个使用数据流图进行数值计算的开源框架。这个框架被称为具有允许在任何CPU或GPU上进行计算的架构,无论是台式机,服务器还是移动设备,另外这个框架在Python编程语言中是可用的,这也是Python大火的原因。 TensorFlow是通过称为节点的数据层进行排序,并根据获得的信息做出决定。 优点: 使用易于学习的语言(Python)。 使用计算图抽象。 可以使用可视化的TensorBoard。 缺点: 它很慢,因为Python不是编程语言中最快的。 缺乏许多预先训练的模型。 不完全开源。 2.CNTK “开源深度学习工具包”。 语言:C ++。 我们可以称之为它是微软对Google的TensorFlow的回应。 微软的CNTK是一个增强分离计算网络模块化和维护的库,它提供了学习算法和模型描述。在需要大量服务器进行操作的情况下,CNTK可以同时利用多台服务器。 据说它的功能与Google的TensorFlow相近,但是,它更快,在这里了解更多。 优点: 非常灵活。 允许分布式培训。 支持C ++,C#,Java和Python。 缺点: 它以一种新的语言——Network Description Language(NDL)来实现。 缺乏可视化。 3. Theano “数值计算库” 语言:Python。 Theano是TensorFlow的强有力竞争者,它是一个功能强大的Python库,允许以高效率的方式进行多维数组的数值操作。 该库透明地使用GPU来执行数据密集型计算而不是CPU,因此操作效率很高。出于这个原因,Theano已经被用于为大规模的计算密集型操作长达十年的时间。然而,于二零一七年九月, Theano的1.0版本停止。 但这并不意味着它不再是一个强大的图书馆,你仍然可以随时进行深入的学习研究。 优点: 优化CPU和GPU。 有效的计算任务。 缺点: 与其他库相比,原生Theano有点低级。 需要与其他库一起使用以获得高度的抽象。 AWS使用它上有点bug。 4. Caffe “快速,开放的深度学习框架” 语言:C ++。 Caffe是一个强大的深度学习框架,像这个清单上的其他框架一样,深度学习的研究速度非常快。 借助Caffe,你可以非常轻松地构建用于图像分类的卷积神经网络(CNN)。Caffe在GPU上运行的也很不错,这有助于在运行期间提高速度。 Caffe主类: 优点: Python和MATLAB都可用。 表现的很好。 无需编写代码即可进行模型的训练。 缺点: 对于RNN网络不太友好。 对于新体系结构不太友好。 5. Keras “为人类普及深度学习” 语言:Python。 Keras是一个用Python编写的开源的神经网络库。与TensorFlow,CNTK和Theano不同,Keras并不意味着是一个端到端的机器学习框架。 相反,它作为一个接口,提供了一个高层次的抽象,这使得神经网络的配置变得简单,无论它坐在哪个框架上。 谷歌的TensorFlow目前支持Keras作为后端,而微软的CNTK也会在很短的时间内做到这一点。 优点: 它对用户非常友好。 它很容易扩展。 在CPU和GPU上无缝运行。 与Theano和TensorFlow无缝工作。 缺点: 不能有效地用作独立的框架。 6.Torch “一个开源的机器学习库” 语言:C. Torch是一个用于科学和数字操作的开源机器学习库。 这是一个基于Lua编程语言的库而不是Python。 它通过提供大量的算法,使得深度学习研究更容易,并且提高了效率和速度。它有一个强大的N维数组,这有助于切片和索引等操作。它还提供了线性代数程序和神经网络模型。 优点: 非常灵活。 高水平的速度和效率。 大量的预训练模型可用。 […]

龙生   17 Oct 2019
View Details

数据挖掘,机器学习,和人工智能的区别

数据挖掘 (data mining): 有目的地从现有大数据中提取数据的模式(pattern)和模型(model) 关键字:模式提取,大数据 数据挖掘是从现有的信息(existing information)中提取数据的模式(pattern)和模型(model),即精选出最重要的信息,以用于未来机器学习和AI的数据使用。其核心目的是找到数据变量之间的关系。其发展出来的主要原因是大数据的发展,用传统的数据分析的方式已经无能处理那么多大量的看似不相关的数据的处理,因此需要数据挖掘技术去提取各种数据和变量之间的相互关系,从而精炼数据。 数据挖掘本质上像是机器学习和人工智能的基础,他的主要目的是从各种各样的数据来源中,提取出超集(superset)的信息,然后将这些信息合并让你发现你从来没有想到过的模式和内在关系。这就意味着,数据挖掘不是一种用来证明假说的方法,而是用来构建各种各样的假说的方法。数据挖掘不能告诉你这些问题的答案,他只能告诉你,A和B可能存在相关关系,但是它无法告诉你A和B存在什么相关关系。 当然,数据挖掘会使用大量机器学习的算法,但是其特定的环境和目的和机器学习不太一样。   机器学习(machine learning): 自动地从过往的经验中学习新的知识。 关键字: 自动化,自我优化,预测,需要training data,推荐系统 机器学习其实是人工智能很重要的一部分,因为目前,在实践过程中,大多数的人工智能处理的任务,其实是用机器学习的方式完成的。机器学习可以用程序和算法自动地学习,只要被设计好了,这个程序可以进行自我优化。同时,机器学习需要一定数量的训练数据集(training data set),用于构建来自过往经验的“知识” 。 且机器学习目前在实践中最重要的功能便是预测结果。比如机器学习已经学习结束了,现在有一个新的数据集x,需要预测其分类,机器学习算法会根据这个新数据与学习后的“知识”相匹配(实际上,知识指的是学习后的数学模型),然后将这个数据集x分类某类C去。再比较常见的机器学习,比如amazon的推荐系统。   人工智能(AI): 一个广泛的概念,本质是用数据和模型去为现有的问题(existing problems)提供解决方法(solutions). 关键字:和人一样处理问题,技术的合集 人工智能是一个与机器学习和数据挖掘相对不同的概念,人工智能的目的是为了去创造有智力的电脑(不知道怎么翻译好,可以假设其为机器人)。在实践中,我们希望这个电脑可以像有智力的人一样处理一个任务。因此,理论上人工智能几乎包括了所有和机器能做的内容,当然也包括了数据挖掘和机器学习的内容,同时还会有监视(monitor)和控制进程(process control)的内容。   from:https://blog.csdn.net/horacehe16/article/details/80202826

龙生   17 May 2019
View Details

TensorFlow

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。 TensorFlow可被用于语音识别或图像识别等多项机器学习和深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。

龙生   07 Apr 2018
View Details