【机器学习300问】103、简单的经典卷积神经网络结构设计成什么样?以LeNet-5为例说明。

本文主要是介绍【机器学习300问】103、简单的经典卷积神经网络结构设计成什么样?以LeNet-5为例说明。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        一个简单的经典CNN网络结构由:输入层、卷积层、池化层、全连接层和输出层,这五种神经网络层结构组成。它最最经典的实例是LeNet-5,它最早被设计用于手写数字识别任务,包含两个卷积层、两个池化层、几个全连接层,以及最后的输出层。

一、先用文字介绍一下这五层分别在做什么

(1)输入层

        输入通常是经过预处理的图像数据,例如,将图像调整到特定尺寸(如32x32x3)并进行归一化,使得像素值范围在0到1之间,或者被标准化为均值为0,标准差为1的形式。

(2)卷积层

        卷积层是CNN的关键组成部分,又可以拆分成下面4分部分逐一理解:

  • 卷积核(Filter/Kernels):每个卷积层包含多个可学习的滤波器(或称为卷积核),这些滤波器在输入图像上滑动,执行卷积操作(相乘后求和),从而检测图像中的特定特征,如边缘、线条、纹理等。
  • 步长(Stride):滤波器在图像上移动的步长,决定了输出特征图的空间分辨率。
  • 填充(Padding):通常为了保持输出特征图的尺寸或避免边界信息的丢失,会在图像边缘添加零(Zero Padding)。
  • 激活函数:如ReLU(Rectified Linear Unit)用于增加网络的非线性。

(3)池化层

        池化层的负责减少特征图的空间尺寸,降低计算复杂度,同时保持最重要的特征。最常见的池化类型是最大池化(Max Pooling),它在每个池化区域取最大值作为输出。池化同样有步长和大小的参数,比如常用的2x2大小,步长为2。

(4)全连接层

        在一系列卷积和池化层之后,特征图会被展平(Flatten)成一维向量,然后传递给全连接层。全连接层负责将学到的特征映射到分类标签或其他输出形式。全连接层是传统神经网络的一部分,常用于模型的最终分类或回归任务。

(5)输出层

        对于分类任务,输出层通常使用Softmax激活函数,将神经元的输出转换为概率分布,表示每个类别的预测概率。输出层的神经元数量等于分类任务的类别总数。

二、再用可视化加深对经典CNN结构的理解

(1)经典CNN结构 

LeNet-5网络结构图(英文)

        CNN有个特点,5个层组成(输入层、卷积层、池化层、全连接层和输出层),在神经网络的隐藏层部分,卷积层和池化层交替出现,最后跟上几个全连接层再跟输出层。

        重复的卷积层与池化层的组合目的是为了学习更深层次、更复杂的特征,每次这样的组合都会使网络能够捕捉到更高层次的抽象特征,如从边缘逐步过渡到形状、纹理乃至对象的部分和整体。

LeNet-5网络结构图(中文)

(2)这样的网络结构设计会出现一种现象

        经过这样的网络结构后,图像的尺寸(n_H,n_W)会减小,图像的通道数n_C会增大。 这种变化反映了网络从原始像素数据中提取并逐步构建更高级、更抽象特征的过程。对此现象稍作解释:

① 图像尺寸减小

  • 卷积层:卷积层本身不一定会减少图像尺寸,但可以通过设置合适的填充(padding)和步长(stride)来控制输出尺寸。无填充且步长大于1的卷积会缩小输出尺寸。
  • 池化层:池化层的主要作用之一就是减少空间维度(高度和宽度),通常在每个维度上减半,从而显著减小图像尺寸,同时保持最重要的特征。

② 通道数增大

  • 卷积层:每个卷积层通过不同的卷积核学习不同的特征,每个卷积核会产生一个新的通道。因此,卷积层后的通道数通常会增加,具体增加的数量等于该层中滤波器(卷积核)的数量。
  • 池化层:池化操作不会改变通道数,它只影响空间维度。
  • 全连接层:进入全连接层之前,所有之前的层(包括卷积层和池化层)的输出会被“展平”成一维向量,此时不再讨论“通道”这个概念,而是关注于神经元的总数。

这篇关于【机器学习300问】103、简单的经典卷积神经网络结构设计成什么样?以LeNet-5为例说明。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011858

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss