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

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

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

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

在对此已经熟练之后,你需要学习数据处理相关的 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/software/theano/

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工具库实战

第三阶段:机器学习

机器学习入门/机器学习提升

第四阶段:数据挖掘实战

数据挖掘入门/数据分析实战

第五阶段:深度学习

深度学习网络与框架/深度学习项目实战

几百个课时的学习是基本,但若想真正学明白,至少需要一些时间,当然根据每个人基础不同会有所差异,也不能排除你很短时间就能搞定。

本文分享自微信公众号 - Crossin的编程教室(crossincode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励