当前位置: 首页 > news >正文

拥有自己的网站建站宝盒小程序

拥有自己的网站,建站宝盒小程序,设计签名免费纯手工签名,大芬网站建设一、卷积 #xff08;1#xff09;什么是卷积 定义#xff1a;特征图的局部与卷积核做内积的操作。 作用#xff1a;① 广泛应用于图像处理领域。卷积操作可以提取图片中的特征#xff0c;低层的卷积层提取局部特征#xff0c;如#xff1a;边缘、线条、角。 ② 高层…一、卷积 1什么是卷积 定义特征图的局部与卷积核做内积的操作。 作用① 广泛应用于图像处理领域。卷积操作可以提取图片中的特征低层的卷积层提取局部特征如边缘、线条、角。 ② 高层的卷积从低层的卷积层中学到更复杂的特征即局部特征的组合如前景与背景的组合从而实现图片的分类和识别。 2卷积的特点 主要特点局部感知和权值共享。 局部感知卷积的大小远远小于图像局部的像素联系比较密切而距离较远的像素相关性较弱。因此每个特征没必要对全局图像进行感知只需对局部进行感知然后在更高层将局部的信息 综合起来得到全局信息。 权值共享使用相同的卷积核去提取特征参数可以共享。带来了平移不变性无论目标物体平移变换到图像中的哪个位置卷积核都能以相同的方式卷积核相同对其进行处理提取出相同的特征。 3卷积和全连接的区别 输入输出的结构卷积输入输出都是 NCHW 批次大小、通道数、高度、宽度格式全连接输入输出都是 NV 批次大小、特征向量维度结构。 知识点补充深度学习框架中数据一般是4D如NCHW分别代表 BatchN、ChannelC、HeightH、WidthW。如假设N2C16H5W4逻辑上就是如下4D图 计算机存储上是一维的二进制因此存取数据的顺序是①W方向②H方向③C方向④N方向。用上图举例即W000、001、……、H004、005、……、019、C020、021、……、039、N320、……、639。 全连接会把一整个特征图拉成一个向量V因此只有NV两个维度。 层之间的连接方式全连接网络两层之间的神经元是两两相连两层各任选出一个神经元这两个神经元是连接的卷积是部分相连提取的特征只与卷积核覆盖的局部图像的特征有关。 全连接不适合做 CV① 全连接导致参数量过多提高过拟合风险即在训练集上表现好在测试集上表现差扩展性差。 ② 使用Sigmoid激活函数它的导数值最大为0.25网络每更深一层梯度值就会乘上一个不超过0.25的导数使梯度值越来越小甚至“梯度消失”。因此全连接网络存在局限梯度传播很难超过 3 层。 ③ 邻近像素关联性强距离较远像素关联性弱。全连接网络将每个像素视为独立特征没有利用像素之间的位置关系信息。 卷积适合做 CV① 局部连接卷积核只有局部特征图的大小、权重共享使用相同的卷积核、池化压缩特征图尺寸随之使用的卷积核尺寸减小参数量大大减少。 ② 使用Relu激活函数其在正值区域梯度恒为1避免了Sigmoid激活函数在极端值处梯度消失的问题有利于深层网络训练。 ③ 局部感知利用了像素之间的位置关系信息。 4卷积的相关计算 卷积结果的长、宽计算公式 计算结果向下取整。、表示输入数据的长、宽、表示卷积核的长、宽P表示边缘填充的宽度乘以2是因为数据的两边都会填充P的宽度S为滑动窗口的步长。 卷积层参数量的计算 表示卷积核的高度表示卷积核的宽度表示输入的通道数卷积核的通道数表示输出的通道数卷积核的个数。结尾再加是因为每个卷积核还有一个偏置项。 5感受野 定义输出特征图上的一个特征点对应于原图像素点的映射区域的大小。 来源VGG网络提出通过堆叠多层小卷积核如3*3代替一层大卷积核如5*5、7*7保持了与大卷积核相同的感受野并增加了其它优势 ① 减少了网络的参数随之降低了过拟合风险、提高了计算速度。 ② 卷积层越多每层专注于学习更简单的问题提取的特征越细致。 ③ 卷积层越多加入的非线性变换越多Relu激活函数可以表现更复杂的东西。 有效感受野① 实际上的有效感受野认为每个像素的贡献不同远远小于理论感受野认为每个像素的贡献相同。并且越靠近感受野中心的特征值在卷积层中被使用次数越多即对输出层的特征图点的贡献越大即越有效如下图所示 x表示卷积层的输入w表示卷积层的权重o表示卷积层的输出。靠感受野边缘的特征只参与了的计算而靠中间的参与了第一层输出的所有特征值的计算。因此只能通过来影响而能通过、、、、、、、、来影响很明显比对更有效。输出层的特征点的感受野有效性类高斯分布向边缘递减如下图所示 ② anchor 应该与有效感受野相匹配。 感受野大小计算公式 注意① 第一层卷积层的输出特征图像素的感受野的大小等于滤波器卷积核的大小。 ② 深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关。 ③ 计算感受野大小时忽略了图像边缘填充的影响即不考虑 padding 的大小。以下公式是从输入层开始逐渐迭代计算到输出层的特征的感受野。 其中  表示第 k-1 层输出的特征图对应的感受野大小 表示第 k 层的卷积核、或者池化层的池化大小 表示第 i 层的滑动窗口步长初始值  为1。用以下的一个例子示范感受野大小的计算 第一层输出的感受野 第二层输出的感受野  第三层输出的感受野 神经元感受野的值越大表示其能接触到的原始图像范围就越大也意味着它可能蕴含更为全局语义层次更高的特征相反值越小则表示其所包含的特征越趋向局部和细节。因此感受野的值可以用来大致判断每一层的抽象层次。 如果使用的是空洞卷积公式则如下 其中  表示第 k 层的空洞率。 6反卷积转置卷积 作用主要用于上采样就是扩大输入特征图的尺寸还可以用来近似重构输入图像、卷积层可视化。 运算步骤以下的 k 表示卷积核尺寸s 表示每个像素间的距离如下图所示 p 表示初始卷积核可以卷积到图像的尺寸如下图所示 ① 填充输入特征图在输入特征图的元素间填充 s-1 长度的行和列填充值为0在特征图四周填充 k-p-1 长度的行和列填充值为0。 ② 翻转卷积核上下、左右翻转。 ③ 做普通的卷积运算。  可以看到转置卷积最终还是做普通的卷积因此转置卷积是一种特殊的正向卷积。 示例 动图来源于GitHub - vdumoulin/conv_arithmetic: A technical report on convolution arithmetic in the context of deep learning 上面动图的蓝色部分是输入特征图虚线部分是对输入特征图的填充绿色部分是输出特征图总的效果是从输入特征图的3*3变为输出特征图的5*5尺寸变大。假设上图的s2p1k3则元素间距填充2-11边缘填充3-1-11。在做普通卷积的时候padding为0stride为1。 输出特征图的长、宽计算公式 _ _ 如果使用空洞卷积或者做普通卷积的时候padding不为0那么用如下的公式 __ __ 其中  表示空洞率_ 表示做普通卷积时的边缘填充宽度。 转置卷积运算步骤的推导以下图的普通卷积为例子步长为1边缘填充宽度为0卷积核尺寸为3。 在理论讲述普通卷积的计算时说都是以滑动窗口的形式计算的但是这种滑动的方式非常低效因此在实际计算时用了下面的一种计算方法 ① 将卷积核转换为跟输入特征图尺寸相同的等效矩阵 ② 将输入特征图展平为行向量 ③ 将所有等效矩阵展平为列向量并合并为一个矩阵 ④ 最后将输入特征图与卷积核等效矩阵相乘就能得到输出特征图 现在有一个问题如果知道卷积核参数C以及输出矩阵O那么可以计算输入矩阵I吗可能会说在两边都乘以一个C的逆矩阵就行了但是逆矩阵必须为方阵而C并不是方阵因此这个方法行不通反卷积不是卷积的逆运算。现在放宽条件不要求计算原始输入矩阵 I只要求与原始输入矩阵相同尺寸的矩阵这样便是可以的方法如下 将输出矩阵 O乘以卷积核等效矩阵的转置 得到大小为 1*16 的矩阵 P可以看到它与输入矩阵 I 的参数不同但尺寸相同。最终效果是把一个 2*2 的矩阵上采样扩展为一个4*4 的矩阵。因此反卷积操作不能还原出卷积之前的特征图只能还原出卷积之前特征图的尺寸。 接下来讲述的是反卷积运算步骤是怎么来的 ① 把矩阵 O 还原为 2*2 的矩阵形式把  的每一列变为 2*2 的等效矩阵形式再将 O 与每一个等效矩阵在相应位置相乘相加就能得到矩阵 P 与之还有一种等效的做法将下图的绿色矩阵在填充后的矩阵 O 上滑动做卷积会发现得到的结果与 P 一模一样。下图是将绿色矩阵与第一个滑动窗口相计算 实际上绿色矩阵就是一开始用卷积核 kernel 在 4*4 的输入特征图上做普通卷积得到 2*2 的输出特征图中的卷积核的上下、左右的翻转矩阵 7空洞卷积 作用在保持输出特征图的尺寸与输入特征图的尺寸一致的条件下扩大输出特征图像素的感受野并能保证不会因为下采样而丢失信息。通常情况下为了扩大感受野会进行下采样然后用上采样还原到原图的尺寸但下采样造成的信息丢失在上采样中是无法弥补的。因此为了避免因下采样而造成更多的信息丢失就使用空洞卷积。 为什么扩大了感受野在空洞卷积中加入了一个新参数  表示空洞率空洞率就是卷积核的参数间的间隔参数间空的部分填充0扩大了实际上的卷积核尺寸因此会扩大感受野。如下图的所示蓝色表示输入绿色表示输出深蓝色表示卷积核参数 在卷积核的参数个数都为9的情况下传统卷积的感受野是 3*3 而空洞卷积的感受野是 5*5。 为什么能保持尺寸不变上图中的空洞卷积后的特征图尺寸变小是因为没有对输入图像进行边缘填充。对输入特征图进行边缘填充padding不为0输入特征图的信息全保留了下来不像用池化进行下采样比如 max-pooling 只保留局部的最大特征值造成信息丢失并让输入图像的尺寸变大再做空洞卷积就能保持输入和输出的尺寸不变。 卷积核尺寸计算k 为原始卷积核尺寸r 为空洞率。 存在的问题——网格效应gridding effect空洞卷积后得到的像素值对应于原特征图上的感受野范围内使用到的原特征图上的像数值并不连续存在间隔导致丢失部分信息。 假如对一张17*17的特征图layer1进行3次卷积核尺寸为3*3空洞率为2步长为1的空洞卷积网络层次结构如下图所示 下图中有颜色的部分表示做3次空洞卷积后输出特征图中的一个像素对应于该层的感受野。比如输出特征图 layer4 中的像素  在 layer1 中的感受野范围是 13*13在 layer2 中的感受野范围是 9*9。 先从 layer1 开始执行第一次空洞卷积会利用到所有带颜色的像素点得到 layer2 中所有带颜色的像素点再执行第二次空洞卷积会利用 layer2 中所有带颜色的像素点得到 layer3 中所有带颜色的像素点执行第三次空洞卷积只用到了黄色的像素点得到 layer4 中的像素 。 再反过来看layer4 中的像素  只利用了 layer3 中黄色的像素点layer3 中黄色的像素点只利用了 layer2 中黄色的像素点layer2 中黄色的像素点上的数字表示被  利用的次数layer2 中黄色的像素点只利用了 layer1 中黄色的像素点。如果计算 layer1 中黄色像素点被  利用的次数 比如 layer1 上的像素  被 layer2 上的像素 、、 利用这3个像素点被  利用的次数分别是 1、2、3那么    被  利用的次数就是 1236。 按照上面的方法计算最终会得到原特征图中所有被   利用的像素点以及被利用的次数如下图所示右边的颜色条表示像素被利用次数的程度 可以看到经过几层相同空洞率的空洞卷积后输出特征图的像素对应输入特征图的感受野范围内的像素并不是都被利用到的造成信息丢失。输入特征图的像素参与运算次数也分布不均利用次数多的特征可能对分割结果产生更多影响。 如果3次空洞卷积的空洞率改为1、2、3网络层次如下 同3个空洞率为2的空洞卷积类似得到被 layer4 的一个像素利用的像素黄色以及被利用的次数如下图所示 完整的 layer1 的像素被利用次数 可以发现分别用空洞率为1、2、3的空洞卷积结果连续地使用了原特征图的所有特征。因此设置合适的混合空洞率参数可以更好地避免信息丢失。 设计膨胀系数的方法——混合空洞卷积Hybrid Dilated ConvolutionHDC 建议1假如有 N 层空洞卷积卷积核尺寸为 K*K每层的空洞率为  表示第 i 层两个非零元素被利用到的元素的最大距离 的计算公式为 并且如果满足条件则空洞率设计合适否则不合适。 例如K 3r [1, 2, 5]则满足条件 因此设计合适。最高层像素利用最低层像素信息情况如下图所示所有像素都被利用 又例如K 3r [1, 2, 9]则不满足条件 因此设计不合适。最高层像素利用最低层像素信息情况如下图所示非零像素间最大间隔为3用公式也可以求得部分信息丢失 从上面两个例子可以观察到 都为1这是因为如果想要最底层的像素都被利用那么 应该为1而  是取  三者的最大值那么  肯定小于等于故  肯定设计为 1。 建议2将膨胀系数设计为锯齿结构例如 r [1, 2, 3, 1, 2, 3]重复给定的 1, 2, 3。 建议3膨胀系数的公约数不能大于1例如 r [2, 4, 8]公约数为2 大于 1它的最低层像素利用结果如下图所示可以看到部分像素未被利用 下面是真实标签、未使用HDC设置方法、使用HDC设计方法的分割效果对比 可以看到没有使用 HDC设计方法的预测效果存在很多细节上的问题如上图中第二行红色线框出来的部分。 缺点① 局部信息丢失由于空洞卷积的计算方式类似于棋盘格式某一层得到的卷积结果中的邻近像素来自上一 层的独立的子集没有相互依赖因此该层的卷积结果之间没有相关性邻近像素点的集合作为局部信息应该有相关性现在却没有了。例如下图所示 x1, x2 是第一层卷积结果 layer2 中的两个邻近像素点x1 由 x3、x5、x7 计算得来x2 由 x4、x6、x8 计算得来这两个子集互相独立导致卷积结果 x1, x2 没有相关性。 ② 远距离信息不相关原本的卷积神经网络在较深层才会去处理两个间隔较远的像素特征。由于空洞卷积稀疏的采样输入信号让间隔较远的特征早早地发生了相关运算使得远距离信息的特征可能提取不好远距离信息原本不相关却强行将它们进行相关运算卷积提取的特征效果就差。 空洞率过大适合分割大物体但小物体的分割效果糟糕。 8可分离卷积 可分离卷积分为空间可分离卷积和深度可分离卷积空间是指 [height, width] 两个维度深度是指 channel 维度。 ① 空间可分离卷积 运算步骤空间可分离卷积就是将 n * n 的卷积分成 n ∗ 1 和 1 ∗ n 两步计算。比如将一个 3 * 3 的卷积核拆分成一个 3 * 1 的向量和一个 1 * 3 的向量如下图所示 优点节省计算成本。如果做普通卷积如下图所示一共要做 9 次卷积每次卷积要做 9 次乘法一共要做 9 * 9 81 次乘法。 现在把 3 * 3 的卷积核拆分成个向量分别做卷积如下图所示 第一次卷积一共要做 15 次卷积每次卷积要做 3 次乘法一共要做 15 * 3  45 次乘法第二次卷积一共要做 9 次卷积每次卷积要做 3 次乘法一共要做 9 * 3  27 次乘法总共做了 45 27 72 次乘法。 缺点这种方法具有局限性并非所有卷积核都可以分为两个较小的卷积核。如果用空间可分离卷积代替所有传统的卷积在训练过程中将限制卷积核的类型训练结果可能不是最佳的。因此一般情况下很少用到。 ② 深度可分离卷积 运算步骤将标准卷积操作分为逐深度卷积Depthwise Convolution和逐点卷积Pointwise Convolution。 对于普通卷积一张特征图的 3 个通道会分别于卷积核的 3 个通道做卷积最后将 3 个结果合并作为最终输出如下图所示一共有 4 个卷积核 使用的参数数量3 * 3 * 3 * 4 108 个。 而深度可分离卷积分为了两步。逐深度卷积卷积核是二维的个数与特征图的通道数一致分别卷积后得到 3 张特征图这一步的目的是特征提取如下图所示 使用的参数数量3 *3 * 3 27 个。 逐点卷积卷积核恢复三维但大小都是 1 * 1 的。为了对比卷积核个数与上面的普通卷积中一致为 4 个最后得到的特征图数量与卷积核个数一致。这一步的目的是通道间信息交互和合并如下图示 使用的参数数量1* 1 * 3 * 4 12 个。两步总共的参数数量27 12 39 个。 优点可大幅度减少卷积的参数。 缺点在逐深度卷积这一步卷积核太少得到特征图太少获取到的有效信息较少从而造成精度损失。因此模型大小可能会显著降低模型的能力可能会变得不太理想。最近一些研究的解决办法就是增加第二步逐点卷积的卷积核个数从而增加输出特征图的通道数。 9分组卷积 运算步骤设原通道为 目标通道为 。将输入特征图按通道均分为 g 组然后对每一组进行常规卷积。分组后每组输入特征图的通道数为 所以每个卷积核的通道数也降低到 。一个卷积核可以计算一张特征图如果每组有 n个卷积核则目标通道数 即  和  都是 g 的倍数如下图所示 优点① 减少大量参数从而减少运算量。若输入特征图大小为 n * n 卷积核大小为 m * m相同输入输出大小的情况下普通卷积使用的参数个数为分组卷积使用的参数个数为分组卷积比普通卷积少了 g 倍。 ② 隔绝不同组的信息交换。如每个输出与输入的一部分特征图相关联时分组卷积可以取得比常规卷积更好的性能如输出通道为2它们分别只与输入的12和34通道相关这时最好使用g2的分组卷积相当于直接让模型将不相关的输入通道权重设置为零不相关的输入通道之间不必再做计算加快模型收敛。如下图所示 缺点对于需要考虑所有输入特征图信息的情况分组卷积会降低模型的性能。这个问题常常在两个分组卷积之间加入Channel_Shuffle模块打乱通道顺序从而实现不同分组间的信息交换。如下图所示 如果 就变成了逐深度卷积如果 而且卷积核的 size 等于输入的 size就变成了全局加权池化权重是可学习的。 10可变形卷积 运算步骤首先看普通卷积的公式 就是当前处理的窗口的中心像素的坐标如(3, 4)如下图所示 就是相对于中心像素的窗口内其它像素的相对位置它们组成矩阵 定义了卷积操作的 kernel size 和 dilation。如果 dlilation2相对位置就由加减 1 变为加减 2如下图所示 就是输入图像中  位置的像素值 就是卷积核中  位置的权重。而可变形卷积公式加了一个 表示滑动窗口中每个像素的位置偏移量 是一个学习到的值通过普通卷积计算而来是浮点型数据。假设对输入图像中以第3行第4列为中心的滑动窗口的右上角像素为例说明可变形卷积的运算过程 ① 计算 计算  的普通卷积的输入就是可变形卷积的输入in_channel 输入图像的 channelout_channel 2 * kernel_size^2其它的参数如 kernel_size、stride、padding 都与可变形卷积一样因此它的输出 size 也与可变形卷积一样。例如输入图像的 channel 为 3那么 out_channel 2*3*318如下图所示 左边的黄色部分是当前做卷积的窗口右边的黄色部分是得到的结果有18个像素值将它们 reshape 为如上图所示每个元素就是表示当前处理的滑动窗口中每个像素的位置偏移量(x, y)。滑动窗口中右上角的像素值的就是(1.6, 3.2)。 ② 计算亚像素点位置是浮点型数据(3.6,8.2)临近的4个像素点分别为(3,8)、(3,9)、(4,8)、(4,9)如下图中的紫色部分 紫色部分中的红色点就是亚像素点即偏移位置它的像素值  通过双线性插值法求得。同理求得窗口中其它像素点的偏移后的像素值。 ③ 做普通卷积 优点通过左右对比可以明显的看出可变形卷积的采样位置更符合物体本身的形状和尺寸而标准卷积的形式却不能做到这一点。相比原始的卷积它更能排除背景噪声的干扰得到更有用的信息。 111 * 1 卷积 起源在 2014 年 GoogleNet 中首先应用。 作用 ① 实现跨通道的交互和信息整合。比如图中输入的三个通道会与卷积核的三个通道分别做卷积然后将三个结果的对应位置相加即对不同通道上的特征进行线性组合得到一个通道的特征图。 ② 进行卷积核通道数的降维和升维。比如图中使用两个 1 * 1卷积核没有改变输入和输出的 size但 channel 减少实现降维3 channel 变为 2 channel。 ③ 可以实现与全连接层等价的效果。比如图中将输入的 3 个通道分别拉成 [16 * 1] 的向量 1、2、3作为三个神经元通过卷积核1的3个通道、卷积核2的3个通道计算得到两个 [16 * 1] 的向量神经元 4、5它们是全连接的。 ④ 加入非线性(卷积后紧跟激活函数层)。 ⑤ 减少参数及计算量(MobileNet)。这一想法最早在GoogleNet中被提出比如说如下两个Inception模块 情况1使用 1 * 1 卷积: 1*1卷积部分 96*32*1*13072个3*3卷积部分 32*48*3*313824个总计16896个训练参数。 情况2不使用 1 * 1 卷积: 总计 96*48*3*3 41472个训练参数。 从实际上来看带1*1卷积的模型参数量更少本质原因是因为1*1的卷积对数据的特征向量进行了降维的处理使得特征通道数目先有了一定的减少降维导致通道数减少从而参数量减少。 123D 卷积 2D卷积卷积核通道数与输入图像通道数一致 3D卷积 3D卷积的卷积核有3个维度并且卷积核通道数小于特征图通道数卷积核可在 hwc 三个方向移动。 二、池化 1池化的作用 池化即下采样。 ① 减小特征图的 size保留主要的特征从而减少参数和计算量达到降维的效果。 ② 防止过拟合增强模型泛化性能。 ③ 扩大感受野。 ④ 实现平移旋转不变性。因为池化不断抽象了区域的特征而不关心位置所以池化一定程度上增加了平移不变性。比如用平均池化、最大池化把窗口内像素点位置改变了平均值、最大值还是一样的。 2池化的分类 ① 最大池化选取池化窗口中的最大值作为输出。 ② 平均池化选取池化窗口中像素的平均值作为输出。 ③ 全局平均池化在 Class Activation MappingCAM中提出就是对每个通道的整个特征图进行平均池化生成对应于每个通道的汇聚特征值最终得到一个汇聚特征向量。一般用于后面的全连接层。 ④ 金字塔池化目前流行的CNN都需要固定 size 和 scale 的输入图片基本上都是通过剪裁(crop) 和缩放 (wrap)这种处理方式存在弊端crop 的图片可能不包含整个物体wrap 导致物体变形当物体大小改变时预定义的 scale 可能不适合物体的变化。如下图所示 CNN网络对于固定输入的要求主要在全连接的分类器层输入必须与权重矩阵匹配而特征提取层可以通过控制卷积核尺寸调节来接受各种 scale 和 size 的输入得到固定的特征输出。因此可以通过一种叫做空间金字塔池化(Spatial Pyramid Pooling, SPP)的方法将不同尺寸的输入进行多个尺度的池化然后展开并拼接出一个固定大小的向量从而连接到全连接层。 如下图所示一张任意大小的图片在经过一系列的卷积层后产生了256个特征图最后一个卷积层有256个卷积核大小不固定。将每张特征图都分别分成16, 4, 1份然后做最大池化。处理完所有的特征图后将池化结果进行拼接得到的向量是固定长度的。在这个例子中这个向量的长度为 (1641) * 256。 SPP 避免 crop 和 warp 操作导致一些信息丢失多尺度池化有助于捕捉不同规模的特征总体来说提高了模型准确率。 ⑤ 全局加权池化分组卷积提到。 3池化结果 size 的计算公式 同卷积一样但是是向上取整。 4池化能减小特征提取的误差 特征提取的误差主要来自两个方面 ① 邻域大小受限造成的估计值方差增大进行卷积操作时卷积核覆盖的区域即邻域是有限的意味着只能基于这一小块区域内的像素来估计整个图像在该位置的特征。因为这个估计基于有限的信息所以存在不确定性这种不确定性在统计学上表现为估计值的方差增大。方差增大意味着估计值的波动范围较大即估计值可能偏离真实值较远且不确定性增大。 ② 卷积层参数误差造成估计均值的偏移卷积层中的参数由于训练数据的限制、模型的复杂度以及优化算法的性能等因素可能会存在误差。这种误差会导致对特征值的估计产生偏移即估计的均值与真实值之间存在差距。 平均池化能减小第一种误差因为平均值能够平滑掉一些随机波动使得估计更加稳定能更多地保留图像整体或背景信息。因为背景信息通常较为平滑不易受局部波动影响。 最大池化能减小第二种误差最大值对邻域内的变化更加敏感能够捕捉到更为显著的特征这些特征往往与纹理信息紧密相关。因此最大池化能够更多地保留图像局部显著特征或纹理信息。 5池化的反向传播 原则把下一层的 1 个像素的梯度传递给上一层的 n * n池化窗口的 size个像素但是需要保证传递的梯度总和不变。 平均池化将梯度平均分给池化之前的每个像素。 最大池化将梯度只分给之前最大值的像素其它的梯度为 0。 三、激活函数 1激活函数的作用 如果不用激活函数每一层输出都是上一层的线性函数就变成了线性模型表达能力不够。如果引入非线性激活函数的话加入了非线性因素神经网络就能够去逼近任意函数。 2Sigmoid 公式 图像左为函数图像右为导数图像 优点① 提供非线性能力。 ② 因为处处连续所以可导这便于计算梯度。 ③ 压缩数据输出范围在0和1之间。 ④ 输出值可以解释为概率可作为分类任务的输出层。 ⑤ 适用于二分类。 缺点① 在输入值接近无穷大或无穷小时其输出值会接近于0或1达到饱和状态此时函数的梯度导数会趋近于0。导数最大为 0.25每传递一层梯度都会减为原来 0.25 倍甚至更小这会导致权重更新的梯度非常小即梯度消失现象会使得网络在训练过程中学习得非常慢甚至无法继续学习。 ② 非中心对称函数均值不为 0网络收敛效果不好。理由如下图所示 网络结构为 隐层1-激活层1-隐层2-激活层2现在我们想更新参数  和 则参数更新公式为其中  为学习率为 sigmoid 激活函数。可以看到 、 对于更新  和  来说都是相同的值唯一不同的是 和 。因此  和  更新方向完全由对应的输入值 i1,2  的符号决定。而激活层1 用的是sigmoid 函数导致  的值都为正即  和  更新方向总是相同的同时增大或者同时减少如果  最优的更新方向是增加 最优的更新方向是减少 和  的合方向将会走 Z 字形逼近最优解收敛的过程将会非常缓慢如下图所示、表示最优参数 ③ 函数本身包含指数运算且其导函数也比较复杂运算相对耗时。 3Softmax 参考链接http://t.csdnimg.cn/8qNDF。 Sigmoid 和 Softmax指数运算溢出问题sigmoid 和 softmax 函数在计算中都会用到指数运算 或  ,如果在   中 x 是一个很小的负数或者在  中 x 是一个很大的正数这时有溢出即数值超过计算机能表示的最大浮点数的风险。 Sigmoid 溢出的解决办法如果 x0 则 如果 x0 则 。 Softmax 溢出的解决办法取所有  中的最大值M则计算  这组数的Softmax 等同于计算  这一组数据的 Softmax即分子分母同时除以。这样Softmax改为  就解决了上溢出的问题因为  小于等于 0则  都是小于等于 1 的值。 4Tanh 公式。 图像 优点与sigmoid函数不同tanh函数零中心对称让模型的收敛速度更快。 缺点① 在两边还是有梯度饱和也就是梯度趋近于 0易造成梯度消失。 ② 包含指数运算运算相对复杂且耗时。 5Relu 公式max (0, x)。 图像 优点 ① 计算简单只需要一个阈值判断x小于0得0x大于等于0得x梯度也好求x小于0为0x大于0为1。 ② ReLU函数在输入为正数时其梯度恒为1梯度不会衰减减轻梯度消失问题。 ③ ReLU函数在输入小于0时输出为0使得网络在训练过程中产生大量的稀疏性指只有少量神经元被激活对网络的输出产生影响。稀疏性有两个好处一是可以减少参数的数量缓解过拟合问题二是让网络更加关注重要的特征激活输出为5的特征比0.5的更突出都是负值的表示没有明显特征直接过滤掉为0提高模型的泛化能力。 ④ ReLu的这个三个优点促进了模型快速收敛。 缺点① 当ReLU函数的输入值为负时输出始终为0并且其一阶导数梯度也始终为0。这会导致在反向传播过程中如果某个神经元的输入始终为负那么该神经元的权重将永久不会更新这种现象被称为“神经元死亡”。 比如当学习率learning rate设置得过高时高学习率意味着在每次参数更新权重的改变量可能很大如果更新前参数梯度为正那么更新前的参数就会被减去一个很大的值更新后的参数变为负值这可能导致输入神经元的正值与相应负权重相乘求和后也变为负值输出再经过 Relu输出值为0反向传播的梯度也为0参数得不到更新就一直为负从而导致神经元一直为负永久失活。这些神经元同时“死亡”从而整个网络中相当大比例40%的神经元失效。 解决办法改用 Relu 的变体 —— 如Leaky ReLU、Parametric ReLU改用小的学习率。 ③ 不会对输入数据进行幅度压缩。正数经过ReLU层后其输出将保持不变并继续传递给下一层。如果权重矩阵中的某些元素也较大那么这些较大的输入和权重相乘后输出可能会变得更大。这种效应在多层网络中会累积导致数据幅度不断扩张可能会发生梯度爆炸如果前向传播中的数据幅度很大那么计算出的梯度也可能很大导致权重更新不稳定甚至发散。 6Leaky ReLu 公式 是自己设置的一个很小的参数通常是 0.01。 图像 小于0的输出不再是0而是绝对值很小的一个负数输入小于0的部分梯度也不再是0而是  从而解决 “Dead ReLu” 问题。 其它的 ReLu 变体① 随机 Leaky ReLu 随机取值 分布服从均值为0、标准差为1的正态分布。 ② PReLuParametric ReLU  通过学习而来跟着模型一起优化。 优点① 避免神经元死亡。 ② 输入为负时梯度不为0缓解梯度消失问题。 ③ 计算速度快。 ④  Leaky ReLU 线性、非饱和的形式在梯度下降中能够快速收敛。 缺点虽然解决了神经元死亡的问题但在实践中的效果没有比 ReLU 有明显的提升。 7ReLu6 源于Mobile v1将最大值限制为6。 公式 图像黄线为ReLu6蓝线为ReLu。 函数图 梯度函数图 优点在移动端float16的低精度的时候也能有很好的数值分辨率。如果对ReLu的输出值不加限制那么输出范围就是0到正无穷而低精度的float16无法精确描述其数值带来精度损失。 8ELU 公式 图像 优点 一个好的激活函数应该满足① 单侧饱和负输入区域饱和可以过滤掉不重要的特征。 ② 输出值分布在 0 的两侧相当于0中心对称可以加快网络的收敛速度。 Relu只满足了第1个条件而不满足第2个条件LeakyReLu、PReLu 满足第2个条件而不满足第1个条件。ELU同时满足2个条件。 满足单侧饱和指数函数  在 x 趋近于负无穷时趋近于0因此  会趋近于 -1 。乘以α 后ELU 的输出将趋近于 -α。因此 ELU 函数在负输入区域具有饱和性即当输入值足够小时输出值将不再随输入值的减小而显著减小而是趋近于一个固定的负值 -a那么梯度也是一个趋于0的值。
http://www.hkea.cn/news/14357347/

