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的实现 -> 正文阅读

[人工智能]第七章 卷积神经网络——整体结构&卷积层&池化层&卷积层和池化层的实现&CNN的实现

1.整体结构

*卷积神经网络(CNN)被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础

*基于全链接层(Affine层)的网络的例子:

?*基于CNN的网络例子:

CNN中新增了Convolution层和Pooling层,CNN的层连接顺序是Convolution-ReLU-(Pooling)(Pooling层有时会被省略),在上图中,靠近输出层中使用了之前的Affine-ReLU组合,最后的输出层使用了之前的Affine-Softmax组合

2.卷积层

*卷积层可以保持形状不变,当输入数据是图像时,卷积层会以三维数据的形式接收输入数据,并同样以三维数据的形式输出至下一层,因此在CNN中,可以(有可能)正确理解图像等具有形状的数据。

*CNN中,有时将卷积层的输入输出数据称为特征图,其中输入数据称为输入特征图,输出数据称为输出特征图

*卷积运算:

?? 卷积层进行的处理就是卷积运算,卷积运算相当于图像处理中的滤波器运算

?? 卷积运算举例:

\circledast表示卷积运算,在本例中,输入大小是(4,4),滤波器大小是(3,3),输出大小是(2,2)

?? 有些文献中用“核”来表示“滤波器”

?? 运算过程:

将各个位置上滤波器的元素和输入的对应元素相乘,然后再求和,再将这个结果保存到对应的位置,将这个过程在所有位置都进行一遍,就可以得到卷积运算的输出

?? CNN中,滤波器的参数就对应之前的权重,并且CNN中也存在偏置

*填充:

?? 在进行卷积层的处理之前,有时要向输入数据的周围填入固定的数据(比如0等),这称为填充,是卷积运算中经常会用到的处理,例如对(4,4)的输入数据应用了幅度为1的填充:

使用填充主要是为了调整输出大小

*步幅:

?? 应用滤波器的位置间隔称为步幅,增大步幅后,输出大小会变小,而增大填充后,输出大小会变大。设输入大小为(H,W),滤波器大小为(FH,FW),输出大小为(OH,OW),填充为P,步幅为S,则:

上式分别可以除尽,当输出大小无法除尽时,需要采取报错措施,有时向最近的整数四舍五入

*三维卷积数据的运算

*批处理:

3.池化层

*池化层是缩小高、长方向上的空间的运算,例如:

上图是按步幅2进行2*2的Max池化时的处理顺序,Max池化是获取最大值的运算,一般来说,池化的窗口大小会和步幅设定成相同的值

*除了Max池化之外,还有Average池化等,相对于Max池化是从目标区域中取出最大值,Average池化则是计算目标区域的平均值,在图像识别领域,主要使用Max池化

*池化层的特征:

?? 没有要学习的参数;通道数不发生变化;对微笑的位置变化具有鲁棒性

4.卷积层和池化层的实现

*CNN中各个层间传递的数据是4维数据,所谓4维数据,比如数据的形状是(10,1,28,28),则它对应10个高为28、长为28、通道为1的数据,用Python实现为:

x=np.random.rand(10,1,28,28)#随机生成数据

?? 如果要访问第一个数据的第一个通道的空间数据,则可以写成:

?? X[0,0]

*im2col:im2col是一个函数,将输入数据展开以适合滤波器,对三维的输入数据应用im2col后,数据转换为2维矩阵(把包含批数量的4维数据转换成了2维数据),将应用滤波器的区域横向展开为1列,im2col会在所有应用滤波器的地方进行这个展开处理

?在上图中,为了便于观察,将步幅设置的很大,以使滤波器的应用区域不重叠,而在实际的卷积运算中,滤波器的应用区域几乎都是重叠的,在滤波器的应用区域重叠的情况下,使用im2col展开后,展开后的元素个数会多于原方块的元素个数。因此,使用im2col的实现存在比普通的实现消耗更多内存的缺点。但是,汇总成一个大的矩阵进行计算,对计算机的计算更有益处。比如,在矩阵计算的库等,矩阵计算的实现已被高度最优化,可以高速地进行大矩阵的乘法运算。因此,通过归结到矩阵计算上,可以有效地利用线性代数库。

(1)卷积层的实现?

*transpose函数会更改多维数组的轴的顺序

(2)池化层的实现

*池化层的实现过程:

*步骤一:展开输入数据

*步骤二:求各行的最大值

*步骤三:转换为合适的输出大小

?5.CNN的实现

?

?代码略

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:57:15  更:2022-09-24 21:00:21 
 
开发: 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年12日历 -2024/12/28 18:22:24-

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