神经网络
1. 感知机
- n维输入的单层感知机
- 𝑥1 至 𝑥𝑛 为 n 维输入向量的各个分量
- 𝑤1𝑗 至 𝑤𝑛𝑗 为各个输入分量连接到感知机的权量(或称权值),
- theta 为阈值
- f 为激活函数(又称为激励函数或传递函数),
- o 为标量输出。理想的激活函数通常为阶跃函数或者sigmoid函数。
- 感知机的输出是输入向量x与权重向量w求得内积后,经激活函数f所得到的标量。
2. 多层感知机(Multi-Layer Perceptron)与反向传播(Backpropagation)
- 多层感知器 (MLP) 中使用 BP 算法,采用 Sigmoid 进行非线性映射,有效解决了非线性分类和学习的问题
- 多层感知机(Multi-Layer Perceptron)是由单层感知机推广而来,最主要的特点是有多个神经元层。一般将 MLP 的第一层称为输入层,中间的层为隐藏层,最后一层为输出层。MLP 并没有规定隐藏层的数量,因此可以根据实际处理需求选择合适的隐藏层层数,且对于隐藏层和输出层中每层神经元的个数也没有限制。
卷积神经网络
1. 全连接神经网络的2大缺陷
-
1.首先是原理上的缺陷:BP神经网络仍然是有监督的传统机器学习方法,遵循着以下思路。
-
也就是说,不过是在最后面将SVM或者其他分类器换成神经网络,在大部分情况下其实没有什么优势,甚至增加了问题的复杂度。
-
2.再一个就是结构上的缺陷:参数巨多,丢失空间信息。
2. 卷积神经网络的崛起
LeNet5,1999年由深度学习三巨头中LeCun, Bengi的提出,成功用于银行支票上的手写数字识别,最重要的两个概念**(局部连接+池化)**
卷积神经网络的基本网络层
卷积神经网络:英文全称:Convolutional Neural Networks、简称:CNN
CNN 主要包含卷积层、池化层和全连接层
- 卷积层:用于对图像进行特征提取操作,其卷积核权重是共享权值的,对应的相关概念还包括步长,填充。
- 池化层:用于降低特征图大小,降低后续操作的计算量和参数量
- 全连接层:最终进行分类输出使用,本质就是多层感知机
1. 什么是卷积?
卷积在工程和数学上有非常多的应用,在信号处理领域中,任意一个线性系统的输出,就是输入信号和系统激励函数的卷积。放到数字图像处理领域,卷积操作一般指图像领域的二维卷积。
一个二维卷积的案例如上,在图像上滑动,取与卷积核大小相等的区域,逐像素做乘法然后相加。
2. 填充(Padding)
使卷积后图像分辨率不变,方便计算特征图尺寸的变化
弥补边界信息“丢失”
3. 步长(Stride)
卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动。我们将每次滑动的行数和列数称为步幅或步长(stride)。
4. 池化
对图像进行下采样,降低图像分辨率。
池化层的作用:使特征图变小,简化网络计算复杂度;压缩特征,提取主要特征
常见的池化操作可以分为:最大池化(Max Pool)、平均池化(Avg Pool),示意图如下:
5.卷积和池化输出尺寸计算
-
假设输入图片的高和宽一致,卷积核的宽和高一致,那么输入图像的尺寸与输出图像的尺寸有如下关系:
-
其中, 𝐹𝑖𝑛 是输入图像、k 是卷积核的大小、p 是图像填充的大小、s 是卷积核的步幅、 𝐹𝑜 是输出、 ⌊6.6⌋ 是向下取整的意思,比如结果是 6.6,那么向下取整就是 6
假设输入图片的高和宽一致,卷积核的宽和高一致,那么输入图像的尺寸与输出图像的尺寸有如下关系: -
其中, F i n F_{in} Fin 是输入图像、k 是卷积核的大小、p 是图像填充的大小、s 是卷积核的步幅、 F o F_o Fo 是输出、 ⌊ 6.6 ⌋ \lfloor 6.6 \rfloor ⌊6.6⌋ 是向下取整的意思,比如结果是 6.6,那么向下取整就是 6
F o = ⌊ F in − k + 2 p s ⌋ + 1 F_{o}=\left\lfloor\frac{F_{\text {in }}-k+2 p}{s}\right\rfloor+1 Fo=⌊sFin −k+2p⌋+1
6.为什么要用卷积来学习呢?
图像都是用方形矩阵来表达的,学习的本质就是要抽象出特征,以边缘检测为例。它就是识别数字图像中亮度变化明显的点,这些点连接起来往往是物体的边缘。
传统的边缘检测常用的方法包括一阶和二阶导数法,本质上都是利用一个卷积核在原图上进行滑动,只是其中各个位置的系数不同,比如3×3的sobel算子计算x方向的梯度幅度,使用的就是下面的卷积核算子。
如果要用sobel算子完成一次完整的边缘检测,就要同时检测x方向和y方向,然后进行融合。这就是两个通道的卷积,先用两个卷积核进行通道内的信息提取,再进行通道间的信息融合。 这就是卷积提取特征的本质,而所有基于卷积神经网络来学习的图像算法,都是通过不断的卷积来进行特征的抽象,直到实现网络的目标。
7. 卷积神经网络的优势在哪?
前面说了全连接神经网络的原理和结构上的缺陷,而这正好是卷积的优势。
-
1.学习原理上的改进。
卷积神经网络不再是有监督学习了,不需要从图像中提取特征,而是直接从原始图像数据进行学习,这样可以最大程度的防止信息在还没有进入网络之前就丢失。 -
2.学习方式的改进。
前面说了全连接神经网络一层的结果是与上一层的节点全部连接的,100×100的图像,如果隐藏层也是同样大小(100×100个)的神经元,光是一层网络,就已经有 10^8 个参数。要优化和存储这样的参数量,是无法想象的,所以经典的神经网络,基本上隐藏层在一两层左右。而卷积神经网络某一层的结点,只与上一层的一个图像块相连。
用于产生同一个图像中各个空间位置像素的卷积核是同一个,这就是所谓的权值共享。对于与全连接层同样多的隐藏层,假如每个神经元只和输入10×10的局部patch相连接,且卷积核移动步长为10,则参数为:100×100×10×10,降低了2个数量级。 又能更好的学习,参数又低,卷积神经网络当然是可以成功了