负责任的声明:最好看原文链接,排版舒服,清晰
本文转载初衷:防止原文链接不可用,文章内容丢失
或许你第一个想弄明白的问题是 人工智能(AI),机器学习(ML),深度学习(DL)三者的区别和联系,下图清晰明了地告诉你。
什么是机器学习
从小学开始,我们便一直和「函数」打交道,比如一条直线
若输入为 ,很容易得到
若输入为一段音频,你需要去模拟出一个类似与函数的东西,它的输出便是音频的内容
若输入为一张图片,你希望模拟一个复杂的函数,使得它的输出为这张图片是什么
若输入为一个围棋盘面,你希望模拟一个复杂的函数,让它告诉你下一步该走哪里
是的,你可以认为,机器学习,就是在寻找这个复杂的「函数」,因为它复杂,它不确定,它是非线性的,所以你需要设计一些算法,让机器去学习这个复杂的「函数」究竟是什么。
对,这就是机器学习,人会做出一些决策,一些判断,你希望,用一些已有的数据,对机器进行训练,使得机器也能学会如何决策,甚至做得更好
什么是深度学习
深度学习,是机器学习的一个子类。换句话说,它实际上是实现机器学习的一种方法,随着计算机软硬件的飞速发展,人们意识到可以通过神经网络(Neural Network)来模拟人的大脑,而深度一词,意味着神经网络拥有众多的层数。回过头想想,你的大脑是如何思考的?你的生物老师,是如何告诉你信号在大脑中是如何传递的。
目前来看,深度学习主要有
- 卷积神经网络(Convolutional Neural Network)
- 循环神经网络(Recurrent Neural Network)
- 生成对抗网络(Generative Adversarial Networks)
- 深度强化学习(Deep Reinforcement Learning)
这几个大研究方向。
如何开始
头悬梁,锥刺股,如何开始学习深度学习?
- 学什么?不管你是属于哪个方向,我认为你首先应该学习的便是CNN,本系列文章,也正式通过介绍卷积神经网络的各种架构,来达到让你入门的目的
- 怎么学?
- 书籍?通过书籍来学习,这是自古以来不会有太大差错的方式,
- 首先我要推荐的是深度学习的第一本权威教科书《Deep Learning》
此外,本书的中文翻译,也在几个星期前开始销售。
更值得庆幸的是,你可以从deeplearningbook-chinese获取本书的PDF。 - 当然,如果你觉得你的机器学习知识需要提高,可以尝试周志华老师的《机器学习》,或是通过李航的《统计学习方法》恶补一下?
另外,请支持正版,请不要传播非法的PDF文档。
- 首先我要推荐的是深度学习的第一本权威教科书《Deep Learning》
- 课程?传道授业解惑,自古以来人们便习惯通过面对面授课的方式来进行学习,如今,发达的网络,更是带来了大量可供学习视频资源。
- 我最推荐的是 Fei-Fei Li 的 CS231n,课程完备,资料齐全,授课内容始终处在最前沿。课程的视频,在YouTube上面也能轻松找到。
- 另一个强力推荐的是台大 李宏毅 老师的课程
- Machine Learning (2017,Spring)
- Machine Learning (2016,Fall)
- Machine Learning and having it deep and structured (2017,Spring)
这门课叫做MLDS,其实就是在讲Deep Learning,而且homework非常有意思,有GAN也有RL,值得推荐 - 此外,李宏毅老师的《一日搞懂深度学习》,其 链接 也在老师的个人网站上,8月13号在台北还有他的talk《一日搞懂生成对抗网络》,之后应该也能在它的主页上找到
- 同样,还有 林軒田 老师的公开课《机器学习基石》和《机器学习技法》
也是中文授课。
讲得很好,PDF做得也很棒,毕竟老师曾是多届 KDD Cup 的冠军 - 就在前段时间,Andrew Ng教授似乎又有了新动作,
如果你愿意,也可以尝试一下
- 实践?只有理论没有实践,俗称花把式。
- 个人认为比较好的方式就是写作业,比如上面课程的作业,比如重新实现github上的一些优秀代码,一定要花时间去实践,这和你要刷题才能领悟真谛是一个道理!
- 这里有我以前写过的一些 代码 ,兴许会对你有帮助
- 寻求帮助?上知乎,上github,上google,上stackoverflow,上jizhi
上CrossValidated,你需要专业的解答。 - 机器?工欲善其事,必先利其器,请务必准备一张GPU,这样你才能愉快地玩耍!
你应该走过的战场
好,接下来说一说,你需要走过的战场。
- 你开始了解什么是图片的分类(Image Classification)
- 你开始用一些简单的线性模型来进行预测(SVM,KNN)
- 你开始研究什么是最优化,什么是损失函数(Loss function)和梯度下降
- 你开始研究什么是反向传播(Backpropagation)
- 你开始研究什么是神经网络(NN)
- 终于,你踏入了卷积神经网络的战场
- 你开始学习卷积层,池化,归一化等等
- 你开始研究 Tensorflow,Keras,Pytorch,Caffe
- 你开始读别人的代码,你开始自己写代码
- 你开始知道cifar10,知道ImageNet
- 你开始研究第一个CNN model: LeNet-5 - Yann LeCun
最开始你有必要研究一下CNN之父LeCun发明的LeNet,虽然现在已经没有用武之地,但是CNN便是从这里开始的。 - 紧接着是一个突破性的架构 「AlexNet」:ImageNet Classification with Deep Convolutional Neural Networks
2012 ImageNet的冠军,真正让CNN开始流行起来 - 然后是它的改进 「ZF Net」: Visualizing and Understanding Convolutional Networks
- 以及「Network in Network」: Network In Network
- 你开始逐渐知道一些CNN 训练常用的 「trick」
- 数据预处理(Data Augmentation)
- 权重初始化(Xavier/He Weight initial)
- 批量归一化(Batch Normalization)
- 正则化(L2/L1/Maxnorm/Dropout)
- 以及震惊一时的「Vgg Network」: Very Deep Convolutional Networks for Large-Scale Image Recognition
- 然后进入「GoogleNet」家族:
- 你开始知道微调(Fine-tune),你开始不断改善你的代码
- 再入残差家族 「Residual Network」:
- 跨过 「DenseNet」 Densely Connected Convolutional Networks
- 跨过2016,我们来到2017
- 看过「DPN」Dual Path Networks
- 以及「SENet」Squeeze-and-Excitation Networks
至此,你的CNN学得就还算过得去了。
ImageNet比赛的8年就这样过去了,一个比赛的结束,一个时代的终结。
不,是新的时代的开始!
继续前行吧,世界是广阔的,你会达到远方美丽的绿洲!一定会的!