干货|给妹纸的深度学习教学(0)——从这里出发

或许你第一个想弄明白的问题是 人工智能(AI),机器学习(ML),深度学习(DL)三者的区别和联系,下图清晰明了地告诉你,

image.png

1什么是机器学习


从小学开始,我们便一直和「函数」打交道,比如一条直线 ,若输入为  ,很容易得到 
若输入为一段音频,你需要去模拟出一个类似与函数的东西,它的输出便是音频的内容

image.png

若输入为一张图片,你希望模拟一个复杂的函数,使得它的输出为这张图片是什么

image.png

若输入为一个围棋盘面,你希望模拟一个复杂的函数,让它告诉你下一步该走哪里

image.png

是的,你可以认为,机器学习,就是在寻找这个复杂的「函数」,因为它复杂,它不确定,它是非线性的,所以你需要设计一些算法,让机器去学习这个复杂的「函数」究竟是什么。

对,这就是机器学习,人会做出一些决策,一些判断,你希望,用一些已有的数据,对机器进行训练,使得机器也能学会如何决策,甚至做得更好

2什么是深度学习


深度学习,是机器学习的一个子类。换句话说,它实际上是实现机器学习的一种方法,随着计算机软硬件的飞速发展,人们意识到可以通过神经网络(Neural Network)来模拟人的大脑,而深度一词,意味着神经网络拥有众多的层数。


回过头想想,你的大脑是如何思考的?你的生物老师,是如何告诉你信号在大脑中是如何传递的。


目前来看,深度学习主要有

  • 卷积神经网络(Convolutional Neural Network)

  • 循环神经网络(Recurrent Neural Network)

  • 生成对抗网络(Generative Adversarial Networks)

  • 深度强化学习(Deep Reinforcement Learning)

这几个大研究方向。


如何开始

头悬梁,锥刺股,如何开始学习深度学习?

  • 学什么?不管你是属于哪个方向,我认为你首先应该学习的便是CNN,本系列文章,也正式通过介绍卷积神经网络的各种架构,来达到让你入门的目的

  • 怎么学?

    • 书籍?通过书籍来学习,这是自古以来不会有太大差错的方式,

      • 首先我要推荐的是深度学习的第一本权威教科书《Deep Learning
        此外,本书的中文翻译,也在几个星期前开始销售。
        更值得庆幸的是,你可以从deeplearningbook-chinese获取本书的PDF

      • 当然,如果你觉得你的机器学习知识需要提高,可以尝试周志华老师的《机器学习》,或是通过李航的《统计学习方法》恶补一下?
        另外,请支持正版,请不要传播非法的PDF文档。

    • 课程?传道授业解惑,自古以来人们便习惯通过面对面授课的方式来进行学习,如今,发达的网络,更是带来了大量可供学习视频资源。

      • 我最推荐的是 Fei-Fei Li 的 CS231n,课程完备,资料齐全,授课内容始终处在最前沿。课程的视频,在YouTube上面也能轻松找到。

        • CS231n: Convolutional Neural Networks for Visual Recognition

        • 此外,知乎还有对本课程笔记的翻译。
          贺完结!CS231n官方笔记授权翻译总集篇发布

      • 另一个强力推荐的是台大 李宏毅 老师的课程

        • 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 的冠军

        • Machine Learning Techniques, Spring 2017

        • Machine Learning Foundations, Fall 2016

      • 就在前段时间,Andrew Ng教授似乎又有了新动作
        如果你愿意,也可以尝试一下

    • 实践?只有理论没有实践,俗称花把式。

      • 个人认为比较好的方式就是写作业,比如上面课程的作业,比如重新实现github上的一些优秀代码,一定要花时间去实践,这和你要刷题才能领悟真谛是一个道理!

    • 寻求帮助?上知乎,上github,上google,上stackoverflow,上jizhi
      上CrossValidated,你需要专业的解答。

    • 机器?工欲善其事,必先利其器,请务必准备一张GPU,这样你才能愉快地玩耍!


你应该走过的战场

好,接下来说一说,你需要走过的战场。

  • 你开始了解什么是图片的分类(Image Classification)

  • 你开始用一些简单的线性模型来进行预测(SVM,KNN)

  • 你开始研究什么是最优化,什么是损失函数(Loss function)和梯度下降

  • 你开始研究什么是反向传播(Backpropagation)

  • 你开始研究什么是神经网络(NN)

  • 终于,你踏入了卷积神经网络的战场

    • 你开始学习卷积层,池化,归一化等等

    • 你开始研究 TensorflowKerasPytorch,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」家族:

    • [v1] Going Deeper with Convolutions

    • [v2] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    • [v3] Rethinking the Inception Architecture for Computer Vision

    • [v4] Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

  • 你开始知道微调(Fine-tune),你开始不断改善你的代码

  • 再入残差家族 「Residual Network」:

    • Deep Residual Learning for Image Recognition

    • Identity Mappings in Deep Residual Networks

    • 「Wide Residual Network」: Wide Residual Networks

    • 「ResNeXt」: Aggregated Residual Transformations for Deep Neural Networks

  • 最后是 「DenseNet」 Densely Connected Convolutional Networks


至此,你的CNN学得就还算过得去了。
继续前行吧,世界是广阔的,你会达到远方美丽的绿洲一定会的!


推荐阅读:

精选干货|近半年干货目录汇总----全是通俗易懂的硬货!欢迎阅读!

干货|台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No

|台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning

               欢迎关注公众号学习交流~          

image.png

image.png


猜你喜欢

转载自blog.51cto.com/15009309/2553760