所有你需要知道的关于卷积神经网络(cnn)
介绍
卷积神经网络(cnn)已经成为一个流行的图像相关任务的工具如图像处理、图像识别、图像恢复、图像生成。
cnn实现高性能由于他们识别图像模式的能力从大量的训练图像。他们可以被用来识别模式这可能不是肉眼是看不到的。例如,cnn可以识别简单模式形状和颜色和更为复杂的模式噪声的统计分布在嘈杂的图像。
cnn利用图像的输入由这一事实,因此与常规神经网络不同,a的层CNN在三维神经元排列宽度、高度和深度。
本地连接和参数共享
两种技术用在cnn
- 本地连接
- 参数共享。
本地连接是每个神经元的概念只连接到输入图像的一个子集,与所有的神经元的神经网络是完全连接。
此外,随着参数共享在一个特定的功能,所有神经元地图将共享相同的权重。参数共享是基于这样一个假设,如果一个特性是有用的计算在某一空间位置(xi,易),那么它也应该有用的计算在一个不同的位置(xi + n,易建联+ n)。
本地连接和利益共享参数:
- 减少整个系统的参数,使计算更加高效。
- 允许cnn识别相同的图像模式的任何部分的形象,无论规模、旋转或扭曲。
cnn将原始图像从原始像素值一层一层地最后预测像素值。卷积的局部性质是有效的关于理解的视觉数据,和诱导非线性允许更复杂的数据表示。
卷积层(CONV)
cnn的名字源于网络中最重要的一个操作卷积(CONV)。CONV层不同的数值滤波矩阵,可以用来执行许多操作等边缘检测,锐化和模糊。因此,从一个图像不同的过滤器可以检测不同的特性,例如边缘,曲线等培训期间(称为特征——自动学习)。
每个过滤器是小空间宽度和高度,但通过输入量的全部深度延伸。过滤值是无法提前知道但在培训过程中学习。重初始化成本极小化过程中起着决定性作用的模型,而这决定了模型的最低培训/优化过程将目标的方法。
特征映射/卷积特性
在CNN的术语中,滑动形成的矩阵滤波器在图像和计算点积称为“卷积特性”或“激活图”或者是“功能图”。当多个过滤器CONV层存在,每个人都将产生一个单独的二维地图激活。
地图的大小特征是由三个参数控制
- 深度
- 步
- P添加
深度
的深度输出的数量对应于过滤器用于卷积操作的数量。每个过滤器输入学会寻找不同的东西。当n过滤器使用卷积生成n堆叠2 d矩阵称为特征图。在这种情况下的深度特征映射是n。
步
步是像素的数量我们滑动滤波器矩阵的输入矩阵。我们将表示大步在美国跨年代等于1意味着我们将过滤器一个像素。高步产生较小的特征图谱。
填充
第三个参数是调用填充。垫输入矩阵的常用做法是零在一个图像的边界,以筛选与输入图像矩阵的元素。它有助于保持更多的邻近像素的图像信息。补零还允许我们控制特征图的大小。它允许使用CONV层没有一定的高度和宽度缩小卷。我们将表示补零的数量作为重要的特殊情况是p .“相同”卷积,高度和宽度的正是CONV层后保存。
特征映射/卷积特性尺寸计算
如果我们表示:
- F:的空间范围和过滤器
- 凯西:卷积过滤器的数量
- S:像素的跨步。当跨越1我们把过滤器一个像素。当跨越2然后过滤器跳2像素在我们周围。更高的步伐将会产生更小的输出卷空间。
- 病人:的大小补零。零填充垫边界周围的输入量0。补零让我们来控制输出量的空间大小。
的特征映射/卷积特性尺寸(Wi + 1×嗨+ 1×Di + 1)计算为:
- Wi + 1 = (Wi−F + 2 p) / S + 1
- 嗨+ 1 =(嗨−F + 2 p) / S + 1
- Di + 1 = K
图2表示一个CONV层。由于3 d卷难以想象,所有的卷
- 的输入音量大小W1 = 5, H1 = 5, D1 = 3(蓝色)
- 重量的大小K = 2, F = 3(红)
- 的输出音量大小W2 = 3, H2 = 3, D3 = 2(绿色)
可视化与每个深度片就行。
输入音量大小的W1 = 5, H1 = 5, D1 = 3,和CONV层参数K = 2, F = 3 S = 2, P = 1。也就是说,我们有两个过滤器的大小3×3,他们应用步伐的2。因此,输出音量大小空间大小(5 - 3 + 2)/ 2 + 1 = 3。此外,注意到一个填充的P = 1是应用于输入量,使输入的外部边界体积为零。
如果我们考虑一个5 x 5 x 1形象和内核K大小3 x 3 x 1。CONV操作幻灯片3 x3滤波器对原始图像1像素步和为每一个位置,它聪明的两个矩阵之间的乘法计算元素并添加乘法输出得到最终的整数形式输出矩阵的一个元素(图2)。
可训练的数量参数计算的例子
CONV层的重量和偏见是可训练的CNN正试图优化参数。更多的可训练的参数允许CNN学习更多和更复杂的图像表示,但该模型优化过程较慢和更多的计算量。
能够计算可训练的参数在CNN的数量很重要,因为它允许你计算你需要的计算资源培训网络。
- 如果你1大小3 x3的过滤器适用于RGB图像(3个输入通道)与图像尺寸x 200像素200像素的数量可训练的参数计算:(3 * 3 *3+ 1)* 1。这里每个过滤器3 * 3 * 3重量和1为每个过滤器我们应用偏差项。
- 如果你1大小3 x3的过滤器适用于灰度图像(1输入通道)与图像尺寸x 200像素200像素的数量可训练的参数计算:(3 * 3 *1+ 1)* 1。这里每个过滤器3 * 3 * 1重量和偏见为每个过滤器我们应用术语。
- 如果我们要申请64过滤器相同大小3 x3的灰度图像(1输入通道)和图像尺寸x 200像素200像素的数量可训练的参数计算:(3 * 3 * 1 + 1)*64年。这里每个过滤器3 * 3 * 1重量和偏见为每个过滤器我们应用术语。
如果你有多个隐藏层,你将需要添加的数量在每个隐层可训练的参数。
大量的过滤器(因此更多的可训练的参数)导致更高的提取功能结果更好地执行模型识别模式时看不见的图像。每个过滤器是小空间宽度和高度,但通过输入量的全部深度延伸。激活功能CONV层后也常用吗引入非线性特性。
图3可视化在隐藏层的学习特性。早期层学习识别简单的模式,如直线和曲线而层网络中能够理解更为复杂的模式(如一个眼睛,一个鼻子,一个尾巴,车轮等取决于图像的背景下)
在cnn一些层包含参数而其他人没有。
例如,一个函数的卷积层执行转换不仅输入的激活体积,而且他们的参数。另一方面,非线性激活实现固定功能。
神经元CONV层的参数包括重量和偏见与梯度下降训练,CNN的预测像素值计算是一致的与地面真理为每个图像像素值的训练集。
CNN输出y的简单的形式表示为:
在哪里x是输入,ȳ预测输出,Wi是卷积矩阵的第i个层,bi是第i个CONV层的偏见,fi是一个非线性函数,Θ所有可调参数的集合包括吗Wi和bi。虽然有几种非线性函数、ReLU即f (x) = max (0, Wixi + b)常用在现代深架构。
CNN模型被训练使用K训练图像和CNN框架的目标是找到一个最优参数集(重量和偏见)经验损失减小到最低限度
损失函数
学习的过程需要的定义损失函数之间的差异的量化预测输出和输入的真实价值超过一组的多个输入输出对表示为(x, y)。损失函数是用于学习Θ可训练的参数。
为例子在的情况下图像去噪任务,输入和输出模型的是一个图像,
- xk: k输入(嘈杂的图像)
- 即:k地面实况输出(零噪音图像,地面真值只能在训练集)
- f (xk;Θ):预测输出()去噪图像
这里yk和f (xk;Θ);应尽可能以最小化损失函数。
在回归任务,比如图像去噪和增强,L表示:
- 的pixel-wise均方误差(MSE)地面真理去噪图像和预测之间的去噪图像
- 的峰值信噪比(PSNR)这是最大可能值之间的比例(权力)的噪声信号和扭曲的力量影响的质量表示
- 的结构相似度指数(SSIM)。SSIM作为指标来衡量两个给定的图像之间的相似性。SSIM提取3关键特性从一个图像一个。亮度对比b。c。结构和两张图片之间的比较这三个特性的基础上执行。
在图像分类任务,如图像识别中,L表示:
- 的叉(即日志损失):计算预测类概率之间的差异与地面真理在对数刻度。
- 的二叉叉是一个特例的叉——用于二进制分类任务,目标是0或1。
- 的加权熵准确性:提高叉通过添加权重某些方面(如某些对象类)代表性数据(例如,对象发生在更少的数据样本)。用于不平衡的数据集(例如,当图像的背景代表了特定的对象,对象感兴趣的前景不足)。
模型训练
假设损失函数是可微的,情商的最小化问题或网络培训。2可以解决一个错误反向传播法。
反向传播
的目标反向传播是计算偏导数(即梯度)∂L /∂w和∂成本函数的L /∂b L对任何重量w b在网络或偏见。
梯度
的梯度的偏导数是一个矢量指向的方向最大增加损失函数和相应的负梯度下降法,给出了函数的最大减少的方向。
每个元素的梯度描述函数的斜率L时朝着那个坐标方向的每个组件的大小负梯度向量描述了敏感的成本函数是每个重量和偏见。
梯度下降法
梯度下降法是学习的过程,重量和偏见减少选择成本(即损失)的功能。
有各种类型的迭代方法从一些初始解开始,然后随着时间的推移逐步改善。一种方法是使用当地的几何(图4)并遵循斜率最小。在一维问题,斜率是函数的导数。所以在一维的情况下在一个标量函数f, z,然后输出曲线的高度,可以计算斜率或衍生品在任何时候。
这可以很容易地推广到多变量函数,例如z是一个整体的向量。导数的推广在多变量设置梯度。
学习速率
步长或学习速率是一个超参数在每个训练迭代控制算法步骤多远(要多少调整权重)最小的方向。如果学习速率很低,可能需要很长时间来收敛。如果学习速率太高损失函数可能会继续增加,而不是减少。
随机梯度下降法(SGD)
全部损失的数据集可以计算出的平均损失在整个训练集的大小N .然而,在实践中,这通常N是非常大的,这使得计算损失非常昂贵,需要计算太多的评价这个函数。因此,随机梯度下降法,而不是计算损失和梯度整个训练集,而不是在每次迭代中少量的训练样本例子,称为小批量。小批量用于计算估计的或真实的梯度。
随机梯度下降法有几个缺点。随机梯度下降法时发生的一个问题损失变化迅速在一个方向上,慢慢地在另一个。这发生在当损失函数条件数高,意味着最大比海赛矩阵的最小奇异值大。SGD在这种类型的运行时功能,梯度的方向与方向不一致的最低。相反,它沿着敏感维数越少,发展缓慢曲折来回快速变化的维度。这个问题变得更加强烈的多个维度。SGD也会陷入局部最小值的梯度为零。在SGD梯度来自小批量可以吵了。如果有噪音在梯度估计SGD蜿蜒在空间向最小花费的时间太长。
随机梯度下降法与动力
一个简单的解决方案SGD的解决问题是通过添加动量项。通过添加一个动量词是可能的随着时间的推移保持速度。速度是初始化为零,计算的加权和梯度随时间最近的梯度是体重更重。当使用动力两个向量存在每个当前点,梯度的方向和速度矢量的方向。动量更新期间,SGD将一步的方向这两个向量的加权平均。这样可以克服局部最小值,继续下降到最低。此外,虽然构建速度随着时间的推移,噪声得到平均的梯度估计和SGD最终采取更加顺畅的道路最低。
RMSProp
RMSProp是另一个优化,可以吗用于克服SGD的缺点。它是类似于SGD与动力更新的区别有动力的平方梯度在实际的梯度而不是动力。RMSprop具有加速运动的特性沿一维和减速运动其他维度。调整轨迹如平等的进步在所有的维度。
自适应估计时刻(亚当)
亚当了SGD与动量和RMSProp的优点。亚当是表现最好的优化方法在大多数情况下。
亚当优化维护估计第一次和第二次的时刻。然后它使第一时刻的估计的加权和梯度。同时它使用一个移动的估计第二时刻像RMSProp平方梯度的运动估计。在更新步骤,步骤使用速度的一阶矩和二阶矩平方梯度项。
亚当也使用偏差修正项避免的问题采取非常大的步骤开始时,速度是初始化为零。亚当已经三个超参数β1,β2和ε。的超参数β1用于计算的均值衍生品(dw),也被称为第一时刻。的超参数β2,用于计算的指数加权平均方块(dw2),叫做二次矩。ε是一个小的正数用来避免分母为零。
来源
本文总结以下的来源。