CNN卷积神经网络学习笔记1:背景介绍

Convolutional Neural Network 卷积神经网络是基于人工神经网络提出的。人工神经网络模拟人的神经系统,由一定数量的神经元构成。在一个监督学习问题中,有一组训练数据,在这篇笔记中先梳理一下传统人工神经网络的基本概念,再基于传统人工神经网络简单介绍卷积神经网络。

1,神经元neuron

一个神经元是神经网络中的一个运算单元,它实质上就是一个函数。下图是一个神经元的示意图:

有3个输入,f是激活函数(activation function),这里的激活函数用的是sigmoid函数:

sigmoid函数图像如图:

激活函数是以0.5为分界,让大值更逼近1,小值更逼近0,因为人的神经元就是有分“激活”和“不激活”两种状态,刺激达到一定程度,就被激活,传播信号,达不到就不激活,不传播信号,人工神经网络中激活函数的设计,应该是为了模拟这个过程。

2,人工神经网络Neural Network

人工神经网络就是由多个上述的神经元组合成的,下图是一个小型的人工神经网络的示意图:

有3个输入单元,这个输入单元的个数一般由样本向量的维度决定,比如输入的样本是sift特征点,那么就有128个输入单元。+1是偏置,是指第1层到第2层之间的连接的权值,是一个矩阵,是指它们之间的连接偏置,是一个向量。指的是第l层的unit j和第l+1层的unit i之间的连接的权值,它是一个数值,是连接到第l+1层unit i的偏置,所有连接unit i的连接都使用这同一个偏置值,在图中连接到第2层的三个unit的偏置值都是+1。在图中,L1是输入层(input layer),L2是隐层(hidden layer),因为这一层每个unit的值是无法观测到的,L3是输出层(output layer)。

当然输出层也可以有多个unit,如下图,在label y是向量的情况下,这个unit个数一般和y的维度一致。

3,卷积神经网络

卷积神经网络中,输入就是一幅幅的图像,权值W就是卷积模板,一般是卷积层和下采样层交替,最后是全连接的神经网络,也就是上述经典的人工神经网络。如下是一个简单的卷积神经网络示意图:

C是卷积层,S是下采样层。输入的一幅图像,在C1层,通过和3个卷积模板做卷积运算,然后加上偏置值,再经过sigmoid激活函数,得到3幅输出图像,在S2层,对C1层输出的3幅图像做下采样,假设采样因子是2,也就是图中每2*2的patch中的4个像素进行求和,再加偏置,再通过激活函数,得到3张尺寸减小了的输出图像。同样的,再经过C3,S4。将S4的输出拉成一个向量,输入传统的神经网络中,并得到输出。 如下图是有人对卷积神经网络每一层输出的特征图像做的可视化:

可以看到,第1层输出的特征图像还是很简单的形状和颜色信息,随着层数增多,到第3层的输出特征图,已经包含了相当复杂的丰富的细节信息,能够初步辨别目标了。

4,感受野(receptive field)和权值共享

除了增加卷积层和采样层,在传统人工神经网络的基础上,卷积神经网络还通过感受野和权值共享大大地减少了参数,降低了训练难度,也避免了参数过多引起过拟合(overfitting)。 卷积神经网络的输入是一幅幅的图像,根据传统的人工神经网络,在第2层的每个unit都要和输入层图像的每个像素连接,这里我们假设第2层有1M个hidden units,输入图像大小1000*1000,那么这一层要训练的权值w就是1M *1000*1000=10^12个,如下图左:

而人们发现人是通过一个局部的感受野去感受图像的,且图像的空间联系是局部的,每一个神经元并不需要对全局图像感受,每个神经元只用感受局部的图像区域,然后在更高层将这些神经元的信息综合起来得到全局信息。这样,我们就可以减少连接数目了,,假设感受野是10*10大小,那么第2层的每个unit只用和一个10*10的感受野连接,这样的感受野有100*100个,那么这一层要训练的权值w是1M*10*10=10^8个,如上图右。可以看到,通过感受野,隐层的权值个数已经从10^12降到了10^8个,每个hidden unit有10*10=100个参数。 人们认为对于不同的感受野区域,要提取的特征是相似的,比如边缘,颜色变化等等,这样,我们可以在不同的感受野用同样的方式去感受特征,也就是说,用一个卷积核去卷积全部的感受野。这就是权值共享,就是让这1M个hidden units共享同一组参数(100个权值),那么隐层权值个数就降到了100个。下图左中的红色,黑色,绿色,蓝色的感受野区域使用相同的参数来做卷积。

世上并没有用来鼓励工作努力的赏赐,所有的赏赐都只是被用来奖励工作成果的。

CNN卷积神经网络学习笔记1:背景介绍

相关文章:

你感兴趣的文章:

标签云: