一文了解人工智能该如何入门


随着阿尔法狗人机大战的胜利,人工智能已经成为最火的话题,人脸识别,内容推荐,无人驾驶等人工智能产物被大家熟知。大家都看好人工智能的前景。那么,如果对人工智能感兴趣,作为小白该如何入门呢?

关于人工智能、机器学习、深度学习的关系如下图所示,在我看来其中并没有明显的区分。

一文了解人工智能该如何入门

入门人工智能我们到底该学些什么呢。我结合着自己学习经历和工作经历,给大家说几个部分。

一、数学基础部分

学习人工智能,要有一些数学基础,好在要求的数学基础都是高中及大学的层次,相信大家都学过。即使忘了,再去寻找以前的记忆也相对容易一些。我列举下必备的知识。

1.线性代数(矩阵、特征值、特征向量、秩)

2.微积分(极限、导数、拉格朗日中值、泰勒级数展开)

3.统计学 (相关性分析、期望、方差、分布、指标)

注:很多文章都说凸优化的知识,其实凸优化多数都是用在研究领域,对于刚入门作用不大,暂时不建议大家看。

书籍方面:去翻下大学相关课程教材即可。不建议从头开始学,很耗时,去翻翻上面说的几部分内容就可以。如果觉得不够可以再去看看吴军的《数学之美》和李航的《统计学习方法》。这两本书还是比较经典的。

二、Python语言基础

现在机器学习中,Python语言用的居多。如果你是程序员出身,已经有过Python,C++,Java语言的话,这一步就很简单了。如果你现在还不懂编程语言,也没关系,Python是一门很简单的语言。Python语言其实也有难点,但好在机器学习里面用不上,是不是有难以掩饰的激动,相信大家经过1周时间基本就可以应用了。我给同学们列举下该学习哪部分。

基础部分:推荐给大家一个网上的教程,如果这个链接失效了,也可以自己在搜索引擎上搜《Python3教程》关键字(这里推荐大家学习Python3,如果已经有了Python2的基础,也可以忽略) https://m.runoob.com/python3/。

模块部分:Numpy、Pandas、Matplotlib。这几个是需要大家掌握的。大家自己在搜索引擎上搜。

其他的呢,可以看下scikit-learn这个模块。他是机器学习的一个Python库。有很多机器学习方面的模型,用scikit-learn可以很快的实现。大家也可以在了解机器学习之后,再学习也可以。

三、机器学习基础

这一部分内容还是很多的,讲的都是一些经典的入门算法,大家要好好的感受下这些算法的精髓。

  • 线性回归、梯度下降、逻辑回归
  • 决策树和随机森林(ID3、C4.5、CART、GBDT、RandomForest)
  • SVM (软间隔、损失函数、核函数、SMO算法、libSVM)
  • 聚类(K-Means、聚谱类SC)
  • EM算法(最大似然估计、Jensen不等式、混合高斯分布、主题模型pLSA)
  • 主题模型LDA
  • 隐马尔可夫模型

书籍方面:Andrew Ng — Machine Learning Coursera from Stanford

有了上面的基础,选择一门由浅入深的课程来学习。基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题。解决实际问题的时候,可能涉及到上面基础部分的延伸,相信有了上面的基础部分,再继续学习起来就容易很多。通过实战经验积累以后,可以考虑继续进行学习。这时候有两个选择,深度学习或者继续机器学习。深度学习是目前最火热的机器学习方向,这里推荐大家选择 TensorFlow 框架。它是谷歌公司的开源框架,虽然说并不是最早的,但是无论它背后的技术沉淀,还是它的更新速度都是好的。也在开源的众多深度学习的框架中遥遥领先。深度学习其中一些方法已经跟传统的机器学习不太一样,因此可以单独学习。除了深度学习以外,机器学习还包括统计学习,集成学习等实用方法。如果条件足够,可以同时学习两者,一些规律对两者是共通的。学习完后,你已经具备了较强的知识储备,可以进入较难的实战。这时候有两个选择,工业界的可以选择看开源项目,以改代码为目的来读代码;学术界的可以看特定领域的论文,为解决问题而想发论文。无论哪者,都需要知识过硬,以及较强的编码能力,因此很能考察和锻炼水平。经过这个阶段以后,可以说是踏入AI领域的门了。

入门之后也算是值得高兴了,但是你离精通其实还有很远的一段路要走,想要在这个行业长久地活下去,内功的修炼要比外功重要得多,不然会活得很累,也很难获得一个优秀的晋升空间。入门之后,赶快找一家公司去工作。在工作中会把你学习的知识融会贯通。而且刚步入公司,也会有一些大拿级别的人带你。这样的话,对你今后的发展都有很大的帮助。

另外列举一些面试中经常考的知识点。

线性回归数学推导

可用性评估:获取难度、覆盖率、准确率

特征清洗:清洗异常样本

采样:数据不均衡、样本权重

单个特征:无量纲化(标准化、归一化)、二值化、离散化、缺失值(均值)、哑编码(一个定性特征扩展为N个定量特征)

数据变换:log、指数、Box-Cox 降维:主成分分析PCA、线性判别分析LDA、SVD分解

特征选择:Filter(相关系数、卡方检验)、Wrapper(AUC、设计评价函数A*、Embedded(L1-Lasso、L2-Ridge、决策树、DL)

机器学习算法:LR,GBDT,XGBoost, lightGBM

深度学习基础:BP算法,dropout, BN等

深度学习算法:CNN,RNN,LSTM,GRU,GAN等

如果对小编的文章感兴趣,可以关注小编微信公众号: 机器学习与数据挖掘