初识CNN卷积神经网络

作用及优势

卷积神经网络(Convolutional Neural Networks)本质上是一个多层感知机,其成功的关键在于它所采用的局部连接和共享权值的方式,一方面减少了的权值的数量使得网络易于优化,另一方面降低了过拟合的风险。

 

实现过程及意义

卷积

对图像【下图绿色大正方形】(不同的数据窗口数据)和滤波矩阵【下图黄色小正方形】(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

初识CNN卷积神经网络

非严格意义上来讲,下图中红框框起来的部分便可以理解为一个滤波器,即带着一组固定权重的神经元。多个滤波器叠加便成了卷积层。通过卷积运算,可以使原信号特征增强,并且降低噪音。

 

初识CNN卷积神经网络

 

参数共享和局部连接

参数共享指的是特定特征图中所有神经元的权重共享。

局部连接是每个神经只与输入图像的一个子集连接(不同于全连接的神经网络)

这有助于减少整个系统中的参数数量,并使计算更加高效。

 

池化

逐步缩小表示空间的大小,以减少网络中的参数和计算量。池化层独立地在每个特征映射上工作。

池化都是2*2大小,不足的外面补"0"。max-pooling就是取输入图像中2*2大小的块中的最大值,作为结果的像素值;average-pooling就是取2*2大小块的平均值作为结果的像素值。

初识CNN卷积神经网络

 

Relu

常用的非线性**函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层。

sigmoid函数的功能是相当于把一个实数压缩至0到1之间。这样一来便可以把**函数看作一种“分类的概率”。但实际梯度下降中,sigmoid容易饱和、造成终止梯度传递,且没有0中心化。可以使用另外一个**函数:ReLU来代替,其图形表示如下:

初识CNN卷积神经网络

ReLU的优点是收敛快,求梯度简单。

 

全连接层

全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。最后通过softmax来输出该样本属于各个类的概率。由于其全相连的特性,一般全连接层的参数也是最多的。现在的趋势是尽量避免全连接,目前主流的一个方法是全局平均值。也就是最后一层卷积的输出结果直接求平均值。有多少种分类就训练多少层,最后的数字就是对应的概率或者叫置信度。

 

 

CNN在自然语言处理中的应用

在图像中卷积核通常是对图像的一小块区域进行计算,而在文本中,一句话所构成的词向量作为输入。每一行代表一个词的词向量,所以在处理文本时,卷积核通常覆盖上下几行的词,所以此时卷积核的宽度与输入的宽度相同,通过这样的方式,我们就能够捕捉到多个连续词之间的特征,并且能够在同一类特征计算时*享权重。

初识CNN卷积神经网络

参考链接:

通俗理解卷积神经网络

CNN究竟是怎样一步一步工作的?

从CNN视角看在自然语言处理上的应用