这一节回顾一下卷积神经网络
第一张图是单通道的一张照片,在RGB中只有一个通道,即一个0-255的值来表示其灰度;
第二张图就是一张彩色的图片了,这里具有三个通道,也就是我们常见的RGB三个0-255的值来表示每个像素块的一个颜色信息。那么像下面这张图如果将三个通道的图像进行叠加的话
就是下面这种效果
那么问题来了,这种卷积操作我们现在还尚不明确其具体实现过程,但是从三个通道这个概念来看我们就知道其和线性的全连接网络有着不同了,那为啥不搞线性的呢?下面做出解释(只是鄙人的粗浅之见)
从这张图我们可看到构建一个三层的BP神经网络总参数量达到了335K光需要存储就得1.3MB注意这里是存储哦,还不包括其在反馈过程中对梯度等信息的保存更新所占据的空间。
这张图是追溯到1986来了哪个是后还只有486电脑,其内存是256KB,但是存储空间是超过了1.3MB但是这还不算梯度更新的存储以及分割成不同大小的batch的存储,显然当时的硬件条件是不能够支持这样规模的计算的。那要怎么搞咧?
这里就有新的概念需要提出了--感受野(receptive filed)这张照片里面反映的就是一整块图像中又可以通过不同大小的“窗”划分出不同的感受野,例如照片中的Leo(这个小B崽子),凳子,蛋糕等;从而产生了部分连接的一个网络,下面与全连接网络对比一下
如何实现部分连接呢,这里边就不得不提一个共享权值的概念,顾名思义就是不同的神经元会共用一套w和b而不是每一个神经元对应一个w和b。第二张图表示的就是,不是每一个输入节点都与下一层每一个神经元节点直接相连,而是只与最近相邻的两个相连神经元产生了连接,而通过颜色的区分我们不难看出,原来的全连接形式,每一个蓝色方框的节点与之前的五个输入节点会有5个不同的连接线,对应不同的5对w和b,也就是都采取了不同的观察方式可以这样理解。而局部连接的网络这是每个蓝色方框节点与相邻近的两个节点的观察方式也就是w和b都是相通的两组对应蓝色和绿色,那么这样通过移动窗口的方式既遍历了全部的输入节点,也共享权值减少了参数量这就是卷及操作的一个效果。如果还不是很清楚下面两张图对比可以辅助理解
这个是局部的连接,每个节点只有一小块窗口的感受野而全连接的情况如下图
这里每个节点的观察感受野都是整个图像区域而不是一个窗口,这样N个中间结点就有N个观察方式,自然而然参数量就上来了。接下来是更加实际的一章具体图像的解释,左边是全连接层,右边是局部连接的情况
那么权值共享的操作是如何达成的呢?这里可能还存在疑问,其实权值共享的操作是一个矩阵乘的过程,具体的运算如下图
这样每次只与原来图像矩阵的一部分进行运算,而且相乘的w矩阵是共享的同一个
经过一顿猛如虎的操作,我们构建了一个6层的卷积神经网络,里边两个卷积层,两个下采样层,两个全连接层,计算得到的参数量是60K而之前我们四层的一个BP神经网络是335K参数量还记得吗,是不是很神奇
扯了半天,我也一直不是很明白,啥子玩意是卷积,这个网上有很多大牛有许多通俗易懂的解释,我印象深刻的一个是卷着一张纸画了一根线然后摊开的,这里中规中矩从卷积概念的起源说起,卷积其实是一种*的运算操作,其定义来自于信号学,下面这张图暂时了在一维信号上的卷积操作;
其操作过程可以理解为一个函数x(r)与h(r)进行镜像并进行一定的偏置之后相乘,然后进行积分的一个过程,这里边偏置t就是y(t)这个卷积操作函数的参数;
转换到2维图像领域,卷积操作其实就是可以把我们的共享权值哪一个w3*3的矩阵当做基函数与镜像之后并进行偏置操作的输入矩阵,对应也是3*3的一个矩阵进行相乘,然后累加的过程,注意这里2维空间其实是对卷积中积分操作的一个离散形式。最终计算得到的值output就是我们对应的y(t)。
如此抽象的理解之后再看几个实例: