前言

机器学习是一个很庞杂的体系,我们经常听到一些词汇:“人工智能(AI)”、"深度学习(Deep Learning)”、“机器学习”、“神经网络”、“卷积神经网络”、“Tensorflow”、"Pytorch"还有GPU、NPU、TPU等。这些概念铺天盖地,扑面而来,让人迷惑。如果有一个路线图,将能加速我们的入门。当然,这种指南也是铺天盖地,充斥着github和各大技术社区的AI版面。
本文还是继续造一个轮子。但尽量融入自己的理解,不人云亦云。

理论基础

数学基础

  • 微积分:《重温微积分》,搞清楚微分、积分、级数、偏导等基本概念和数学公式
  • 线性代数:《线性代数可以这样学》,线性空间,矩阵的基本运算
  • 概率论:浙大的《概率论与数理统计》第四版,盛骤等编,主要公式,先验概率、朴素贝叶斯等基本概念
  • 统计:李航的《统计学习方法》,先看基础内容,凸优化、泛函分析等慢慢看。

机器学习的基本理论

基础

  • 机器学习,书本可以参考 Pattern Recognition。
  • 大牛lecture
    • Andrew Ng(大牛吴恩达)的Machine Learning 视频。难度对初学者来说比较高,但是毕竟是经典,这个视频在网易公开课上有。
    • Tom Mitchel 的 Machine Learning Course,youtube源,发音标准,画质感人,难度较低,但是有点啰嗦。因为是CMU的公开课,课程设置比较循序渐进,配套资料也在课程主页可以找到。

核心算法分门别类(适当减少学习范围)

机器学习主要解决如下几类问题:监督学习(如分类问题、预测问题)、无监督学习(聚类)、半监督学习、关联学习
监督学习(学习器通过对大量有标记的(labeled)训练例进行学习)

分类问题区别于普通预测问题的是分类问题返回的是类别,而普通预测问题是一个数字。
先学习基本的分类算法:决策树、KNN、贝叶斯
再了解业界经典:SVM、神经网络(如ANN,BP神经网络)
感兴趣可以学习一下经典的统计学理论应用:HMM
无监督学习(与监督相反)

如果不仔细抠字眼,就我浅薄的理解,就是聚类,既然是聚类,由易到难,可以分别学习
K-means,最简单最基本的聚类
进一步学习混合高斯模型:GMM
再进一步可以学习Spectral Clustering(谱聚类)
还有层次聚类等,但是上述三个学习了就对聚类理解很深刻了。
半监督(顾名思义,利用大量的未标记示例来辅助对少量有标记示例的学习)
这个是上述两种的进阶,入门可以不考虑。

关联分析

这个和数据挖掘最相关
理解频繁项集和The Apriori algorithm算法试试感觉好了。

经典理论和算法研读

先推荐几个首先映入我脑海的:
SVD
PCA、LDA
SVM
Naive Bayes、决策树
EM算法
GMM
Adaboost
KNN、K-means

实战

建议在python平台下学习:
理由1:平台有学习框架scikit-learn,里面有很多机器学习的包可供调用,做科研当然是matlab方便,但是结合numpy,scipy, panda和matplotlib等库,可以在python环境下搭建一套足够用的分析架子去实验和看效果。
理由2:国外很多论文慢慢都转向用python实现。公司内部资料也多。
理由3:顺带学python不解释。
理由4: 以上说的很多算法在python平台都可以找到源码研读。

解决实际问题

结合自己的平时项目中遇到的实际问题去开发一个实际可用的程序。
这个可以结合个人兴趣和实际情况,如我打算将IT爱好者帖子推荐那套逻辑自己做一下。
能解决问题才是最重要的。解决完一个问题对提升信心帮助极大。

说明

本文部分选自网友的建议,后续我会根据个人体会重新整理,不断完善此文。

12-06 06:34