[人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级

2023-11-07

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:[人工智能-深度学习-23]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级_文火冰糖(王文兵)的博客-CSDN博客


 目录

第1章 CS321n卷积神经网络简介

1.1 CS321n的简介

1.2 CS321n连接

第2章 卷积神经网络(CNNs / ConvNets)概述

2.1 卷积神经网络和常规神经网络的非常相似性

2.2 那么有哪些地方变化了呢?

2.3 常规神经网络回顾

2.3 卷积神经网络的基本结构

2.4 组成构建卷积网络的各种层

2.5 一个卷积神经网络的激活输出例子。


第1章 CS321n卷积神经网络简介

1.1 CS321n的简介

CS321n是由李飞飞教授,Justin Johnson教师和Serena Yeung教授主讲的计算机视觉识别课程。本课程本深入研究深度学习架构的细节,重点是学习这些任务的端到端模型,特别是图像分类。

在为期10周的课程中,学生将学会实现、训练和调试自己的神经网络,并详细了解计算机视觉领域的前沿研究。

本文主要其对CNN文字讲解的解读。

1.2 CS321n连接

(1)英文链接
CS231n Convolutional Neural Networks for Visual Recognition

(2)中文连接

 CS231n课程笔记翻译:卷积神经网络笔记 - 知乎

(3)卷积神经网图形解构

 https://poloclub.github.io/cnn-explainer/

第2章 卷积神经网络(CNNs / ConvNets)概述

2.1 卷积神经网络和常规神经网络的非常相似性

它们都是由神经元组成,神经元中有具有学习能力的权重和偏差。

每个神经元都得到一些输入数据,进行内积运算后再进行激活函数运算。

整个网络依旧是一个可导的评分函数

该函数的输入是原始的图像像素,输出是不同类别的评分。

在最后一层(往往是全连接层),网络依旧有一个损失函数(比如SVM或Softmax),并且在神经网络中我们实现的各种技巧和要点依旧适用于卷积神经网络。

2.2 那么有哪些地方变化了呢?

卷积神经网络的结构基于一个假设,即输入数据是图像

基于该假设,我们就向神经网络结构中添加了一些特有的性质。

这些特有属性使得前向传播函数实现起来更高效,并且大幅度降低了网络中参数的数量(卷积核)。

2.3 常规神经网络回顾

神经网络的输入是一个一维向量,然后在一系列的隐层中对它(一维输入向量)做变换。

每个隐层都是由若干的神经元组成,每个神经元都与前一层中的所有神经元连接。但是在一个隐层中,神经元相互独立不进行任何连接

最后的全连接层被称为“输出层”,在分类问题中,它输出的值被看做是不同类别的评分值(平方值通常在[0,1]之间,输出值越大,是某个分类的可能性就越大,因此有时候也称为输出概率大小。

常规神经网络对于大尺寸图像效果不尽人意:

在CIFAR-10中,图像的尺寸是32x32x3(宽高均为32像素,3个颜色通道),因此,对应的的常规神经网络的第一个隐层中,每一个单独的全连接神经元就有32x32x3=3072个权重。

这个数量看起来还可以接受,但是很显然这个全连接的结构不适用于更大尺寸的图像。举例说来,一个尺寸为200x200x3的图像,会让神经元包含200x200x3=120,000个权重值。

而网络中肯定不止一个神经元,那么参数的量就会快速增加!显而易见,这种全连接方式效率低下,大量的参数也很快会导致网络过拟合

2.3 卷积神经网络的基本结构

神经元的三维排列。

卷积神经网络针对输入全部是图像的情况,将结构调整得更加合理,获得了不小的优势。

与常规神经网络不同,卷积神经网络的各层中的神经元是3维排列的:宽度高度深度,这里的深度指的不是图片数的第三个维度,即通道,也不是整个网络的深度,整个网络的深度指的是网络的层数,而是卷积核神经元的个数,每个卷积核神经元代表一组卷积输出。

举个例子,CIFAR-10中的图像是作为卷积神经网络的输入,该数据体的维度是32x32x3(宽度,高度和深度),数据体的深度,是指图片的通道数。

我们将看到,层中的神经元将只与前一层中的一小块区域连接,而不是采取全连接方式。

对于用来分类CIFAR-10中的图像的卷积网络,其最后的输出层的维度是1x1x10,因为在卷积神经网络结构的最后部分:将会把全尺寸的图像压缩为包含每一种分类评分的一个向量(输出向量),向量是在深度方向排列的。

下面是例子:

 左边是一个3层的神经网络。

右边是一个卷积神经网络,图例中网络将它的神经元都排列成3个维度,即3D(宽、高和深度/通道数)。

卷积神经网络的每一层都将3D的输入数据变化为神经元3D的激活数据并输出。

在这个例子中,红色的输入层装的是图像,所以它的宽度和高度就是图像的宽度和高度,它的深度是通道数3(代表了红、绿、蓝3种颜色通道)。

蓝色的是卷积核:Width * Height * Channels

卷积核的输出:Width * Height * Depth,  注意此处的Width * Heigh与卷积核的With * Heigh不是一回事。

卷积神经网络是由层组成的,该网络将输入的3D数据变换为3D的输出数据,在变换过程中,虽然维度没法发生变化,但是:

(1)每个维度方向上的长度得到的降低。

(2)三维维度方向的含义发生了变化。

  • 输入:长 * 宽 *  通道数,他们定义的是图片三通道的像素值
  • 卷积核:长 * 宽 *  通道数,长度和宽度比图形小很多,用这个小卷积核过滤原始图片的特征。
  • 输出:长 * 宽 * 深度,长 * 宽反映了某一个卷积核过滤处来的三通道图片的特征,每个值代表一次卷积的输出。深度反映的是,用多少个卷积核充当过滤器,来过滤整个图片的特征,不同的卷积核,反映的不同方面的特征,比如,有些是颜色方面的特征,有些是图形方面的特性,有些是大小方面的特征。

2.4 组成构建卷积网络的各种层

一个简单的卷积神经网络是由各种层按照顺序排列组成。网络中的每个层使用一个可以微分的函数将激活数据从一个层传递到另一个层。

卷积神经网络主要由三种类型的层构成:卷积层汇聚(Pooling)层全连接层(全连接层和常规神经网络中的一样)。通过将这些层叠加起来,就可以构建一个完整的卷积神经网络。

一个用于CIFAR-10图像数据分类的卷积神经网络的结构可以是:

[输入层 -》卷积层 -》ReLU层 -》汇聚层  -》全连接层],如下图所示:

  • 输入[32x32x3]存有图像的原始像素值,本例中图像宽高均为32,有3个颜色通道。
  • 卷积层中,神经元与输入层中的一个局部区域相连,每个神经元都计算自己与输入层相连的小区域与自己权重的内积。卷积层会计算所有神经元的输出。如果我们使用12个滤波器(也叫作卷积核),得到的输出数据体的维度就是[32x32x12]。卷积会把三个通道的数据进行整合(求和)
  • ReLU层将会逐个元素地进行激活函数操作,比如使用以0为阈值的作为激活函数。该层对数据尺寸没有改变,还是[32x32x12]。
  • 汇聚层在在空间维度(宽度和高度)上进行降采样(downsampling)操作,数据尺寸变为[16x16x12]。降采样会对ReLU的特征输出,进行进一步的降低size的采用,降低size的规则有:选择某个小区域的最大特征输出、某个小区所有的特征了平均值输出等。
  • 全连接层将会计算分类评分,数据尺寸变为[1x1x10],其中10个数字对应的就是CIFAR-10中10个类别的分类评分值。正如其名,全连接层与常规神经网络一样,其中每个神经元都与前一层中所有神经元相连接。全连接就是利用前面各层发现的特征数据作为全连接分类的输入,而不是原始的像素值作为输入,然后进行分类。

由此看来,卷积神经网络一层一层地将图像从原始像素值变换成最终的分类评分值(概率输出)。

其中有的层含有参数,有的没有,具体说来:

卷积层和全连接层(CONV/FC)对输入执行变换操作的时候,不仅会用到激活函数,还会用到很多参数(神经元的突触权值和偏差)。

而ReLU层和汇聚层则是进行一个固定不变的函数操作。

卷积层和全连接层中的参数会随着梯度下降被训练,

这样卷积神经网络计算出的分类评分就能和训练集中的每个图像的标签吻合了。

2.5 一个卷积神经网络的激活输出例子。

左边的输入层存有原始图像像素,右边的输出层存有类别分类评分。

在处理流程中的每个激活数据体是铺成一列来展示的。因为对3D数据作图比较困难,我们就把每个数据体切成层,然后铺成一列显示。

最后一层装的是针对不同类别的分类得分,这里只显示了得分最高的5个评分值和对应的类别。



作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120799799

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级 的相关文章

  • java集合框架

    这图画的真洒脱 光一个stack就有很多可探索了
  • 那些年踩过的坑——服务器中文路径

    从11年学编程至今已有十个年头 其实有时候也很后悔选择这个专业 整日和电脑相偎相依 人的思维和沟通能力也趋向机器 和别人聊天也不知道怎么开口 算法的一个评定标准就是以最少的语句实现所需的功能 但和别人聊天则不能这样 太直接简单会让人变得无趣
  • 总结了9款Mac端超好用的免费开源软件,你还有更好的推荐吗?

    与Windows相比 Mac上的软件 不仅不稀缺 并且大多数都更加精致 还没有乱七八糟烦人的弹窗骚扰 所以 本期就为大家盘点盘点Mac上有超好用的免费开源神器 1 Tincta 官网 https codingfriends github i
  • glibc堆内存管理

    glibc堆内存管理 背景 应用出现SIGABRT crash 报错信息为 malloc invalid size unsorted 即是在应用调用malloc分配内存时出现异常导致的crash 管理结构 进程虚拟地址空间被划分为代码段 数
  • eclipse下JNI的初步实现

    eclipse下JNI的初步实现 JNI java native interface 为java应用程序提供调用本地方法的接口 The standard Java class library may not support the plat
  • build打包后怎么查看源码 vue_vue2源码解析一:打包与构建流程

    本系列文章 基于vue 2 6 11进行解析 不追究每行代码分析清楚 但求把握大体的重点 比如源码构建流程 如何实现数据双向绑定 如何解析模板 如何解析一个组件的data method computed等属性 如何实现在weex web等多
  • LeetCode-1326. Minimum Number of Taps to Open to Water a Garden

    There is a one dimensional garden on the x axis The garden starts at the point 0 and ends at the point n i e The length

随机推荐

  • 深圳大学软件工程MOOC章节测试答案

    第一章 章节测试 一 单选题 共 90 00 分 1 下列 不是软件工程方法学中的要素 A 方法 B 工具 C 程序 D 过程 满分 10 00 分 得分 10 00 分 你的答案 C 教师评语 暂无 2 软件工程方法学的目的是 使软件生产
  • RK3588s imx415相机适配及ISP调优系列(三)--- RKISP调试环境配置

    经过上篇的相机配置后 两个mipi相机已经可以正常出图了 其实对于rk系列如何配置mipi相机 网上已有不少相关资料均可参考借鉴 RK3588s imx415相机适配及ISP调优系列 一 RK3588s imx415相机适配及ISP调优系列
  • Fast DDS入门二、Fast DDS在Windows平台的编译安装

    Fast DDS入门五 在Windows平台创建一个简单的Fast DDS示例程序 1 Fast DDS动态库的编译安装 本节提供了在Windows环境中从源代码安装Fast DDS的说明 将安装以下软件包 foonathan memory
  • Storcli工具linux命令

    storcli命令使用 设置其他盘的JBOD模式 使用storcli64工具进行查看RAID状态 storcli64 c0 show 使用storcli64工具进行删除RAID storcli64 c0 vall del force 例如
  • 具有最大和的连续子数组(动态规划法)

    题目 给定一个整数数组 nums 找到一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 示例 1 输入 nums 2 1 3 4 1 2 1 5 4 输出 6 解释 连续子数组 4 1 2 1 的和最大 为 6 思路 动态规
  • apollo 轨迹预测介绍

    转自 http www iheima com article 178452 html 对于纵向轨迹的采样 我们需要考虑巡航 跟车或超车 停车这三种状态 作者 许珂诚 编辑 Natalie 大家好 我是来自百度智能驾驶事业群的许珂诚 今天很高
  • Android中使用log4j2

    Log4j2 的配置 使用 最近公司让调研log4j2在Android中的使用 在网上查了很多资料 在这做个总结 一起学习 参考了许多文章 文末都有链接 感谢大佬们的文章 Log4j2 简介 log4j2是log4j 1 x 的升级版 20
  • 多租户分库分表技术文档

    分库分表技术文档 2022 07 13 李某某 1需求 1 1多租户实现分库分表 1 2系统实现主从数据源 2系统功能 2 1多租户实现分库分表 2 1 1功能描述 根据租户的数量和租户的自定义编号实现对应的分库和分表 假设现有租户1001
  • C ++中的std :: nth_element()

    The standard library of C has a huge number of functions that are not so explored but can be very handy in case of speci
  • 彻底删除Vscode所有数据

    1 先卸载源程序文件 在安装更目录找到unins000 exe 点击进行卸载 2 删除Vscode插件 此路径是C Users Administrator 此文件名是当前PC的登录用户名 进入目录后找到 vscode 进行删除 3 删除个人
  • java: 抽象工厂模式 Abstract Factory(Kit/ToolKit)

    版权所有 2022 涂聚文有限公司 许可信息查看 描述 抽象工厂 Abstract Factory Kit ToolKit 历史版本 JDK 14 02 2022 09 12 创建者 geovindu 2022 09 12 添加 Lambd
  • springCloud 微服务架构设计图解

    搭建初始化项目地址 spring cloud project 简单的springClould快速启动 包括 nacos gateway Redis mybatis plus rocketMQ OpenFeign只是简单的搭建了一些基础模块
  • 路由器和交换机的工作原理总结

    路由器的工作原理 当数据包进入路由器时 路由器先查看数据包中的目标MAC地址 1 广播 解封装到3层 2 组播 每一个组播地址均存在自己的MAC地址 基于目标MAC就可以判断本地是否 需要解封装 若本地加入了该组将解包 否则直接丢弃 3 单
  • 《TCP/IP网络编程》阅读笔记--Socket类型及协议设置

    目录 1 协议的定义 2 Socket的创建 2 1 协议族 Protocol Family 2 2 Socket类型 Type 3 Linux下实现TCP Socket 3 1 服务器端 3 2 客户端 3 3 编译运行 4 Window
  • Docker 网络实现

    Docker 网络实现 Docker 的网络实现其实就是利用了 Linux 上的网络名字空间和虚拟网络设备 特别是 veth pair 建议先熟悉了解这两部分的基本概念再阅读本章 基本原理 首先 要实现网络通信 机器需要至少一个网络接口 物
  • 2023华为OD机试真题【连接器/贪心算法】

    题目描述 有一组区间 a0 b0 a1 b1 a b表示起点 终点 区间有可能重叠 相邻 重叠或相邻则可以合并为更大的区间 给定一组连接器 x1 x2 x3 x表示连接器的最大可连接长度 即x gt gap 可用于将分离的区间连接起来 但两
  • linux搭建环境命令,在Linux上搭建测试环境常用命令(转自-测试小柚子)

    一 搭建测试环境 二 查看应用日志 1 vi vi vim 原本是指修改文件 同时可以使用vi 日志文件名 打开日志文件 2 less less命令是查看日志最常用的命令 用法 less 日志文件名 分页显示文件的内容 经常使用这个命令是因
  • [开发中遇到的算法] 均分数组

    业务背景 最近我需要写并发rpc的负载均衡 某种意义上的吧 遇到很有意思的问题 需求如下 下游固定死最多一次请求100个 比如要请求101个时要拆两个请求并发rpc 并等待两个请求都返回后拼装成一个结果返回 拆成51个 50个发出请求比拆成
  • lgg8各个版本_如何评价LG G8?

    回复下吧 产品中规中矩的升级 奈何同期对手太强 宣发脑子被驴踢 前置TOF早有透露 自家lg innotek的产品 效果不错 能更好3d人脸自拍 人脸识别 以及AR 都9012了搞隔空操作还作为宣传主力真是脑子进了水 忘了三星S4的眼球操作
  • [人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 人工智能 深度学习 23 卷积神经网络CNN CS231n解读 卷积神经网络基本层级 文火冰糖 王文兵 的博客 CSDN博客 目录 第1章