卷积网络CNN的基本学习
卷积神经网络(Convolutional Neural Network,CNN)
神经网络的基本内容
- 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应
- 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN) ————摘自百度百科
神经元
- 神经网络是由大量的神经元互相连接而成
- 权重(weight):每两个神经元之间的连接的加权值
- 权重和激活函数会影响神经网络的输出结果
- 神经元的结构:
- 线性函数
- 非线性的激活函数
- 常见的函数:Sigmoid、Tanh、ReLU等。(其中前两者多用于全连接层,ReLU函数多见于卷积层(隐藏层))
- 作用:改变数据的线性关系,并且将数据映射在某个范围内,防止数据过大溢出)
- 是神经网络可以逼近任意函数的关键。
神经网络结构
- 输入层(Input Layer):
该层可以处理多维数据,一般来说,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱的采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组… - 输出层(Output Layer):
在图像分类问题中,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签;在物体识别(object detection)问题中,输出层可设计为输出物体的中心坐标、大小和分类;在图像语义分割中,输出层直接输出每个像素的分类结果 。 - 隐藏层(Hidden Layer):
在输入层与输出层之间夹着的层,且层和层之间是全连接的结构,同一层的神经元之间没有连接。
感受野(Receptive Field)
- 概念:某个神经元能在输入层(Input Layer)看到的输入图像的区域,即特征图上的某个点能看到的输入图像的区域
- 感受野的值越大,所能接触到的原始图像的范围就越大,也意味着可能包含了更为全局、语义层次更高的特征;反之,感受野的值越小,所能接触到的原始图像的范围也就越小,也意味着可能包含更多的局部信息和细节特征。
- 计算:
- 卷积层和池化层都会影响其大小
- 激活函数、当前层的步长以及填补不会影响其大小
- RF(i+1)=RF(i)+(f-1)*S(i)
特别标注:- RF(i+1)表示当前所在层的感受野的大小
- f表示卷积核的大小
- S(i)表示除本层外,之前所层的步长的乘积
卷积(Convolution)
- 作用:使每个神经元局部连接上一个神经元并且共享权值
- 卷积核(共享权重),偏置函数(共享偏置)
卷积核(Kernel)
- 概念:相当于filter过滤器,指定卷积核大小需要小于输入图像的尺寸;卷积核越大,输入特征越复杂。
- 不同的卷积核大小,不同的填充大小以及不同的步长都会影响输出结果的大小。
对于其计算:- (单通道的情况下)
设:输入大小 = (n1, n2),卷积核大小 = (f1, f2),填充为P,步长为S,输出图像大小 = (a2, b2),则有
a2 = (n1 + 2P - f1) / S + 1;
b2 = (n2 + 2P - f2) / S + 1; - 在多通道的情况下,只需保证卷积核的通道数与输入数据的通道数保持一致即可,其余均同上。
- (单通道的情况下)
- 卷积核的数目=输出数据的通道数
- 通道的输出数据应与对应的偏置函数(bias)相加。