Python 向人工智能方向发展的技能树

Python 向人工智能方向发展的技能树

有不少同学学习 Python 的原因是对人工智能感兴趣,有志于从事相关行业。今天我们来聊聊这个方向所需要的一些技能。

这里我们主要谈论的是编程技能。

如果你打算采用 Python 作为主要开发语言(这也是目前人工智能领域的主流),那么 Python 的开发基础是必须得掌握的,这是一切基于 Python 开发的根基。你得对 Python 的基本语法、数据类型、常见模块有所了解,能正确使用条件、循环等逻辑,掌握 list、dict 等数据结构及其常用操作,了解函数、模块、面向对象的概念和使用等等。

关于这方面,我们已经有过不少介绍,可以参考之前的文章:

Crossin:给伸手党的福利:Python 新手入门引导zhuanlan.zhihu.com图标

或者看我的零基础教程:Crossin的编程教室 - Python入门


在对此已经熟练之后,你需要学习数据处理相关的 Python 工具库

NumPy

NumPy 提供了许多数学计算的数据结构和方法,较 Python 自身的 list 效率高很多。它提供的 ndarray 大大简化了矩阵运算。

Pandas

基于 NumPy 实现的数据处理工具。提供了大量数据统计、分析方面的模型和方法。一维的 Series,二维的 DataFrame 和三维的 Panel 是其主要的数据结构。

SciPy

进行科学计算的 Python 工具包,提供了诸如微积分、线性代数、信号处理、傅里叶变换、曲线拟合等众多方法。

Matplotlib

Python 最基础的绘图工具。功能丰富,定制性强,几乎可满足日常各类绘图需求,但配置较复杂。


只要你用 Python 和数据打交道,就绕不开以上这几个库,所以务必学习一下。


而在此之后,你就需要根据自己的具体方向,选择更专业的工具包进行研究和应用。Python 在人工智能方面最有名的工具库主要有:

Scikit-Learn

scikit-learn.org

Scikit-Learn 是用 Python 开发的机器学习库,其中包含大量机器学习算法、数据集,是数据挖掘方便的工具。它基于 NumPy、SciPy 和 Matplotlib,可直接通过 pip 安装。

TensorFlow

tensorflow.org

TensorFlow 最初由 Google 开发,用于机器学习的研究。TensorFlow 可以在 GPU 或 CPU 上运行,在深度学习领域表现优异。目前无论是在学术研究还是工程应用中都被广泛使用。但 TensorFlow 相对来说更底层,更多时候我们会使用基于它开发的其他框架。

Theano

deeplearning.net/softwa

Theano 是成熟而稳定的深度学习库。与 TensorFlow 类似,它是一个比较底层的库,适合数值计算优化,支持 GPU 编程。有很多基于 Theano 的库都在利用其数据结构,但对于开发来说,它的接口并不是很友好。

Keras

keras.io

Keras 是一个高度模块化的神经网络库,用 Python 编写,能够在 TensorFlow 或 Theano 上运行。它的接口非常简单易用,大大提升了开发效率。

Caffe

caffe.berkeleyvision.org

Caffe 在深度学习领域名气很大。它由伯克利视觉和学习中心(BVLC)和社区贡献者开发,具有模块化、高性能的优点,尤其在计算机视觉领域有极大的优势。Caffe 本身并不是一个 Python 库,但它提供了 Python 的接口。

PyTorch

pytorch.org

Torch 也是一个老牌机器学习库。Facebook 人工智能研究所用的框架是 Torch,DeepMind 在被谷歌收购之前用的也是 Torch(后转为 TensorFlow),足见其能力。但因 Lua 语言导致其不够大众。直到它的 Python 实现版本 PyTorch 的出现。

MXNet

mxnet.incubator.apache.org

亚马逊 AWS 的默认深度学习引擎,分布式计算是它的特色之一,支持多个 CPU/GPU 训练网络。


借助这些强大的工具,你已经可以使用各种经典的模型,对数据集进行训练和预测。但想成为一名合格的人工智能开发者,仅仅会调用工具的 API 和调参数是远远不够的。


Python 是人工智能开发的重要工具,编程是此方向的必备技能。但并不是掌握 Python 就掌握了人工智能。人工智能的核心是机器学习(Machine Learning)和深度学习。而它们的基础是数学(高等数学/线性代数/概率论等),编程是实现手段。

所以你想要进入这个领域,除了编程技能外,数学基础必不可少,然后还要去了解数据挖掘、机器学习、深度学习等知识。

这不是条几个月就能速成的路,但坚持下去一定会有所收获。


════
其他文章及回答:

如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 区块链

欢迎关注:Crossin的编程教室

编辑于 2018-05-08

文章被以下专栏收录

    本专栏旨在为编程初学者提供浅显易懂的入门科普。微信公众号:Crossin的编程教室(crossincode),内有面向零基础学习者的 Python 入门教程。代码问题可上 bbs.crossincode.com 发帖提问。