网络机器人吧社区

机器学习入门指南

山东易华录技术控 2019-02-18 13:55:01



1

复习线性代数。


·学习视频:麻省理工公开课

(http://open.163.com/special/opencourse/daishu.html):线性代数,深入浅出效果拔群,以后会用到的 SVD、希尔伯特空间等都有介绍;



2

入门机器学习算法


·斯坦福大学公开课

(http://open.163.com/special/opencourse/machinelearning.html):机器学习课程,吴恩达教授的老版 cs229 的视频,讲的非常细(算法的目标 ->数学推演 ->伪代码)。这套教程唯一的缺点在于没有介绍最近大火的神经网络,但其实这也算是优点,并不是所有问题都需要用神经网络来解决;


· 这个课程里详细介绍的内容有:一般线性模型、高斯系列模型、SVM 理论及实现、聚类算法以及 EM 算法的各种相关应用、PCA/ICA、学习理论、马尔可夫系列模型。



3

尝试用代码实现算法


· 机器学习 |Coursera 

(https://www.coursera.org/learn/machine-learning/home/welcome),还是吴恩达教授的课程,只不过这个是极简版的 cs229,几乎就是教怎么在 matlab 里快速实现一个模型(这套教程里有神经网络基本概念及实现)。这套课程的缺点是难度比较低,推导过程非常简略,但是这也是它的优点——让我专注于把理论转化成代码




4


· 课程视频 CS231n Winter 2016 - YouTube 

(http://youtube.com/playlist?list=plkt2usq6rbvctenovbg1tpcc7oqi31alc),李飞飞教授的课,主讲还有 Andrej Karpathy 和 Justin Johnson,主要介绍卷积神经网络在图像识别 / 机器视觉领域的应用(前面神经网络的代码没写够?这门课包你嗨到爆~到处都是从零手写~)。这门课程的作业就更贴心了,直接用 Jupyter Notebook 布置的,可以本地运行并自己检查错误。主要使用 Python 以及 Python 系列的科学计算库(Scipy/Numpy/Matplotlib)。


· 再多说一点,这门课对程序员来说比较走心,因为这个不像上一步中用 matlab 实现的作业那样偏向算法和模型,这门课用 Python 实现的模型同时注重软件工程,包括常见的封装 layer 的 forward/backward、自定义组合 layer、如何将 layer 组成网络、如何在网络中集成 batch-normalization 及 dropout 等功能、如何在复杂模型下做梯度检查等等;最后一个作业中还有手动实现 RNN 及其基友 LSTM、编写有助于调试的 CNN 可视化功能、Google 的 DeepDream 等等。



5

深入学习

业界传奇 Geoffrey Hinton 教授的NeuralNetworks for Machine Learning | Coursera

(https://www.coursera.org/learn/neural-networks/home/welcome)

NLP 的课程 Stanford University CS224d: DeepLearning for Natural Language Processing。

(http://cs224d.stanford.edu/)




Copyright © 网络机器人吧社区@2017