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

艺商网站如何选择企业建站公司

艺商网站,如何选择企业建站公司,国内php开发的电商网站有哪些,太原市建设厅网站首页文章目录 前言 1、介绍 2、数字图像的数据结构 3、卷积 4、Valid 和 Same 卷积 5、步幅卷积 6、过渡到三维 7、卷积层 8、连接剪枝和参数共享 9、卷积反向传播 10、池化层 11、池化层反向传播 前言 本篇主要分享卷积神经网络#xff08;CNN#xff09;的数学原理解析#xf…文章目录 前言 1、介绍 2、数字图像的数据结构 3、卷积 4、Valid 和 Same 卷积 5、步幅卷积 6、过渡到三维 7、卷积层 8、连接剪枝和参数共享 9、卷积反向传播 10、池化层 11、池化层反向传播 前言 本篇主要分享卷积神经网络CNN的数学原理解析会让你加深理解神经网络如何工作于CNNs。出于建议这篇文章将包含相当复杂的数学方程如果你不习惯线性代数喝微分也没事目的不是记住这些公式而是对下面发生的事情有一个直观的认识。 可视化和注释的完整源码 GitHubhttps://github.com/SkalskiP/ILearnDeepLearning.py 1、介绍 过去我们已经知道了这些紧密连接的神经网络。这些网络的神经元被分成若干组形成连续的层layer。每一个这样的神经元都与相邻层的每一个神经元相连。下图显示了这种体系结构的一个示例。 图1 密集连接的神经网络结构 当我们根据一组有限的人工设计的特征来解决分类问题时这种方法很有效。例如我们根据足球运动员在比赛期间的统计数据来预测他的位置。然而当处理照片时情况变得更加复杂。当然我们可以将每个像素的像素值作为单独的特征并将其作为输入传递给我们的密集网络。 不幸的是为了让该网络适用于一张特定的智能手机照片我们的网络必须包含数千万甚至数亿个神经元。另一方面我们可以缩小我们的照片但在这个过程中我们会丢失一些有用的信息。 我们立马意识到传统的策略对我们没有任何作用我们需要一个新的有效的方法以充分利用尽可能多的数据但同时减少必要的计算和参数量。这就是CNNs发挥作用的时候了。 2、数字图像的数据结构 让我们先花一些时间来解释数字图像是如何存储的。你们大多数人可能知道它们实际上是由很多数字组成的矩阵。每一个这样的数字对应一个像素的亮度。在RGB模型中彩色图像实际上是由三个对应于红、绿、蓝三种颜色通道的矩阵组成的。 在黑白图像中我们只需要一个矩阵。每个矩阵都存储0到255之间的值。这个范围是存储图像信息的效率256之内的值正好可以用一个字节表达和人眼的敏感度我们区分有限数量的相同颜色灰度值之间的折中。 图2 数字图像的数据结构 3、卷积 核卷积不仅用于神经网络而且是许多其他计算机视觉算法的关键一环。在这个过程中我们采用一个形状较小的矩阵称为核或滤波器我们输入图像并根据滤波器的值变换图像。后续的特征map值根据下式来计算其中输入图像用 f 表示。我们的kernel 用 h 表示结果矩阵的行和列的索引分别用m和n表示。 图3 核卷积的列子 将过滤器放置在选定的像素上之后我们从kernel中提取每个相应位置的值并将它们与图像中相应的值成对相乘。最后我们总结了所有内容并将结果放在输出特征图的对应位置。 上面我们可以看到这样的操作在细节上是怎么实现的但是更让人关注的是我们通过在一个完整的图像上执行卷积可以实现什么应用。图4显示了几种不同滤波器的卷积结果。 图4 通过核卷积得到边缘 [原图像https://www.maxpixel.net/Idstein-Historic-Center-Truss-Facade-Germany-3748512] 4、Valid 和 Same 卷积 如图3所示当我们用核对的图像进行卷积时我们得到了的特征图。这是因为只有16个不同的位置可以让我们把滤波器放在这个图片里。因为每次卷积操作图像都会缩小所以我们只能做有限次数的卷积直到图像完全消失。 更重要的是如果我们观察卷积核如何在图像中移动我们会发现位于图像边缘的像素的影响要比位于图像中心的像素小得多。这样我们就丢失了图片中包含的一些信息。通过下图可以知道像素的位置如何改变其对特征图的影响。 图5 像素位置的影响 为了解决这两个问题我们可以用额外的边框填充图像。例如如果我们用 1px填充我们将照片的大小增加到那么与滤波器卷积的输出将是。在实践中我们一般用0填充额外的填充区域。这取决于我们是否使用填充我们要根据两种卷积来判断-有效卷积核相同卷积。 这样命名并不是很合适所以为了清晰可见Valid表示我们仅使用原始图像Same表示我们同时也考虑原图像的周围边框这样输入和输出的图像大小是相同的。在第二种情况下。填充宽度应该满足以下方程其中 p 为填充宽度和 f 是滤波器维度一般为奇数。 5、步幅卷积 图6 步幅卷积的例子 在前面的例子中我们总是将卷积核每次移动一个像素。但是步幅也可以看作卷积层超参数之一。在图6中我们可以看到如果我们使用更大的步幅卷积看起来是什么样的。 在设计CNN架构时如果希望感知区域的重叠更少或者希望feature map的空间维度更小我们可以决定增加步幅。输出矩阵的尺寸——考虑到填充宽度和步幅——可以使用以下公式计算。 6、过渡到三维 空间卷积是一个非常重要的概念它不仅能让我们处理彩色图像更重要的是在单层中应用多个卷积核。第一个重要的原则是过滤器和要应用它的图像必须具有相同通道数。基本上这种方式与图3中的示例非常相似不过这次我们将三维空间中的值与卷积核对应相乘。 如果我们想在同一幅图像上使用多个滤波器我们分别对它们进行卷积将结果叠在一个一起并将它们组合成一个整体。接收张量的维数即我们的三维矩阵满足如下方程n-图像大小f-滤波器大小nc-图像中的通道数p-是否使用填充s-使用的步幅nf-滤波器个数。 图7 三维卷积 7、卷积层 现在是时候运用我们今天所学的知识来构建我们的CNN层了。我们的方法和我们在密集连接的神经网络中使用的方法几乎是一样的唯一的不同是这次我们将使用卷积而不是简单的矩阵乘法。 正向传播包括两个步骤 第一步是计算中间值Z,这是利用输入数据和上一层权重W张量(包括所有滤波器)获得的卷积的结果,然后加上偏置b。第二步是将非线性激活函数的应用到获得的中间值上(我们的激活函数表示为g)。对矩阵方程感兴趣的读者可以在下面找到对应的数学公式。顺便说一下在下图中你可以看到一个简单的可视化描述了方程中使用的张量的维数。   图8 张量维度 8、连接剪枝和参数共享 在文章的开头我提到密集连接的神经网络不擅长处理图像这是因为需要学习大量的参数。既然我们已经理解了卷积是什么让我们现在考虑一下它是如何优化计算的。 在下面的图中以稍微不同的方式显示了二维卷积以数字1-9标记的神经元组成了输入层并接受图像像素亮度值而A - D单元表示计算出的特征map元素。最后I-IV是需要经过学习的卷积核的值。 图9 连接剪枝和参数共享 现在让我们关注卷积层的两个非常重要的属性。 首先你可以看到并不是所有连续两层的神经元都相互连接。例如神经元1只影响A的值。 其次我们看到一些神经元共享相同的权重。这两个性质都意味着我们需要学习的参数要少得多。 顺便说一下值得注意的是滤波器中的一个值会影响特征map中的每个元素——这在反向传播过程中非常重要。 9、卷积反向传播 任何尝试过从头编写自己的神经网络代码的人都知道完成正向传播还没有完成整个算法流程的一半。真正的乐趣在于你想要进行反向传播得到时候。现在我们不需要为反向传播这个问题所困扰我们可以利用深度学习框架来实现这一部分但是我觉得了解底层是有价值的。就像在密集连接的神经网络中我们的目标是计算导数然后用它们来更新我们的参数值这个过程叫做梯度下降。 在我们的计算中需要用到链式法则——我在前面的文章中提到过。我们想评估参数的变化对最终特征map的影响以及之后对最终结果的影响。在我们开始讨论细节之前让我们就对使用的数学符号进行统一——为了让过程更加简化我将放弃偏导的完整符号而使用如下所示的更简短的符号来表达。但记住当我用这个符号时我总是指的是损失函数的偏导数。   图10 单卷积层的输入和输出的正向和反向传播 我们的任务是计算dW[l]和db[l]——它们是与当前层参数相关的导数以及dA[l -1]的值——它们将被传递到上一层。如图10所示我们接收dA[l]作为输入。当然张量dW和W、db和b以及dA和A的维数是相同的。第一步是通过对输入张量的激活函数求导得到中间值dZ[l]。根据链式法则后面将使用这个操作得到的结果。 现在我们需要处理卷积本身的反向传播为了实现这个目的我们将使用一个矩阵运算称为全卷积如下图所示。注意在这个过程中对于我们使用卷积核之前我们将其旋转了180度。这个操作可以用下面的公式来描述其中滤波器用W表示dZ[m,n]是一个标量属于上一层偏导数。  图11 全卷积 10、池化层 除了卷积层CNNs还经常使用所谓的池化层。池化层主要用于减小张量的大小和加速计算。这种网络层很简单——我们需要将图像分割成不同的区域然后对每个部分执行一些操作。 例如对于最大值池化层我们从每个区域中选择一个最大值并将其放在输出中相应的位置。在卷积层的情况下我们有两个超参数——滤波器大小和步长。最后一个比较重要的一点是如果要为多通道图像进行池化操作则应该分别对每个通道进行池化。  图12 最大值池化的例子 11、池化层反向传播 在本文中我们将只讨论最大值池化的反向传播但是我们将学习的规则只需要稍加调整就可以适用于所有类型的池化层。由于在这种类型的层中我们没有任何必须更新的参数所以我们的任务只是适当地分布梯度。正如我们所记得的在最大值池化的正向传播中我们从每个区域中选择最大值并将它们传输到下一层。 因此很明显在反向传播过程中梯度不应该影响矩阵中没有包含在正向传播中的元素。实际上这是通过创建一个掩码来实现的该掩码可以记住第一阶段中使用的值的位置稍后我们可以使用该掩码来传播梯度。  图13 最大值池化的反向传播 参考https://towardsdatascience.com/gentle-dive-into-math-behind-convolutional-neural-networks-79a07dd44cf9 深度学习初学者
http://www.zqtcl.cn/news/784164/

