IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 卷积神经网络 -> 正文阅读

[人工智能]卷积神经网络

CNN的动机

在这里插入图片描述
图片处理如果使用普通 的神经网络模型,将所有的像素点作为输入,输入的向量就会很长,需要的参数就会很多。
在这里插入图片描述
希望每一个神经元都能成为一个基本的分类器,第一层神经元是最基本的分类器,比如探测有没有绿色出现或者有没有斜条纹。第二层的神经元根据第一层输出的结果探测更复杂的特征。再根据第二层的输出,第三层可以做更复杂的事情。

如果我们直接用全连接网络来做图像处理往往需要更多的参数,比如像素大小为100×100的彩色图,输入具有30000个维度,假设隐藏层有1000个神经元,就会有30000×1000个参数。CNN的动机就是减少模型的参数,根据人对图片的认识,会知道有些权重参数是用不到的,可以去掉,不必用全连接网络,而应该用较少的参数,所以CNN比DNN更精简。

小区域

在这里插入图片描述
可以减少参数的原因:

大部分需要识别的Pattern比整张图片的大小要小,所以不需要看整个图片,只需要看图片的一小部分。比如寻找一张图片里有没有鸟嘴,只需要看图片中的一小部分区域就行了。

同样的特征

在这里插入图片描述
同样的pattern可能出现在图片的不同位置,但是代表同样的含义。同样的形状可以用同样的参数、同样的神经元识别出来,而不需要识别出该形状在图片中的位置,这样就可以减少需要的参数量。

下采样

在这里插入图片描述
把一幅图像的奇数行和偶数列去掉,变为原来大小的四分之一,不会影响人对图片的理解,所以可以把图像的大小变小,从而减少模型的参数。

CNN架构

在这里插入图片描述
CNN的结构包括卷积层和池化层,卷积层和池化层可以使用多次,使用完卷积和池化层后使用flatten层,将它的输出传给全连接层,从而得到最终结果。

在这里插入图片描述
出于图像的三个特性,我们设计了CNN:

  1. 只需要图像的一小部分,就可以识别pattern;
  2. 通用的pattern会出现在图像的不同区域;
  3. 对图像做下采样,不会影响对图像的理解;

卷积层可以利用前两个特性,池化层利用了第三个特性。

卷积

特性1

在这里插入图片描述
假设网络的输入是6×6的图片,如果是黑白图片,每个像素点需要1个值来描述。在卷积层里,有一组过滤器作为卷积核,每个过滤器都相当于全连接网络中的一个神经元。每个过滤器都是一个3×3的矩阵,矩阵中的值就是过滤器的参数,这是需要学习得到的,而不是人为设计的。

每个过滤器探测3×3的区域,在识别pattern的时候,不看整张图片,只看3×3的区域,这反映了输入图像的第一个特性。

特性2

在这里插入图片描述
首先把过滤器放在图片的左上角,将过滤器的9个值和图片的9个值进行内积,得到卷积的结果。然后,移动过滤器,移动的距离是人为设定的,移动的距离成为stride。这里我们设stride为1。
在这里插入图片描述
经过卷积,本来6×6的图片大小变为了4×4的结果。结果的左上角和左下角得到了最大值,代表所要识别的特征在原始图片的左上角和左下角。这就反映了图片的特性2,处于图片不同位置的同样的特征只需要一个过滤器就可以识别,而不需要设计不同的过滤器。

在这里插入图片描述
在一个卷积层里会有很多的过滤器,上面只展示了其中1个。这样就会得到很多4×4的卷积结果,将它们合起来就是feature map。

在这里插入图片描述
刚才举例是黑白图片,所以输入是一个矩阵。如果是彩色图片,就是3个矩阵叠在一起,输入是3×6×6,一共有3个通道。做卷积时,所有通道是合在一起算的,每个过滤器都在所有的通道上进行计算。

convolution和fully connected之间的关系

在这里插入图片描述
卷积其实就是全连接网络去掉一些权重参数得到的结果。
在这里插入图片描述
在这里插入图片描述
卷积的实质是强迫神经元去共用权重,同时每一个神经元的输入也很少,这样就大大减少了参数的数量。

Max pooling

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
卷积层有多少个过滤器,输出就有多少个通道 (每个输出通道的维度与输入的通道数有关)。

Flatten

在这里插入图片描述

CNN in Keras

在这里插入图片描述
在这里插入图片描述

CNN学到了什么

在这里插入图片描述
在这里插入图片描述
这些image有一个共同的特征就是:某种纹路在图上不断的反复。比如说第三张image,上面是有小小的斜条纹,意味着第三个filter的工作就是识别图上有没有斜的条纹。每一个filter考虑的范围都只是图上一个小小的范围。所以今天一个图上如果出现小小的斜的条纹的话,这个filter就会被active,这个output的值就会比较大。如果让图上所有的范围通通都出现这个小小的斜条纹的话,那这个时候它的Degree activation会是最大的。(因为它的工作就是侦测有没有斜的条纹,所以你给它一个完整的数字的时候,它不会最兴奋。你给它都是斜的条纹的时候,它是最兴奋的)

分析全连接层

在这里插入图片描述
在这里插入图片描述

把每张image(如图)都丢到CNN里面,然后看它classifier的结果是什么。CNN确定就说:这个是1,这个是,…,这个是8。CNN就觉得说:你若拿这张image train出来正确率有98的话,就说:这个就是8。所以就很神奇

这个结果在很多的地方有已经被观察到了,今天的这个neuron network它所学到东西跟我们人类是不太一样的(它所学到的东西跟我们人类想象和认知不一样的)。

让图更像数字

在这里插入图片描述
设定了一些约束条件,终于发现可以使输出层的函数达到最大值的输入有一些像数字了。

参考资料

感谢Datawhale对开源学习的贡献!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:39:27  更:2021-07-25 11:39:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/20 2:59:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码