卷积神经网络
传统神经网络VS全连接神经网络VS卷积神经网络
- 传统的神经网络:
图像预处理(归一化、图像去//过拟合——数据增强——旋转、缩放、对折、改变亮度)
特征提取(颜色形状纹理)结构特征//统计特征
特征提取(颜色、形状、纹理)结构特征和统计特征
分类 - 全连接网络:
①参数数量太多
②没有利用好像素之间的位置信息
③网络层数的限制,梯度下降算法训练困难 - 卷积神经网络:
①共享权值
(一组连接可以共享同一个权重,而不是每个连接有一个不同的权重,这样又减少了很多参数。)
在在一张图像中运用相同卷积核内的参数,照片里的不同位置可能会有相同的模式出现,但是它们具有同样的视觉特征和含义,图片中不同的位置不会对卷积中的权重系数造成影响。
当你知道两种输入可以获得相同的信息,共享权重
②局部感知
(每个神经元不再和上一层的所有神经元相连,而只和一小部分神经元相连。这样就减少了很多参数。)
对某一部分特征进程提取的抽取器也同样对整幅图像有效
③下采样
(可以使用Pooling来减少每层的样本数,进一步减少参数数量,同时还可以提升模型的鲁棒性。用较少的参数处理事情 )
一个图片的奇数行和偶数列的像素去掉,变成原来的十分之一大小,不会影响人们对图片的理解。
卷积神经网络
特征图属性
stride 跨度/像素点
“padding” valid padding 会裁剪 same padding 一样的长和宽
卷积神经网络的结构由输入层、卷积层、激活层、池化层、全连接层及输出层构成
【LENET-5】Image——Convolution——Max Pooling——Convolution——Max Pooling——Fully Connected——Fully Connected——Classifier
- 卷积层
含有多个特征面,每个特征面有多个神经元,神经元通过卷积核连接前一特征面的局部区域。
利用卷积操作对图像特征进行高效提取。
API:tf.layer.conv2d/tf.,nn,conv2d
Kenrnel_size卷积核大小,取3或5
stride为步长,一般不宜过大,默认取1
Fiter 卷积核个数 - 激励层
卷积是线性运算,引入非线性映射。目的:解决神经网络不能学习非线性函数的问题
常用的激活函数有:Sigmoid、ReLU、Tanh、ELU、Maxout激活函数 - 最大池化层
输入层为6×6的图像,输出层为2×2的图像。
①减少数据数量(类似于下采样
②增强网络的鲁棒性
API:tf.layers.max_pooling2d
Pool_size池化和大小,一般为2
stride步长为2
当pool_size和stride都为2时,输出层尺寸为输入层的一半。 - 全连接层——整合
全连接神经网络的训练,分为前向传播和反向传播过程。
模型的反向传播过程等同于更新参数最优化损失函数C的过程,C是关于权重w和偏置b的函数。运用梯度下降算法更新权重和偏置,使得网络误差尽可能小,其中η为学习率。
API:tf.layer.dense(…)
Unit:神经元的数量
激活函数:ReLu
P.s. 接上一层输入之间需要把输入通过reshape函数变为一维矩阵(数组)
作为输出的全连接层不需要接激活函数
Dropout层
Dropout的提出可以利用正则化方法降低模型复杂度并提升模型的泛化能力,有效避免训练时深度网络的过度拟合现象
BN层
批量标准化(Batch Normalization)//解决梯度弥散问题
随着神经网络加深,低层的神经网络的梯度消失。加入BN层,通过规范化的手段,将偏离的分布拉回标准分布。加快学习收敛速度,避免梯度消失的问题。一般应用在卷积层后,池化层前。