相关文章:

  • 龙海市城乡规划建设局网站河南郑州哪里可以做公司网站
  • 网站正能量晚上不用下载进入免费成都网站制作方案
  • 宝安做棋牌网站建设哪家公司便宜jsp网站搭建
  • 英文网站建设方法深圳信用网
  • ip查询网站用织梦后台修改网站logo
  • 网站编辑信息怎么做茶叶网站建设策划书ppt
  • 网站建设费摊销几年嵌入式软件开发用什么语言
  • 网站备案 后期商业设计网站
  • 网站负责人半身照国际公司和跨国公司
  • 网站的组成友情下载网站
  • 做视频课程网站中职网站建设
  • seo整站优化服务盗图来做网站
  • 网站服务器基本要素有哪些交易网站的建设规划
  • 网站开发源代码mvc山东网站推广
  • 深圳建网站兴田德润团队织梦的网站模板免费吗
  • 手机响应式网站怎么做图书馆建设网站注意点
  • 白云做网站要多少钱wordpress指定分类子类
  • 侧导航网站济南网上房地产
  • 做得比较好的公司网站自己可以学做网站吗
  • 陕西省两学一做网站产品推广方案
  • 做网站ps文字有锯齿网站建设项目管理基本要求
  • 大连网站制作的网络科技公司取名创意
  • 哈尔滨企业网站建站推荐专业微网站营销
  • 阿里云模板建站怎么样上海免费建站模板
  • 中企动力网站建设合同织梦商业网站内容管理系统
  • 厦门石材网站建设个人网页模板制作
  • 网站建设责任分工手机兼职群
  • 做网站维护的收入怎么确认网校网站毕业设计的方案
  • 商丘网站建设想象力网络普洱做网站的报价
  • wordpress前端是什么网站建设备案优化