背景
对许多机器学习问题来说,特征提取不是一件简单的事情。
人工的方式无法很好地抽取实体中的特征,是否有自动的方式呢?
深度学习解决的核心问题之一就是自动地将简单的特征组合成更加复杂的特征
应用领域
深度学习 ≈ 深层神经网络
深度学习最早兴起于图像识别,现在还用于语音识别,自然语音处理,人机博弈等领域
通过例子介绍CNN是什么
下图为用CNN进行手写数字识别的过程,可见我们输入一个手写数字的图片,然后输出9各类别的概率。
CNN分为两个部分,先对图片进行特征提取,然后根据提取的特征进行分类
feature extraction 特征提取
第一部分是feature extraction 即特征提取,这个操作得到的结果还是一个一个图片。
- 第一步:卷积操作 convolution
通过5*5的卷积核对输入图片进行卷积操作,得到28*28大小的feature maps。这里是用4个不同的卷积核对输入图片进行卷积操作。这里卷积核中的25个权重,就是深度学习学习的参数 - 第二步:池化操作pooling(以前叫subsampling)
pooling就是通过一个2*2的核对上一步得到的图片进行操作
①如果是max pooling操作就选这2*2大小的4个像素中最大的那个作为最后的结果;
②如果是average pooling,就是取这四个的平均值作为最后的结果。 - 第三步:继续进行卷积操作
- 第四步:再进行池化操作
classification 分类
第二部分为classification,也就是根据上一部分提取到的特征进行分类
- 第五步:把图片拉开得到一个一个结点,然后加一个全连接层,把这些结点和最后输出的结点进行全连接
可视化CNN每层的结果
上面已经介绍了CNN是如何实现的,接下来我们通过把每一层可视化出来直观地感受CNN的每一层都做了什么。
人脸识别
如对于人脸识别,我们得到的第一层,第二层,第三层学习结果如下图:
第一层的结果为一些组成人脸的基本元素
第二层的结果为五官
第三层就是人脸
物体识别
再看一些物体识别的第二层和第三层的结果,可见第二层都是构成物体的部件,第三层就是最后识别出来的物体
如,Cars车辆识别的第二层就是构成车的轮子啊车门啊什么的
Elephants大象识别的第二层就是构成象的象鼻子啊耳朵啊什么的
从上面的这些可视化结果可以看出,深度学习就是通过自动提取构成要识别的物体的基本特征,然后将这些特征一步一步的组合最后得到物体的过程。