当前位置: 首页 > 科技观察

民间机器学习四大开源框架盘点

时间:2023-03-16 21:32:32 科技观察

1.TheanoTheano是深度学习框架的鼻祖。它的开发始于2007年,早期开发人员包括传奇人物YoshuaBengio和IanGoodfellow。Theano基于Python,是一个擅长处理多维数组的库(在这方面它类似于NumPy)。当与其他深度学习库结合使用时,它非常适合数据探索。它旨在对深度学习中的大规模神经网络算法执行操作。其实可以更好理解为数学表达式的编译器:用符号语言定义你想要的结果,框架会编译你的程序在GPU或CPU上高效运行。它和后来出现的Tensorflow的功能非常相似(或者应该说Tensorflow类似于Theano),所以经常把两者放在一起比较。它们本身都是低级的,同样,Theano更像是一个研究平台,而不是一个深度学习库。您需要从头开始做大量工作才能创建所需的模型。例如,Theano没有针对神经网络的分类。但是随着这些年的发展,已经开发了大量基于Theano的开源深度学习库,包括Keras、Lasagne和Blocks。这些更高级别的包装器API可以大大减少开发时间和过程中的麻烦。甚至,据雷锋网(公众号:雷锋网)所知,很少有开发者会“裸奔”Theano,大部分人都需要辅助API。顺便说一下,Theano是一个完整的生态系统,不要只是拿着它跑来跑去抱怨它不起作用。在过去的很长一段时间里,Theano都是深度学习开发和研究的行业标准。而且,由于起源于学术界,最初是为学术研究而设计的,这也导致了深度学习领域的很多学者至今仍在使用Theano。但随着Tensorflow在谷歌的支持下强势崛起,Theano日渐式微,使用它的人越来越少。这个过程中标志性的事件是:领导者之一的IanGoodfellow放弃了Theano,去谷歌开发Tensorflow。因此,一些资深的开发者往往认为对于深度学习的新手来说,用Theano练习一下并没有什么坏处。但是对于专业的开发者来说,Tensorflow还是比较推荐的。优点:Python+NumPy的组合使用计算图。RNN与计算图有很好的兼容性。有Keras和Lasagne等高级库。许多开发者反映其学习门槛低于Tensorflow。缺点:相对于Torch来说非常底层和臃肿,不支持分布式应用。错误信息是无用的。大模型的编译时间有时会很长。预训练模型支持不足,人越来越少。它的全称是“ConvolutionArchitectureForFeatureExtraction”,意思是“用于特征提取的卷积体系结构”,很明确地体现了它的目的。Caffe的创始人是加州大学伯克利分校的华裔博士生贾扬清。Jia当时在伯克利计算机视觉和学习中心做研究。博士毕业后先后在谷歌和Facebook工作。在AI开发者的圈子里,Caffe可以说是无人不知无人不晓。根据GitHub最受欢迎的机器学习项目排名,Caffe位居第二,仅次于Tensorflow。它是一个广泛使用的机器视觉库,将Matlab实现快速卷积网络的方式带到了C和C++中。尽管Caffe被一些开发人员视为通用框架,但它最初是为计算机视觉设计的——它不适合其他深度学习应用,例如文本、语音识别和处理时间序列数据。Caffe的主要用途:使用卷积神经网络进行图像分类。在这方面,它代表了行业的最高水平,是开发者的首选。说到Caffe,就不得不提ModelZoo。后者是在Caffe之上开发的一系列模型的汇聚之处。因此,开发者使用Caffe的最大优势在于,他们可以选择直接从ModelZoo中海量的、预训练好的神经网络中下载并立即使用。据雷锋网了解,其中很多车型都是世界一流的。他们的教程很多:Alex的CIFAR-10tutorialwithCaffeTrainingLeNetonMNISTwithCaffeImageNetwithCaffe业界普遍认为Caffe适用于主要目的是实现基础算法的工业应用,有利于快速发展。但它缺乏针对更专业任务的灵活性——对模型进行调整通常需要C++和CUDA,尽管Python和Matlab也可以进行小幅调整。优点:非常适合前馈神经网络和图像处理任务非常适合利用现有的神经网络无需编写代码即可训练模型漂亮的Python界面缺点:需要C++和CUDA来编写新的GPU层。在递归神经网络上表现不佳对于大型神经网络,比较笨重(GoogLeNet,ResNet)没有商业支持3.Torch相对于其他开源框架,Torch属于非主流。没错,就是它的开发语言:基于1990年代诞生于巴西的Lua,而不是机器学习社区广泛使用的Python。其实Lua和Python都是比较容易上手的语言。但后者显然已经主导了机器学习领域,尤其是在学术界。企业界的软件工程师对Java最为熟悉,对Lua则相对陌生。这导致Torch推广困难重重。因此,尽管Torch功能强大,但它并不适合大众。那么它的强项在哪里呢?首先,Torch非常适合卷积神经网络。它的开发者认为,Torch的原生界面比其他框架使用起来更自然、更方便。其次,第三方扩展工具包提供了丰富的递归神经网络(RNN)模型。由于这些优势,许多互联网巨头开发了Torch的定制版本,以促进他们的AI研究。这包括Facebook、Twitter和DeepMind在被Google招募之前。在Torch中定义新层次结构比在Caffe中更容易,因为您不需要编写C++代码。与TensorFlow和Theano相比,Torch更灵活,因为它是命令式的;前两者是声明式的,你必须声明一个计算图。这使得波束搜索等操作比在Torch上更容易。Torch的热门应用:在强化学习中使用卷积神经网络和代理进行图像处理。对于主要对强化学习感兴趣的开发人员,Torch是最好的。优点:非常灵活高度模块化易于编写自己的层训练有素的模型很多缺点:需要学习Lua通常需要自己编写训练代码不适合循环神经网络没有商业支持4.SciKit-learnSciKit-learn很旧一个开放sourcePython算法框架,2007年作为GoogleSummerofCode项目开始,最初由DavidCournapeau开发。它是一个简洁高效的算法库,为数据挖掘和数据分析提供了一系列监督学习和非监督学习算法。SciKit-learn几乎涵盖了机器学习的所有主流算法,奠定了其在Python开源界的地位。它的算法库建立在SciPy(科学Python)之上——你必须安装SciPy才能使用SciKit-learn。它的框架包括:NumPy:基本的多维数组包SciPy:科学计算的基础库Matplotlib:综合2D/3D映射IPython:改进的交互控制器Sympy:符号数学Pandas:数据结构与分析命名由来:SciPy扩展和模块的传统命名科学套件。提供学习算法的模块被命名为scikit-learn。它与Python世界的另一个主要算法框架TensorFlow之间的主要区别在于TensorFlow是较低级别的。SciKit-learn提供了执行机器学习算法的模块化解决方案,许多算法模型可以直接使用。优点:经过筛选的高质量模型涵盖大部分机器学习任务可扩展到大数据规模易于使用缺点:灵活性低5.MXNet说到来自学术界的开源框架,就不得不提MXNet。不过由于亚马逊已经将其作为女王平台使用,所以在之前的盘点中已经介绍过(谷歌、微软、OpenAI等巨头的7个机器学习开源项目,看这篇文章就够了)。感兴趣的读者请点击链接。文章转载自开源中国社区【http://www.oschina.net】标题:民间机器学习四大开源框架盘点地址:https://www.oschina.net/news/80682/四人工智能开源框架