微信做淘宝客网站,网站建设丿金手指谷哥12,怎么建设一个手机网站,开发公司成本部职责岗位职责和流程文章目录 1.输入层Input2.卷积层Conv3.激活函数层(一)Sigmoid 函数(二)Tanh 函数(三)修正线性单元ReLU(四)Leaky ReLU函数(带泄露的Relu)(五)参数化ReLU 4.池化层POOL5.全连接层FC6.输出层Output 用全连接神经网络处理大尺寸图像具有三个明显的缺点#xff1a; ①将图像展开为… 文章目录 1.输入层Input2.卷积层Conv3.激活函数层(一)Sigmoid 函数(二)Tanh 函数(三)修正线性单元ReLU(四)Leaky ReLU函数(带泄露的Relu)(五)参数化ReLU 4.池化层POOL5.全连接层FC6.输出层Output 用全连接神经网络处理大尺寸图像具有三个明显的缺点 ①将图像展开为向量会丢失临近像素的空间信息 ②模型参数过多因此效率低下训练困难 ③大量参数也很块会导致网络过拟合 针对这些问题提出了卷积神经网络很好的解决了这些问题。 目的减少网络参数数量达到更好效果 1.输入层Input 图像数据
2.卷积层Conv 提取特征(将图像分成一个个小区域利用卷积核生成对应的特征图) 卷积运算的目的是提取输入的不同特征某些卷积层可能只能提取一些低级的特征如边缘、线条和角等层级更多层的网络能从低级特征中迭代提取更复杂的特征。 可以看出卷积是一种局部操作通过一定大小的卷积核作用于局部图像区域获得图像的局部信息。 5×5的数据经过3×3的卷积核生成3×3的特征图 卷积核 · 例 第一个区域特征值 (1)多通道卷积 当有多个通道channel时例如图片可以有RGB三个通道卷积核需要拥有相同的channel数每个卷积核channel与输入层的对应channel进行卷积将每个channel的卷积结果相加得到最终的feature map。 (2)多卷积核 当有多个卷积核时可以学习到多种不同的特征对应产生多个channel的feature map。多个功能的卷积核得计算结果放在一起能够检测到图片中不同得特征(边缘检测) 一个卷积层中可以有多个不同的卷积核而每一个卷积核都对应一个特征图。 多通道卷积多卷积核卷积核channel数是确定的前面是3×3×3则卷积核的channel必须是3,每一个卷积核的通道数量必须要与输入通道数量保持一致卷积核的个数不是确定的卷积核每个channel生成的不是独立的,需要相加并加上偏置量b,这里卷积输出结果只有1个因为卷积核只有1个。每个卷积核生成的feature map是独立的,不需要相加,设置几个卷积核就产生几个feature map,这里输出结果有4个feature map因为传入了3×3×3×4 3.激活函数层 激活函数是用来加入非线性。常见的激活函数有sigmod、tanh、relu前两者常用在全连接层relu常见于卷积层。 问题为什么要在卷积层后面添加激活函数? 如果只有线性变换那无论多少层神经元都能简化成一层神经元那神经网络只是简单多元线性回归而已不能拟合更加复杂的函数。举个例子如果我们只有线性操作那么我们的神经网络永远无法拟合圆等复杂的曲线图形永远只能表示超平面无法表示曲面等。 因为卷积对输入图像进行的操作是线性的但输入的图像的信息不都是线性可分的所以通过激活函数来进行非线性操作能够更好的映射特征去除数据中的冗余以增强卷积神经网络的表达能力。 问题激活函数为什么要使用非线性的 使用线性激活函数和不适用激活函数、直接使用logistic回归没有区别那么无论神经网络有多少层输出都是输入的线性组合与没有隐藏层的效果相当就成了最原始的感知器了。 作用 ①将神经网络非线性化即提升神经网络的拟合能力能拟合更复杂的函数。 ②激活函数可以引入非线性因素。如果不使用激活函数则输出信号仅是一个简单的线性函数。线性函数一个一级多项式线性方程的复杂度有限从数据中学习复杂函数映射的能力很小。没有激活函数神经网络将无法学习和模拟其他复杂类型的数据例如图像视频、音频、语音等。 ③激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间让数据能够更好的被分类。 添加激活层
(一)Sigmoid 函数 sigmoid 函数公式如上式所示函数图像如图所示。该函数能够把变量映射到[0,1]区间所以一般是用来处理二分类的问题。 观察还能发现在 sigmoid函数两端对于大于5或小于-5的值无论多大或多小都会压缩到0或1。如此便带来一个严重问题即梯度的“饱和效应”。 对照sigmoid函数的梯度图大于5或小于-5部分的梯度接近0这会导致在误差反向传播过程中导数处于该区域的误差将很难甚至根本无法传递至前层 进而导致整个网络无法训练(导数为0将无法更新网络参数)。 此外在参数初始化的时候还需特别注意要避免初始化参数直接将输出值域带入这一区域一种可能的情形是当初始化参数w过大时将直接引发梯度饱和效应而无法训练。 解决办法初始化参数w设置小点这样生成的x值就会少对应的斜率即梯度就会大更新参数就会快。
(二)Tanh 函数 tanh 函数公式如上所示tanh 函数图像如图 2.17 所示是将变量映射到[-1,1]区间。 tanh函数存在和sigmoid函数一样的缺点当x趋近无穷大或无穷小导数的梯度(即函数的斜率)就趋近于0这使得梯度算法的速度会减慢。
(三)修正线性单元ReLU 因为 sigmoid 和 tanh 函数在反向传播中常常因为值过小而造成梯度消失ReLU 函数能够避免部分这个问题ReLU 是修正线性单元(Rectified Linear Unit)ReLU 函数的表达式如下式所示: 从图中可以看出 ReLU 函数不是连续的属于分段函数当x0时, f(x)值为0当x≥0 时 f(x)等于xx≥0部分完全消除了sigmoid型函数的梯度饱和效应,因此不会出现梯度消失的情况。 与sigmoid、tanh 激活函数相比ReLU 函数当输入小于0时梯度等于0这时神经元不会被激活所以在某一段时间里只有部分神经元会被激活在反向传播过程中收敛速度会更快。 优点 ①ReLU激活函数计算量更小 ②收敛速度远快于sigmoid和tanh ③解决部分梯度消失问题 ReLU的梯度大多数情况下是常数有助于解决深层网络的收敛问题 ④因为ReLU不会梯度消失只有线性关系会让网络训练更快 缺点: ①强制性把负值置为0可能丢掉一些特征; ②当输入为负数时权重无法更新导致神经元死亡(学习率不要太大)
(四)Leaky ReLU函数(带泄露的Relu) 为了缓解“死区”现象研究者将ReLU函数中x0的部分调整为其中为0.01或0.001数量级的较小正数。这种新型的激活函数被称作Leaky ReLU 可以发现原始ReLU函数实际上是Leaky ReLU函数的一个特例即. 不过由于Leaky ReLU函数中为超参数合适的值较难设定且较为敏感因此Leaky ReLU函数在实际使用中的性能并不十分稳定。
(五)参数化ReLU 参数化ReLU的提出很好的解决了Leaky ReLU函数中超参数不易设定的问题参数ReLU直接将也作为一个网络中可学习的变量融入模型的整体训 练过程。 注Leaky ReLU中的α需经人为指定而参数化ReLU中α则经网络学习得到。
4.池化层POOL 池化(特征压缩/下采样)是将输入图像进行缩小减少像素信息只保留重要信息主要是为了减少计算量。主要包括最大池化和均值池化。 作用 ①减少网络中的参数计算量从而遏制过拟合 ②增强网络对输入图像中的小变形、扭曲、平移的鲁棒性(输入里的微小扭曲不会改变池化输出——因为我们在局部邻域已经取了最大值/平均值)。 ③帮助我们获得不因尺寸而改变的等效图片表征。这非常有用因为这样我们就可以探测到图片里的物体不管它在哪个位置。 特征: ①没有要学习的参数 池化层和卷积层不同没有要学习的参数。池化是从目标区域中取最大值(或平均值)所以不要学习的参数。 ②通道数不发生变化 经过池化运算输入数据和输出数据的通道数不会发生变化。 ③对微小的位置变化具有鲁棒性 输入数据发生微小偏差时池化仍会返回相同的结果。因此池化对输入数据的微小偏差具有鲁棒性。比如3X3的池化的情况下如下图池化会吸收输入数据的偏差(根据数据不同结果可能不一致)。 从上图看池化只是变长和宽而特征图的个数其实不会变。 最大池化MAX POOLING(选取最大的特征值) (1)目的抓住主要矛盾忽略次要因素。 (2)意义降低数据维度减少训练参数避免过拟合。 通用池化层过滤器f2×2s2 注池化层没有涉及到任何的矩阵计算只是一个筛选、压缩、过滤的过程。
5.全连接层FC 全连接层在整个卷积神经网络中起分类器的作用在全连接层之前需要将之前的输出feature map展平再接一个或多个全连接层进行模型学习。 全连接层相当于一个普通神经网络。 如果说卷积层、汇合层和激活函数层等操作是将原始数据映射到隐层特征空间的话全连接层则起到将学到的特征表示映射到样本的标记空间的作用。 在实际使用中全连接层可由卷积操作实现对前层是全连接的全连接层可以转化为卷积核为1×1的卷积而前层是卷积层的全连接层可以转化为卷积核为h×w的全局卷积h和w分别为前层卷积输出结果的高和宽。 · 例1 以经典的VGG-16网络模型为例对于224×224×3的图像输入最后一层卷积层(指VGG-16的Pool5)可得输出为7×7×512的特征张量若后层是一层含4096个神经元的全连接层时则可用卷积核为7×7×512×4096的全局卷积来实现这一全连接运算过程。 其中该卷积核具体参数如下经过此卷积操作后可得1×1×4096的输出。 如需再次叠加一个含2048个神经元的全连接层可设定以下参数的卷积层操作 · 例2 全连接层FC前面一层结果是32×32×10那么全连接层的矩阵第一个参数是32×32×1010240第二个参数取决于最终要分成几类上图分成5类即第二个参数是5那么矩阵是[10240,5]。
6.输出层Output
分类回归采用Softmax函数采用线性函数