相关文章:

  • 深圳seo网站优化公司全国新农村建设网站
  • 网站后台管理界面html广州排名网站关键词优化
  • 兰州网站建设公互动平台怎么注册
  • 上海 松江 网站制作做羞羞的事的视频网站
  • 进入公众号平台360网站排名优化
  • 重庆做商城网站公司注册地址是营业执照上的地址吗
  • 网站策划书模板网络营销怎么推广
  • 文学网站做编辑网站建设哪个公司的好
  • 济南住建局官方网站找国外人做网站
  • 最经典最常用的网站推广方式巩义关键词优化推广
  • 网站空间申请企业网站建设合同书
  • 做网站是做广告吗软件生成器下载
  • html5做静态网站建站行业的乱象
  • 国外注册机网站动画设计专业就业前景和就业方向
  • 域名注册的网站个人网页设计作品欣赏图片
  • 如何做网站词库wordpress调用自定义分类标题
  • 新建的网站百度多久才会收录国内创意网站界面设计
  • 查看网站注册信息网站开发工具中的三剑客
  • 网站使用功能介绍是用什么软件做的怎么开一个网站平台
  • 合肥网站建设政务区电脑做视频的网站吗
  • 唐山网站主页制作新网站如何做推广软文
  • 淳安网站建设制作福州网站建设哪家好
  • 响应式培训网站模板下载昆明网站制作的教程
  • 竞赛网站建设风险评估网页设计图片轮播
  • 微信做模板下载网站有哪些内容企业内网 网站建设的解决方案
  • 快速网站空间代做标书网站
  • 网站开发百度云哪些人不适合学计算机
  • 2018年做网站如何选择商城网站建设
  • 合肥网站推广电话360优化大师下载官网
  • 2017网站备案抽查安庆经济开发区人才网