您现在所在的位置:首页 >关于奇酷 > 行业动态 > AI世代基石:盘点四大机器学习开源框架

AI世代基石:盘点四大机器学习开源框架

来源:奇酷教育 发表于:

  1 Theano  Theano 在深度学习框架中是祖师级的存在。它的开发始于 2007,早期开发者包括传奇人物 Yoshua Bengio 和 Ian Goo

  
1. Theano
  Theano 在深度学习框架中是祖师级的存在。它的开发始于 2007,早期开发者包括传奇人物 Yoshua Bengio 和 Ian Goodfellow。
  Theano 基于 Python,是一个擅长处理多维数组的库(这方面它类似于 NumPy)。当与其他深度学习库结合起来,它十分适合数据探索。它为执行深度学习中大规模算法的运算所设计。其实,它可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,来高效运行于 GPU 或 CPU。
  它与后来出现的 Tensorflow 功能十分相似(或者应该说,Tensorflow 类似 Theano ),因而两者常常被放在一起比较。它们本身都偏底层,同样的,Theano 像是一个研究平台多过是一个深度学习库。你需要从底层开始做许多工作,来创建你需要的模型。比方说,Theano 没有神经网络的分级。
  但随着这些年的发展,大量基于 Theano 的开源深度学习库被开发出来,包括 Keras, Lasagne 和 Blocks。这些更高层级的 wrapper API,能大幅减少开发时间以及过程中的麻烦。甚至,据调查统计所知,很少开发者会使用“裸奔”的 Theano,多数人需要辅助的 API。顺便说一句,Theano 是一整套生态系统,别只用它裸奔,然后抱怨不好用。
2. Caffe
  这又是一个祖师级的深度学习框架,2013 年就已问世。
  它的全称是 “Convolution Architecture For Feature Extraction”,意为“用于特征提取的卷积架构”,很明白地体现了它的用途。Caffe 的创始人,是加州大学伯克利分校的中国籍博士生贾扬清。当时贾在伯克利计算机视觉与学习中心做研究。博士毕业后,他先后在谷歌和 Facebook 工作。
  在 AI 开发者圈子中,Caffe 可以说是无人不知、无人不晓。据 GitHub 最新的机器学习项目热度排名,Caffe 仅位列 Tensorflow 之后,雄踞第二。它是一个被广泛使用的机器视觉库,把 Matlab 执行快速卷积网络的方式带到 C 和 C++。虽然 Caffe 被部分开发者看做是通用框架,但它的设计初衷是计算机视觉--并不适于其他深度学习应用,比如文字、和处理时间序列数据。
  Caffe 的主要用途:利用卷积神经网络进行图像分类。这方面它代表了业内一流水平,是开发者的首选。
  说到 Caffe,就不得不提 Model Zoo。后者是在 Caffe 基础上开发出的一系列模型的汇聚之地。因此,开发者使用 Caffe 最大的好处是:能在 Model Zoo 海量的、事先训练好的神经网络中,选择贴近自己使用需求的直接下载,并立刻就能用。
  业内人士普遍认为,Caffe 适合于以实现基础算法为主要目的的工业应用,有利于快速开发。但对于处理较特殊的任务,它存在灵活性不足的问题--为模型做调整常常需要用 C++ 和 CUDA,虽然 Python 和 Matlab 也能做些小调整。
  
3. Torch
  相比其他开源框架,Torch 是一个非主流。
  没错,说的就是它的开发语言:基于1990 年代诞生于巴西的 Lua,而非机器学习界广泛采用的 Python。其实 Lua 和Python 都属于比较容易入门的语言。但后者明显已经统治了机器学习领域,尤其在学界。而企业界的软件工程师最熟悉的是 Java,对 Lua 也比较陌生。这导致了 Torch 推广的困难。因此,虽然 Torch 功能强大,但并不是大众开发者的菜。
  那么它强大在哪里?
  首先,Torch 非常适用于卷积神经网络。它的开发者认为,Torch 的原生交互界面比其他框架用起来更自然、更得心应手。
  其次,第三方的扩展工具包提供了丰富的递归神经网络( RNN)模型。
  因为这些强项,许多互联网巨头开发了定制版的 Torch,以助力他们的 AI 研究。这其中包括 Facebook、Twitter,和被谷歌招安前的 DeepMind。
  与 Caffe 相比,在 Torch 里定义一个新层级比它要容易,因为你不需要写  C++ 代码。和 TensorFlow 和 Theano 比起来,Torch 的灵活度更高,因为它是命令式的;而前两者是陈述式的(declarative),你必须 declare 一个计算图。这使得在 Torch 上进行束搜索(beam search)这样的操作要比它们容易得多。
4. SciKit-learn
  SciKit-learn 是老牌的开源 Python 算法框架,始于 2007 年的 Google Summer of Code 项目,最初由 David Cournapeau 开发。
  它是一个简洁、高效的算法库,提供一系列的监督学习和无监督学习的算法,以用于数据挖掘和数据分析。SciKit-learn 几乎覆盖了机器学习的所有主流算法,这为其在 Python 开源世界中奠定了江湖地位。
  它的算法库建立在 SciPy (Scientific Python) 之上--你必须先安装 SciPy 才能使用 SciKit-learn 。它的框架中一共包括了:
  NumPy: 基础的多维数组包
  SciPy: 科学计算的基础库
  Matplotlib: 全面的 2D/3D 测绘
  IPython: 改进的交互控制器
  Sympy: 符号数学
  Pandas:数据结构和分析
  它命名的由来:SciPy 的扩展和模块在传统上被命名为 SciKits。而提供学习算法的模组就被命名为 scikit-learn。
  它与 Python 世界另一大算法框架--TensorFlow 的主要区别是:TensorFlow 更底层。而 SciKit-learn 提供了执行机器学习算法的模块化方案,很多算法模型直接就能用。
  从这份统计中不难看出,不少机器学习的框架都是基于Python架构的,Python已逐渐成为人们公认的最合适人工智能开发的语言,奇酷教育Python课程,除了讲授Python基础知识,还会将人工智能、机器学习开发插入其中,同时讲解Python的最佳实践,让学员不仅仅学会编程的基本语法,还能学到资深工程师的编程经验,了解一线互联网公司用到的Python工具和开源项目,熟悉Python高手的编程风格。在这里,你不光能够学会如何编写程序,还能够学会如何编写高质量的程序,一跃成为专业的工程师,更会成为最早接触人工智能的从业人员,一举站在前沿科技浪尖,前程无限!