神经网络与深度学习第三周课程总结
4.性能优化
4.3性能优化问题描述
4.3.1待解决问题
4.3.2基本思想
4.4二阶算法
4.4.1牛顿法
4.4.2其他二阶优化算法
4.5常用模型技巧
5.卷积神经网络
5.1卷积与滤波
5.1.1图像卷积定义
5.1.2图像计算过程
5.1.3图像去噪
5.2卷积神经网络基本概念
5.3图像边缘检测
5.4LeNet-5网络
5.4.1模型介绍
5.4.2结构
4.性能优化
4.3性能优化问题描述
4.3.1待解决问题
问题:权值如何取值才能使指标函数最小,即函数最小化问题。
4.3.2基本思想
基本想法为建立迭代模型,形式简便,类似于最速梯度法。
类比泰勒展开,考虑函数f(x)在x*点处展开有如下公式:
结果如图:
显然,二次展开在邻域内精确度已达到要求,后续均已二次展开为中心进行总结。
二次展开后选取基本点:全局极小点,局部极小点。
满足条件:
一阶
二阶
特殊鞍点:沿某方向是极大值点,沿另一方向是极小值。
进一步推导得:对某一算法有效可以缩小到对二次型有较好的应用效果。
4.4二阶算法
4.4.1牛顿法
牛顿法的基本思想:利用迭代点处的一阶导数(梯度)和二阶导数(Hessian矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似最小值。
公式如下:
求导并且令导数等于零,得到更新公式:
4.4.2其他二阶优化算法
高斯牛顿法:高斯-牛顿法(Gauss–Newton algorithm),它是牛顿法的修改版,用于寻找函数的最小值。和牛顿法不一样,它只能用于解决最小二乘问题。但是优点是,不需要二阶导数(二阶导数可能很难计算)。
Levenberg-Marquardt算法:它是利用梯度求最大(小)值的算法,属于“爬山”法的一种。它同时具有梯度法和牛顿法的优点。当λ很小时,步长等于牛顿法步长,当λ很大时,步长约等于梯度下降法的步长。
4.5常用模型技巧
模型初始化:
1.把所有权值在[-1,1]区间内按均值或高斯分布进行初始化。
2.Xavier初始化:为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等,实现如图分布。
训练数据与测试数据:
通常训练比重占绝大部分,验证与测试平分,当数据集过大时,适当减少训练与验证。还可以采取K折交叉验证,即原始训练数据被分成 K 个不重叠的子集。 然后执行 K 次模型训练和验证,每次在 K−1 个子集上进行训练, 并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。 最后,通过对 K 次实验的结果取平均来估计训练和验证误差。
欠拟合与过拟合:
欠拟合误差一直很大,过拟合在训练集上误差小,测试集上误差大,如图所示
权重衰减:为了防止震荡和过拟合的出现,加入新指标函数
第二项能够约束权值大小。
Dropout:每次迭代中,在计算下一层前,将现有层一些节点置零。
即我们在前向传播的时候,让某个神经元的激活值以一定的概率p(伯努利分布)停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。
5.卷积神经网络
5.1卷积与滤波
5.1.1图像卷积定义
卷积被定义为:一个函数经过翻转和移动后与另一个函数的乘积的积分。执行卷积的目的是从输入中提取有用的特征
一维公式如下:
图像卷积(二维)与一维类似:
g称作滤波器
5.1.2图像计算过程
滤波:
卷积:
1.滤波器𝑔(𝑦,𝑧)左右、上下反转得到𝑔(−𝑦,−𝑧)
反转的目的:
在LTI和LSI中,信号在时间和空间中移动不改变其特性,不断有信号随时间移动和系统产生响应,某一时刻的输出(即卷积输出)不仅包括当前信号的响应,还有之前信号的残留,所以是累加的,转换卷积核是为了计算这一过程。
2.按照前述公式计算卷积(先乘后累加)
5.1.3图像去噪
均值滤波:
平均值滤镜是一个简单的滑动窗口空间滤镜,它用窗口中所有像素值的平均值(均值)代替了窗口中的中心值。窗口或内核通常是正方形,但也可以是任何形状。
均值滤波器在目标图像中滑动(卷积),用卷积核窗口中所有像素值的平均值替换目标像素值,卷积核一般是正方形,但也可以是任意形状,下图显示了N*N均值滤波卷积核:
均值滤波有操作简单,效率高,易于实现的优点,可以得到物体特征的粗略描述。但是不能很好地保护图像细节,在给图像去噪的同时也破坏了图像细节部分,丢失图像特征信息。
加权平均滤波:
在一个小区域内像素值加权求平均,公式如下:
5.2卷积神经网络基本概念
全连接网络:链接权过多,难算难收敛,同时可
能进入局部极小值,也容易产生过拟合问题
局部连接网络:只有一部分权值连接。部分输入和权值卷积。
特征提取:
填充(Padding),也就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。
步长(Stride):如图步长为2
多通道卷积:例如:对于彩色图片有RGB三个通道,需要处理多输入通道的场景。
池化(Pooling):
思想:使用局部统计特征,如均值或最大值。解
决特征过多问题
卷积神经网络结构:
卷积神经网络是一种多层的、前馈型网络。从结构上,可以分为特征提取阶段和分类识别阶段。
卷积层: k 个滤波器
下采样层:采用mean或max
后面:连着全连接网络
递推的前向传播定义为:
如果第l层为卷积+池化层:
5.3图像边缘检测
Prewitt算子卷积核:
Prewitt算子是一种图像边缘检测的微分算子,其原理是利用特定区域内像素灰度值产生的差分实现边缘检测。由于Prewitt算子采用 3x3 模板对区域内的像素值进行计算,而Robert算子的模板为 2x2,故Prewitt算子的边缘检测结果在水平方向和垂直方向均比Robert算子更加明显。
下面给出Prewitt算子的模板,在像素点P5处 x 和 y 方向上的梯度大小 g_x 和 g_y 分别计算为:
Sobel算子:
Sobel算子包含两组3 × 3的矩阵,分别为横向和纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
水平模板:
纵向模板:
图像的每一个像素的横向及纵向梯度近似值,可用以下的公式结合,来计算梯度的大小。
然后可用以下公式,计算梯度方向
LOG算子:
LOG算法是改进的边缘检测算子,是平滑算子与 Laplace 算子的结合,因而兼具平滑和二阶微分的作用,其定位精度高,边缘连续性好,计算速度快。
计算公式如下:
Canny算子:
Canny边缘检测算子是一种多级检测算法。满足三大准则:
1.低错误率的边缘检测:检测算法应该精确地找到图像中的尽可能多的边缘,尽可能的减少漏检和误检。
2.最优定位:检测的边缘点应该精确地定位于边缘的中心。
3.图像中的任意边缘应该只被标记一次,同时图像噪声不应产生伪边缘。
计算步骤:
高斯模糊:应用高斯模糊去除噪声,降低伪边缘的识别。
计算梯度幅值和方向:图像的边缘可以指向不同方向,因此经典Canny算法用了四个梯度算子来分别计算水平,垂直和对角线方向的梯度。
非最大值抑制:非最大值抑制是一种边缘细化方法,能帮助保留局部最大梯度而抑制所有其他梯度值。
双阀值:Canny算法应用双阀值,即一个高阀值和一个低阀值来区分边缘像素。如果边缘像素点梯度值大于高阀值,则被认为是强边缘点。如果边缘梯度值小于高阀值,大于低阀值,则标记为弱边缘点。小于低阀值的点则被抑制掉。
滞后边界跟踪:这个算法搜索所有连通的弱边缘,如果一条连通的弱边缘的任何一个点和强边缘点连通,则保留这条弱边缘,否则抑制这条弱边缘。
5.4LeNet-5网络
5.4.1模型介绍
如图所示,LeNet-5一共包含7层(输入层不作为网络结构),分别由2个卷积层、2个池化层和3个连接层组成,网络的参数配置如表1所示,其中下采样层和全连接层的核尺寸分别代表采样范围和连接矩阵的尺寸
表1 LeNet-5网络参数配置
5.4.2结构
1、卷积层C1
手写数字数据集是灰度图像,输入为32 × 32 × 1 的图像,卷积核大小为5 × 5 ,卷积核数量为6,步长为1,零填充。最终得到的feature maps大小为(32 − 5 + 1 = 28 )。
2、下采样层S2
卷积层C1 之后接着就是池化运算,池化核大小为2 × 2 2,LeNet-5池化运算的采样方式为4个输入相加,乘以一个可训练参数,再加上一个可训练偏置,结果通过sigmoid,
3、卷积层C3
如图所示
C3中可训练参数并未直接连接S2所有的特征图,而是如图所示稀疏连接。在原论文中解释了使用这种采样方式原因包含两点:限制了连接数不至于过大(当年的计算能力比较弱);强制限定不同特征图的组合可以使映射得到的特征图学习到不同的特征模式。
4、下采样层S4
与下采样层S2 类似,采用大小为2 × 2,步距为2的池化核对输入feature maps下采样,输出feature maps大小为5 × 5 。
5、卷积层C5
与卷积层C3不同,卷积层C5的输入为S4 的全部feature maps,由于S4 层的16个图的大小为5 × 5 ,与卷积核的大小相同,所以卷积后形成的图的大小为1x1。
6、全连接层F6 和output
F6有84个神经元,与C5全连接,总连接数(120+1)*84=10164。
output由欧式径向基函数单元构成,每类一个单元, 输出RBF单元计算输入向量和参数向量之间的欧式距离。