深度学习通常指训练大型深度的神经网络的过程。
- 与传统的神经网络模型相比,深度学习模型在结构上与之非常相似;
- 不同的是,深度学习模型的“深度”更大,“深度”的体现就是神经网络层数多,神经网络每一层的结点数多。
本章介绍两种深度神经网络——卷积神经网络和循环神经网络,以及它们分别在图像处理、文本处理和语音处理上的效果。
- 卷积神经网络(CNN)
与普通神经网络相比,卷积神经网络引入了“卷积”和“池化”两个操作。
*卷积”操作的思想 采用一个较小的卷积核,例如 3×3 的矩阵,来对图像特征进行局部的提取。这样做可以增加参数的共享,减少随着神经网络变深、结点数变多而带来的巨大计算量。
*池化”操作的思想 采用一种过滤的方法,去除冗余信息并且加快计算。池化可以将一个 4×4 的图像切割成 4 个 2×2 的小矩阵,在每个小矩阵中取最大值,所得结果形成一个新矩阵。这种操作,可以减少神经网络结点的个数,加快计算速度。
在卷积神经网络中,通常某一个层都是在做卷积处理,某一层都是在做池化处理。一般,它们都是在层次之间交替进行的。经过多层卷积、池化操作后,所得特征图的分辨率远小于输入图像的分辨率,减少了计算量,加快了计算速度。
池化层夹在连续的卷积层中间, 用于压缩数据和参数的量。
简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。
个人理解的同图片resize方法类似(双线性插值法,邻近法),只不过池化层用的是取最大值法。
个人觉得主要是两个作用:
invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)
保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力。
但印象里,新paper都爱用1X1的卷积来取代池化了。
CNN 原理
我们人类是通过特征来区分猫和狗,现在想要计算机能够区分开猫和狗图片,就要计算机搞清楚猫猫狗狗各自的特有特征。
计算机可以通过寻找诸如边缘和曲线之类的低级特点来分类图片,继而通过一系列卷积层级建构出更为抽象的概念。这是 CNN(卷积神经网络)工作方式的大体概述.
简单来说:视觉皮层有小部分细胞对特定部分的视觉区域敏感。例如:一些神经元只对垂直边缘兴奋,另一些对水平或对角
边缘兴奋。CNN 工作概述指的是你挑一张图像,让它历经一系列
卷积层、非线性层、池化(下采样(downsampling))层和全连接层,最终得到输出。正如之前所说,输出可以是最好地描述了图像内容的一个单独分类或一组分类的概率
一个卷积提取特征的例子:图像的边缘检测
一个卷积核
应用到图像的每个像素,结果输出一个刻画了所有边缘的新图像。
卷积完成的是 对图像特征的提取或者说信息匹配,当一个包含某些特征的图像经过一个卷积核的时候,一些卷积核被激活,输出特定信号。
我们训练区分猫狗的图像的时候,卷积核会被训练,训练的结果就是,卷积核会对猫和狗不同特征敏感,输出不同的结果,从而达到了图像识别的目的。