1、感知器(perceptron)
感知器是卷积神经网络的基本单元,下图展示了其工作原理,为了方便理解,图中只显示了3个输入。
向量w为输入向量x的权重,b为偏差,最后对x的线性组合()的值进行判断,
如果值大于0,输出1.
如果值小于0,输出0.
感知器的不同组合产生不同神经网络
增加层次
增加深度
为什么感知器可以运用于图像处理领域?
图像滤波通过图像的卷积运算来实现,其公式如下:
其实卷积运算也是像素值的线性组合,权重为滤波器对应像素位置的值。
图像的卷积运算也可以通过感知机来表示。
下面的内容先介绍是什么,然后讲如何理解,最后说为什么。
2、卷积神经网络(CNN)
卷积神经网络中常见的一种架构如下图所示。
图中的每一stage可以视为图像的特征提取,图中只显示了3个stage的特征提取。
如果希望提取到更多的细节,可以增加 stage。
每一个stage由3小步骤组成,
第一为卷积层,提取特征;
第二为LCN(Local Contrast Normalization,局部对比度归一化),归一化局部图像的对比度。
第三为Pooling,池化,缩小图片大小。
2.1 卷积层(convolutional layer)
假设一张图像32*32*3(3为RGB颜色通道),滤波器为5*5*3,卷积后得到特征图像(28*28*1),这里默认stride 为1。
如果使用6个不同的滤波器进行卷积后,将会得到6个不同的特征图像
如果步长(stride)为1,滤波器每隔一个像素点移动(向右移动,或向下移动)。
如果步长为2,滤波器每隔两个像素点移动,如下图所示。
若原图大小为N*N,滤波器大小为F*F,步长为S,则卷积后的图像大小为:
2.2 局部对比度归一化(LCN)
图像归一化公式
其中
N(x,y) 表示将图像中的像素值建模成为的正态分布。
m为均值,为标准差。
2.3 池化(Pooling)
池化的主要功能是缩小图片,减少计算量。
池化有两种一种是最大值池化,一种是均值池化,较常用的为最大值池化。
其公式如下:
如果公式很难看懂,可以如下图方式理解最大值池化;
一张4*4的图像,每2*2个像素组成一个小方格,
取小方格中四个像素中最大的那个值,然后扔掉其它值,
这样就形成一个新的2*2的图像,图片变小了。
2.4 全连接层
全连接层的第一步需要flattening图像,
如下3*3图像,可视为二维矩阵
flattening后成为1*9的向量:
然后进行全连接,关于全连接的原理,需要另外用一章来说,涉及很多知识。
3 关于卷积神经网络的直观理解
这一小结的内容发现大牛‘沉迷学习的糕糕’发表在其知乎的个人专栏了,非常详细,整个内容分为两个部分:
卷积神经网络CNN完全指南终极版(一)
卷积神经网络CNN完全指南终极版(二)
4 关于卷积神经网络的一些问题
4.1 为什么要使用LCN(local contrast normaliz)
对于两张图片(仅仅只是对比度不同),如下图所示。
在提取特征过程中,希望眼睛这个部位的特征不受对比度影响,所以使局部对比度归一化
4.2 为什么使用最大值池化
对于滤波后的图片,无论是求边缘或是实现其它功能,最有用的是哪些高亮度值的像素点,
非极大值抑制也是利用亮度值最高的像素。