美文网首页
CNN的笔记

CNN的笔记

作者: 迅速傅里叶变换 | 来源:发表于2017-06-11 11:04 被阅读55次

google CNN 视频教程
如果你的数据具有某种结构,但你的网络并不需要从头开始学习这个结构,他可能表现的更好,比如字母或者数字的分类识别,这里,即使,数据是RGB结构,颜色不是分类的重要因素,可以采用灰度模型进行分类。

如果你的任务只是确定图片中是否有物体,而不需要指明物体在图片中的位置,这就是平移不变性,位置不一样,但是物体是一样的,在文本中也是一样,有些时候不需要关心你考察的文字在文本的哪个段落,这叫权重共享,当知道两个输入包含相同的信息时,你可以共享他们的权重,并利用这些输入共同训练权重,统计不变性,基本不会随时间空间改变,对于图像,可以使用卷积神经网络,对于一般的文本和序列,则涉及嵌入和循环神经网络。

卷积神经网络是在空间上共享参数的一种神经网络,假设你有一张具有宽度高度和深度的图片,深度是指图片的RGB三色通道,现在拿出图片的一小块(patch),运行一个具有K个输出的小神经网络,在不改变权重的情况下,把这个小神经网络滑过整个图片,这样他的深度宽度长度都与输入不同,得到K个颜色通道,这种操作就叫卷积,如果patch的大小与整个图片一样,那他和普通的神经网络没有区别,正因为有了较小的patch,并且共享权重,卷积网络则是一个深度网络,总的想法是他们形成金字塔形状,底部是一个大而浅的图片,并有3 个颜色通道,通过卷积操作不断挤压空间维度,同事不断增加深度,在顶端,可以放一个分类器,所有空间被压缩成一个表示。patch又是也叫作核(kernel),另一个重要概念是stride(步幅),它是移动过滤器时平移像素的数量,步幅为1时,输出尺寸与输入大体相同,步幅为2时尺寸为一半,大体是因为取决于在图像边界怎么做,如果从不超过边界,叫有效填充(valid padding),如果超过边界并有0填充,就回到与输入相同大小的输出图,叫相同填充(same padding)。

如果使用相同填充且步幅为1,则输出高度与宽度与输入相同,我们想输入图像添加0只为了让尺寸相同,如果是有效填充步幅为1,则不会存在填充,如果你不适用填充且要让你的小过滤器与输入图像匹配,则需要在图片的一半溢出一列和一行,因此宽度长度减2,如果步幅为2,则减一半。

Padding Stride Width Height Depth
Same 1 28 28 8
Valid 1 26 26 8
Valid 2 13 13 8

就是这样,你可以构建一个简单的卷积网络,你不必自己实现把卷积叠加起来,然后尝试使用降维的方法,一层一层的增加网络深度,一旦你得到一个既深又窄的表示,把所有这些连接到基层常规的全连接层(fully connected layer),你就可以训练你的分类器了,你可能好奇训练和链式法则是怎样,特别是当想这样使用共享权重时,其实啥也没发生,就和公式一样,你只是将图片中所有位置的微分叠加了起来。注意,全连接层是一个标准的非卷积层,将所有输入连接到输出的神经元上,也叫密集层。

池化(poling)能更好的降低金字塔中特征图的空间范围,目前为止,我们已经使用调整的步幅来平移滤波器,每次移动几个像素从而降低特征图的尺寸,他移除了很多信息,如果我们不采用每两个卷积跳过一个,而依然执行非常小的步幅,比如说1,但是我们通过某种方法把向邻近的所有卷积结合在一起,这就叫池化,最常见的是max pooling,在特征图的每一个点,查看它周围很小范围的点,计算附近所有点的最大值,使用最大池化有很多优点,首先,他不会增加参数数量,所有不用担心过拟合,其次,他通常会提高模型的准确性,然而,由于在非常低的步幅下进行卷积,模型必然需要更多的计算量,且有更多的超参数需要调整,比如池区尺寸和池化步幅,他们不必完全一样,一种典型的卷积神经网络为几层卷积和最大池化交替,然后在最末端连接几层全连接层。另一种形式是平均池化,相比于采用最大值,采用了周围像素窗口的平均值,像是给输入图片提供了一个低分辨率图片。

1*1 convolutions.他关注的不是图像,而仅仅是像素,传统的卷积基本上是运行在一小块图像上的小分类器,但仅仅是线性分类器,但如果加上了1*1卷积,运行在一块图像上的神经网络代替了线性分类器,在军及分布中三步一些1*1卷积是一种使模型变得更深的低时高效的方法,并且会有更多参数,但并未完全改变神经网络结构。

Inception module。它的原理是在你的卷积网络的每一层,你可以选择池化运算,卷积运算,然后你需要决定使用1*1、3*3还是5*5大小的卷积,所有这些实际上对你的网络的建模能力都是有益的,所以何必选呢,把他们都选上吧,inception模型就是这样的,他不是一个单一的卷积,而是平均池化后跟1*1,然后是1*1卷积,然后1*1后跟3*3,然后1*1后跟5*5,然后在顶部,你只需要链接每个的输出即可,看起来很复杂,但有趣的是,你可以选择这些参数,是模型的参数总数要小,而且比简单的卷积网络要好。

相关文章

  • 2018-12-27制作自己的数据集

    CNN tensorflow 学习笔记(六)- 用自己的数据集训练CNN模型 TFRecord数据集 python...

  • 用 Tensorflow 建立 CNN

    稍稍乱入的CNN,本文依然是学习周莫烦视频的笔记。 还有 google 在 udacity 上的 CNN 教程。 ...

  • CNN的笔记

    google CNN 视频教程如果你的数据具有某种结构,但你的网络并不需要从头开始学习这个结构,他可能表现的更好,...

  • CNN笔记

    卷积层 负责特征提取 原理 RGB三个通道,或者叫做深度。 3D滤波器/卷积核的深度与输入特征一致,计算过程是两个...

  • CNN理解笔记

    转载:https://blog.csdn.net/Chrls_Wang/article/details/51706...

  • 学习笔记:CNN

    这是我看过讲解CNN最详细,最清楚的视频,特色是理论和pytorch代码相结合:刘二大人的视频。 首先需要从整体上...

  • CNN学习笔记

    卷积神经网络-CNN 卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习(deep learn...

  • CNN基本原理介绍

    这篇文章写的很清晰【DL笔记6】从此明白了卷积神经网络(CNN)

  • cs231n学习笔记-CNN-目标检测、定位、分割

    cs231n学习笔记-CNN-目标检测、定位、分割 cite from: http://blog.csdn.net...

  • Mask R-CNN论文阅读笔记

    title: Mask R-CNN论文阅读笔记date: 2019-06-04 11:36:32tags: ins...

网友评论

      本文标题:CNN的笔记

      本文链接:https://www.haomeiwen.com/subject/serhqxtx.html