美文网首页
ML学习笔记:CNN

ML学习笔记:CNN

作者: answerLDA | 来源:发表于2019-10-30 16:10 被阅读0次

Why CNN for Image

  1. Some patterns are much smaller than the whole image.很多时候只需要检测一小部分的区域。


    “beak” detector
  2. The same patterns appear in different regions.同一种模式需要在不同照片的不同区域进行检测。


    different regions
  3. Subsampling the pixels will not change the object.对图像进行缩放不会影响检测的结果。


    subsampling

The whole CNN

  • Convolution:卷积层
  • Max Pooling:最大池化层
  • Flatten:将二维数组变成一维数组输出
  • Fully Connected Feedforward network:全连接前馈网络
the whole CNN

Convolution层用来解决问题1和问题2;Max Pooling层用来解决问题3.


solve the problem

CNN – Convolution

假设我们的图像输入是66的,而在Convolution层上面,我们的学习参数就变成一个个小的Filter数组(例如33),每个小的Filter就对图像中的一个小的pattern进行检测。

convolution图像处理方式
我们分别用每一个Filter,对我们的图片矩阵进行平滑移动点乘操作。例如下图,使用Filter1对我们的image进行乘操作(对应的位置的数相乘再相加),每次移动一个位置。最后得到一个Property矩阵。
滑动处理图像
Property矩阵的含义是:如果图像中的某个区域与Filter的“1”排序类似,则该区域与Filter的点乘结果比较大,如下图Property2中的“3”。
相似者处理结果值较大的原理
完成了Filter1的操作之后,继续进行其他的Filter的相同操作。
两个Filter对图片进行处理后的结果
如果是要对一张彩色图片进行处理,则需要用一个333(RGB共三种色彩)的Filter与663的图像数组相乘。
彩色图像的处理方式

Convolution v.s. Fully Connected

卷积vs全连接
在Convolution层中,每一个节点只需要对输入的部分节点进行连接。如果我们把一张66的图像数组进行按行展开成一个一维的数组,该数组是由1-36号节点组成。例如O(1,1)=3这个节点,只与image中的1,2,3,7,8,9,13,14,15号节点相连。
卷积层的操作
同时O(1,2)=-1这个节点只与2,3,4,8,9,10,14,15,16号节点相连。在数据处理的过程中,从输入层到convolution层之间的操作,他们共享同一个weights数组,即Filter 1数组。这使得Convolution层的参数比全连接层的参数少得多!
卷积是简化版的全连接
所以我们得到结论:
卷积层是简化版的全连接层!*

CNN – Max Pooling

Pooling:使用pooling技术将卷积层后得到的小邻域内的特征点整合得到新的特征。一方面防止无用参数增加时间复杂度,一方面增加了特征的整合度。
例如下面的Pooling操作,使用了区域最大化的操作(在2*2区域中找到一个最大值)。


Pooling操作

进过Conv和Max Pooling操作之后,得到一个新的、更小的输出image,但是每一个Filter都会输出一个这样的image,我们称之为:channel。


Conv & Max Pooling

Flatten

The whole CNN
The whole CNN

Flatten就是对每个从Max Pooling层中输出的image进行平铺展开(每一个通道按行进行展开);最后输入到全连接前向反馈层中。


Flatten

CNN in Keras

每个参数的含义
多层循环操作
最后连接Flatten和Fully Connected Feedforward network

What does CNN learn?

需要找到一个x使得ak值最大。



不同的输出图片对应于不同的Filter。



总的来说,每一张输出图片对应于提个神经元。

在最终输出中,yi对应于最大可能的输出的类值。例如下图是手写数字分类的训练输出图像。



如果对最大化进行regulization操作,等到右边的结果。

下图是其他的例子,来源于论文:

Karen Simonyan, Andrea Vedaldi, Andrew Zisserman, “Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps”, ICLR, 2014

从左到右、上到下分别是:哑铃、杯子、狗、圆椒、柠檬、哈士奇。


other example

如果改成获取偏微分最大值的方式,则获取到的结果如下。来源于论文:

Karen Simonyan, Andrea Vedaldi, Andrew Zisserman, “Deep Inside Convolutional
Networks: Visualising Image Classification Models and Saliency Maps”, ICLR, 2014

关键区域为白色的区域。



还有一种方式,是截去不同的区域之后,机器辨识不出对应的物体。来源于论文:

Reference: Zeiler, M. D., & Fergus, R. (2014). Visualizing and understanding
convolutional networks. In Computer Vision–ECCV 2014 (pp. 818-833)

越偏蓝色越无法辨识。


胶片来自于台湾大学李宏毅教授的《机器学习课程》,侵删!

相关文章

  • ML学习笔记:CNN

    Why CNN for Image Some patterns are much smaller than the...

  • 2018-04-26

    AI ML DL NN CNN VGG

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

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

  • ML学习笔记

    思维导图 AHTA题目 -> to finish Suppose you perform 10,000 stati...

  • 用 Tensorflow 建立 CNN

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

  • 学习笔记:CNN

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

  • CNN学习笔记

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

  • Create ML学习笔记

    Create ML 目前版本可以创建两类模型:图片分类模型、文本分类模型。 运行环境:macOS 10.14 Mo...

  • Core ML学习笔记

    一、Core ML简介 1、Core ML框架iOS11推出了Core ML框架,极大地降低了开发者在iphone...

  • ML学习笔记:Regression

    Regression:目标是为了输出一个标量例如: Example Applicatiom 估计一个宝可梦进化后的...

网友评论

      本文标题:ML学习笔记:CNN

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