【菜鸟学深度】Introduction to Machine Learning CMU-10701

来源:互联网 发布:坐标数据导入全站仪 编辑:程序博客网 时间:2024/05/17 23:56

大家好,我是ColdZoo,本博客是在学习 卡耐基梅隆大学的Slides—
Introduction to Machine Learning CMU-10701 (以下简称Slides)之后得出的总结。记录下自己的成长。

目前写到LeNet部分,你的支持是我写下去的动力哦~

大部分内容为英文直接翻译,一切版权归原作者Barnabás Póczos & Aarti Singh所有。 Slides的作者认为目前的Deep Learning 走错路了,如日中天的CNN进不了法眼,目的主要是介绍深度信念网络DBN 和深度玻尔兹曼机DBM.


深度架构(deep architecture)的定义

深度架构是由多层非线性运算堆叠而成的架构。例如含有多有隐含层的神经网络。

deep architecture image

上图中含有多个层,每一层都有不同的输出函数。

深度架构的目标

深度架构的目标是:

  1. 学习特征层次
  2. 学习高层特征是如何由底层特征表示出来的

    feature hierarchy
    特征层次的示例图,从最底层的Raw input(原始输入)到最后的高层一个ANP的形式。ANP这里可以对应一个概念,也可以是概念的组合。

深度架构的神经生物学动机

  • 动机一:目前绝大多数所谓机器学习的架构都是浅薄的(shallow architecture), 例如SVM,KNN,PCA,Perceptron。 其中曾经如日中天的SVM就是浅薄的三层架构。

SVM的公式表示

SVM可以用公式表示为如上面的形式,k(。)函数为核函数。 有机器学习基础的朋友肯定知道。

  • 动机二:神经生物学发现哺乳动物大脑是由深度架构的 (Serre, Kreiman, Kouh, Cadieu, Knoblich, & Poggio, 2007)
    (E.g. visual system has 5 to 10 levels)

深度架构上的突破

从历史上看取得了一些突破,直接贴原文

-Deep Belief Network Hinton, G. E, Osindero, S., and Teh, Y. W. (2006). A fast learning algorithm for deep belief nets. Neural Computation, 18:1527-1554
- Autoencoders Bengio, Y., Lamblin, P., Popovici, P., Larochelle, H. (2007). Greedy Layer-Wise Training of Deep Networks,
Advances in Neural Information Processing Systems 19
都是经典著作。

深度架构的理论优势

目前在深度方面的理论研究一直都是难点,Slides的作者虽然提出了一些理论优势,但看起来更多的是为了解释实验结果而提出来的假说。

  • 很多问题的不能被简单模型解释 (同意),而深度模型解释的很好。
    • 更严密的说法:假设有一个问题可以被K层模型紧密表示(compactly represented),如果用K-1层模型表示这个问题,则需要指数个参数。
  • 使用深度架构可以减少参数的使用。是不是有点反直觉?但是仔细想想,为了达到同样的效果,Shallow Architecture需要的参数确实是海量的,以至于不可能完成。

    下面开始介绍深度架构的几个具体实现 

深度卷积网络 (Deep Convolutional Neural Network)

与传统的feed-forward NN 相比, CNN有如下特点

  • CNN的连接和参数都更少
  • 因此训练起来容易
  • 理论效果之比传统网络差一点点(真的么?)

一个典型的CNN网络,也是最早的CNN是LeCun的作品。

LeNet 5
Y. LeCun, L. Bottou, Y. Bengio and P. Haffner: Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE, 86(11):2278-2324, November 1998

激动人心的时刻

Lenet5

终于到了激动人心的讲解网络的时刻了。
LeNet由三个卷积层,两个降采样层和一个全连接层构成。

卷积层

卷积层需要使用的是卷积核,Kernel。 以第一个卷积层C1为例。这一层含有6个卷积核,每一个卷积核的尺寸是5*5. 在32*32的原图上滑动,滑动步长为1. 因此结果是得到六层Feature Maps(等于卷积核数)。 每层Feature Maps的边长为28 ((32-5)/1+1=28).

降采样层

降采样层所做的事情和常见的图片压缩是一样一样的。也是为了加快训练速度。常用的降采样技术是Max Pooling。
本模型中实际是将图片尺寸缩小到了原先的一半。

实验结果

好不容易做了个网络当然要拉出来遛遛。 我们来看一下实际效果如何。
这里写图片描述

这里写图片描述

0 0