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-explainer解释CNN作用过程 -> 正文阅读

[人工智能]cnn-explainer解释CNN作用过程

cnn-explainer

GitHub地址:cnn-explainer
论文地址:CNN Explainer: Learning Convolutional Neural Networks with Interactive Visualization

cnn-explainer将卷积神经网络每一个步骤全部可视化出来,能够清晰地看到每一步的操作,对于初学者理解CNN原理和计算过程是非常有帮助的。

cnn-explainer实现了一个简单的10层卷积神经网络,网络结构如下:
网络结构
根据论文原文对此插图的说明

Illustration of Tiny VGG model used in CNN EXPLAINER: this model uses the same, but fewer, convolutional layers as the original VGGNet model . We trained it to classify 10 classes of images.

可以看出该模型结构为Tiny VGG,比原始的VGG模型更加简单,最后实现了对输入图像的10分类。

输入层

输入层图像大小为64×64@3,分为RGB三通道输入

conv_1_1

第一层卷积层,这一层使用10个卷积核,由最终输出图片大小为62×62,根据文章CNN网络的搭建中提到的计算公式可以计算出各个参数。卷积核大小应为3×3,步长为1,因为使用了10个卷积核,最后得到10个特征图。

在这里,我们选择意式咖啡(espresso)的图片,然后跟踪一个卷积核来查看卷积提取特征的过程
conv1跟踪
可以非常直观的看到图片RGB三通道经过一个卷积核提取特征生成特征图的过程:将三通道分别经过卷积核计算得到的结果累加后再加上bias,如果继续点击通道图片,可以更加详细地查看计算过程

计算过程
卷积核大小为3×3,与我们之前计算结果一致。

relu_1_1

激活函数,不做详细介绍,这里使用ReLu函数,计算过程如下
ReLu1
可以看到,遇到非负值时,输出不变,当遇到负值时,输出为0,符合ReLu计算过程,最终输出维度不变,仍为62×62@10.

conv_1_2

第二层卷积层,输出特征图大小为60×60,深度仍为10不变,则说明卷积核为10个,计算可得卷积核大小为3×3,步长为1,这里与conv_1_1基本相同,区别在于这里的输入是经过conv_1_1和relu_1_1处理后的深度为10的62×62的图像,所以在卷积运算时要分别对10个维度的数据分别计算后累加再加上bias才能得到结果。

conv2

relu_1_2

激活函数,与relu_1_1作用相同,输出仍为60×60@10,不做展示。

max_pool_1

第一层池化层。
卷积神经网络中池化层的作用可以总结为以下几点

  1. 特征不变性(feature invariant)
    汇合操作使模型更关注是否存在某些特征而不是特征具体的位置
    可看作是一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移
  2. 特征降维
    由于汇合操作的降采样作用,汇合结果中的一个元素对应于原输入数据的一个子区域(sub-region),因此汇合相当于在空间范围内做了维度约减(spatially dimension reduction),从而使模型可以抽取更广范围的特征,同时减小了下一层输入大小,进而减小计算量和参数个数
  3. 在一定程度上能防止过拟合的发生

简单来说,将卷积层的作用概括为提取图像特征,那么池化层的主要作用就是保留显著特征、降低特征维度,即压缩特征

在这里,池化层使用最大池化(Max pooling)的方法,从项目中可以看到,输入数据经过池化层后输出为30×30,深度为10,则推断出卷积核大小为2×2,步长为2,下面进一步查看池化过程。

maxpool1
从这下面这张图片可以更为明显地看出,在一次池化后图像特征被较完整的保留下来,同时降低了维度。

池化前后

在这一层之后,还有两个卷积层(conv_2_1、conv_2_2),每次卷积操作后均有一次relu操作,然后会对结果再次池化,最终输出张量为13×13@10,并对这个结果做展平后送入全连接层。

flatten层

根据13×13@10这个结果维度,可以计算出每批次张量展平后的维度应为13×13×10 = 1690,将展平后结果送入全连接层,全连接层的输入维度为1690,输出维度应为10,最后经过softmax函数将多次提取、压缩得到的特征进行分类得到10分类的概率
softmax
我们选择的图片是意式咖啡(espresso),从上图可以看到最后意式咖啡(espresso)计算出的概率也是最大的,为0.8808。

最后分类结果为espresso
分类结果

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

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