Datawhle X 李宏毅苹果书AI夏令营深度学习笔记之——卷积神经网络

news2024/11/14 15:44:59

卷积神经网络简介

卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习模型,尤其擅长处理图像和视频等高维度的数据。CNN 通过模仿人类视觉系统的工作方式,自动学习数据中的空间层次结构,使得它在计算机视觉任务中表现出色,如图像分类、目标检测等。

与传统的神经网络不同,CNN 通过引入卷积层和池化层,有效地减少了参数数量并提升了计算效率。卷积层使用可学习的过滤器(Filter)扫描输入数据,提取特征,而池化层则通过下采样减少数据维度,进一步压缩信息。这种层次化的特征提取方式,使得 CNN 能够从低层次的边缘和纹理,一直到高层次的复杂对象,逐步构建对图像的理解。

自从 LeCun 等人在 1998 年提出的 LeNet-5 被用于手写数字识别以来,CNN 已经在多个领域取得了突破性进展。在医学图像诊断到自动驾驶,都有不错的表现力和泛化能力。

CNN

在卷积神经网络(CNN)的基本构建模块部分,我们需要详细解释每个模块的作用、原理和在网络中的具体位置。以下是对各个模块的扩充内容,帮助更深入地理解 CNN 的工作机制。

卷积神经网络的基本构建模块

1. 输入层(Input Layer)

输入层是 CNN 的起点,接收原始数据并准备进行处理。对于图像数据,输入层通常是一个三维的矩阵,包含高度、宽度和通道数(如 RGB 图像有三个通道:彩色图像的每个像素都可以描述为红色(red)、绿色(green)、蓝色(blue)的组合,这 3 种颜色就称为图像的 3 个色彩通道。这种颜色描述方式称为 RGB 色彩模型,常用于在屏幕上显示颜色。)

将代表图像的三维张量输入到网络里之前,需要先将它“拉平”,对于一张尺寸为100*100像素的图像,张量有 100 × 100 × 3 个数字,所以一张图像是由100×100×3 个数字所组成的,每个数值是某一个像素在某一个通道下的颜色强度。把这些数字排成一排就是一个巨大的向量。这个很长的向量是网络的输入。(在输入之前记得要把所有图像都调成一样的尺寸)。
](https://i-blog.csdnimg.cn/direct/03fe387ef32541fdb1ed59daed956a4e.png)

2. 卷积层(Convolutional Layer)
  • 卷积层是 CNN 的核心组件,通过卷积操作来提取输入数据的特征。卷积操作是将卷积核(Filter)在输入数据上滑动,每次计算局部区域的加权和。
  • 卷积核(Filters/Kernels):
    • 是一个小尺寸的矩阵,用于在图像上滑动,并逐像素地计算点积,从而提取特征。
    • 不同的卷积核可以提取不同的特征,如边缘、角点和纹理等。
  • 步长(Stride):
    • 决定了卷积核在输入数据上滑动的步幅。较大的步长会减少输出特征图的尺寸。
  • 填充(Padding):
    • 通过在输入数据的边缘添加额外的像素(通常为零),以控制输出的尺寸。常见的填充方式有 ‘valid’(无填充)和 ‘same’(输出与输入尺寸相同)。
  • 特征图(Feature Maps):
    • 卷积层的输出称为特征图,它反映了卷积核在不同位置上提取到的特征。
      在这里插入图片描述在这里插入图片描述
      在这里插入图片描述
3. 激活函数层(Activation Layer)
  • 激活函数层通常紧跟在卷积层之后,增加网络的非线性能力。常用的激活函数包括 ReLU(Rectified Linear Unit)、Sigmoid 和 Tanh 等。
  • ReLU (Rectified Linear Unit):
    • ReLU 是最常用的激活函数,它将所有负值变为零,保持正值不变。这样可以加快模型的收敛速度,并减少梯度消失问题。
  • Leaky ReLU:
    • 类似于 ReLU,但在负值区域有一个很小的斜率,以保留一些负值信息,从而改善训练效果。
4. 池化层(Pooling Layer)
  • 池化层用于减少特征图的尺寸,同时保留重要的特征,降低计算量和模型的复杂性。池化层通过下采样操作缩小特征图。
  • 最大池化(Max Pooling):
    • 选择池化窗口内的最大值作为输出,保留最强的特征响应,通常用于捕捉显著的特征。
  • 平均池化(Average Pooling):
    • 计算池化窗口内所有值的平均值,更多用于特征的平滑处理。
  • 步长和池化窗口:
    • 池化窗口的大小和步长决定了输出特征图的尺寸。较大的池化窗口或步长会进一步减少输出尺寸。

在这里插入图片描述

5. 平铺层(Flattening Layer)
  • 平铺层将卷积和池化后的多维特征图展开为一维向量,以便传递给全连接层。
  • 这个过程不会对数据进行任何计算,只是将多维数组转换为一维数组,以连接卷积部分和全连接部分。
6. 全连接层(Fully Connected Layer)
  • 全连接层将前面提取到的特征综合起来,进行分类或回归等任务。每一个神经元都与上一层的所有输出连接,类似于传统神经网络中的连接方式。
  • 权重矩阵:
    • 全连接层包含大量参数(权重和偏置),它们用于将输入特征映射到输出类别。
  • 输出层:
    • 通常,输出层会使用 Softmax 函数来进行多分类,将网络输出转换为概率分布;或使用 Sigmoid 函数进行二分类。
7. 输出层(Output Layer)
  • 输出层是 CNN 的最后一层,输出预测结果。对于分类问题,输出层的神经元数量等于类别数量。
  • 损失函数:
    • 在训练过程中,输出层会计算损失函数(如交叉熵损失),用以评估模型的预测结果与真实标签之间的差距,并指导模型参数的更新。
      在这里插入图片描述

总结

卷积神经网络的各个构建模块相互协作,形成了一个高效的特征提取和学习框架。卷积层负责初步的特征提取,激活函数增加非线性,池化层减少数据维度,全连接层进行特征整合并最终输出结果。通过这些模块的堆叠和组合,CNN 可以逐层构建从低级到高级的特征表示,最终实现对数据的高效分类或其他任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我找到了一个让ChatGPT稳定通过草莓测试的方法,百试百灵!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

windows C++ 并行编程-并发和UWP(三)

控制执行线程 Windows 运行时使用 COM 线程模型。 在此模型中,根据对象处理其同步的方式,对象被托管在不同的单元中。 线程安全对象托管在多线程单元 (MTA) 中。 必须通过单个线程访问的对象托管在单线程单元 (STA) 中。 在具有 UI 的应用程序中&#…

系统找不到指定的文件怎么解决?

把U盘插在电脑上,当我打开U盘中的文件时,弹窗提示系统找不到指定的文件,这是什么情况?有谁遇到过吗?大家有没有解决办法? 这个问题可能大家并不陌生,可能也曾遇到过,造成问题出现的原…

DriveLM的baseline复现

DriveLM是一篇很有意思的工作,把自动驾驶跟MLLM结合到一起了,实现端到端的感知or决策规划。 Repo:https://github.com/OpenDriveLab/DriveLM 该工作是基于nuScenes数据集做的,官方paper里给出了数据的具体构建方式,感…

云计算之ECS

目录 一、ECS云服务器 1.1 ECS的构成 1.2 ECS的实例规格 1.3 镜像 1.4 磁盘 1.5 安全组 1.6 网络 1.7 产品结构 二、块存储介绍 2.1 快存储定义 2.2 块存储性能指标 2.3 快存储常用操作-云盘扩容 2.4 块存储常见问题 三、快照介绍 3.1 快照定义 3.2 快照常见问题…

《python语言程序设计》第8章第12题生物信息:找出基因,生物学家使用字母A C T和G构成字符2串建模一个基因组(下)

一、上一个版本 抱歉各位兄弟我感觉这道题我现在的能力有限,不纠结了跳过去.等第3刷的时候解决吧. 可能彼岸就在眼前,但是我累了.等下次吧 这个版本中div_text函数已经可以很好的划分字符串了 但是我发现了一个问题.它间隔字符效果如下 genome_text TTATGTTTTAAGGATGGGGCGTTAG…

CSS - 搜索框小动效

点击搜索框动画变长&#xff0c;搜索框有内容不变&#xff0c;无内容失去焦点&#xff0c;变回原来模样。<div :class"type true ? s_r_z : s_r" click"onChange"><div class"input_s"><input blur"handleBlur" v-mo…

QTC++联合编程之解决代码语句块折叠并中文注释代码块

目录&#xff1a; 一&#xff0c;前言二&#xff0c;解决方法2.1直接折叠代码段落&#xff0c;不命名2.2折叠代码段落并注释&#xff08;中/英文&#xff09;命名2.3使用模板 三&#xff0c;参考文章 一&#xff0c;前言 如果从C#或者从其他语言学习过&#xff0c;一定会感叹ID…

Android实习面经整理第一篇

蔚来Android实习面经 一面(2024/3/11 35min) 自我介绍聊我的本专业说一说MVP架构,MVVM架构 MVP:V层持有P层,用户点击View,把数据发给P层,P层持有M层,然后P层把V层的数据发给M层获取其他数据,最后M层获取完数据后把数据还给P层,更新V层。P层也有V层的引用。MVVM:V层…

使用ElementUI + Vue框架实现学生管理系统前端页面设计

目录 一.什么是ElementUI&#xff1f; 二.使用ElementUI和Vue-cli搭建前端页面 三.具体步骤 1.创建vue-cli项目 2.分析 3.创建组件 四.总结 一.什么是ElementUI&#xff1f; ElementUI是一种网站快速成型工具&#xff0c;一套为开发者&#xff0c;设计师准备的基于Vue2.…

江协科技stm32————11-4 SPI通信协议

目录 SPI外设简介 SPI框图 波特率控制 SPE&#xff08;SPI使能&#xff09; 配置主从模式 四种模式的选择 发送和接收数据缓冲区状态 I2C基本结构 1. SPI模式选择 2. 时钟极性和相位&#xff08;CPOL和CPHA&#xff09; 3. 波特率设置 4. 数据帧格式 5. NSS引脚管…

Steam游戏截图方法

Steam游戏截图方法 截图快捷键 Steam游戏自带截图功能&#xff0c;在游戏中无需复杂的快捷键&#xff0c;仅需按下F12快捷键便可立即截图&#xff0c;官方说明如下。下文介绍使用方法。 查看截图 退出游戏后&#xff0c;在Steam界面点击查看 - 截图&#xff0c;即可查看截…

AndroidLogger 适配好了,但没法上架

看到有网友还在用之前的 AndroidLogger 版本&#xff0c;让我感动再次花了 2个月适配新的Notepad&#xff0c;总算搞完了&#xff0c;但是Notepad作者反了&#xff0c;我没法上架啊。 演示视频地址&#xff1a; Notepad安卓日志插件&#xff0c;支持文件管理和截屏&#xff0c…

无需前端技能:如何使用 Amis 框架简化页面开发

Amis 是一个由百度开源的前端低代码框架&#xff0c;它允许开发者通过 JSON 配置文件来快速生成各种后台管理页面。Amis 的设计理念是通过配置而非编码来实现页面的构建&#xff0c;这使得即使是不熟悉前端技术的开发者也能快速上手。Amis 提供了丰富的组件库和模板&#xff0c…

Mqtt消费端实现的几种方式

此处测试的mqtt的Broker是使用的EMQX 5.7.1&#xff0c;可移步至https://blog.csdn.net/tiantang_1986/article/details/140443513查看详细介绍 一、方式1 添加必要的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spr…

蒸馏之道:如何提取白酒中的精华?

在白酒的酿造过程中&#xff0c;蒸馏是一道至关重要的工序&#xff0c;它如同一位技艺精细的炼金术士&#xff0c;将原料中的精华提炼出来&#xff0c;凝聚成滴滴琼浆。今天&#xff0c;我们就来探寻这蒸馏之道&#xff0c;看看豪迈白酒&#xff08;HOMANLISM&#xff09;是如何…

Linux 学习之路 - 信号的保存

前面已经介绍过信号的产生&#xff0c;本文将继续介绍信号的保存与处理。 1、上篇文章的遗留问题 从上篇文章(Linux学习之路 -- 信号概念 && 信号的产生-CSDN博客)中&#xff0c;其实还遗留了一些问题。OS在接受到信号后&#xff0c;大部分的进程的处理方式都是终止进…

合宙低功耗4G模组Air780E——产品规格书

Air780E 是合宙通信推出的 LTE Cat.1 bis通信模块&#xff1b; 采用移芯EC618平台&#xff0c;支持 LTE 3GPP Rel.13 技术。 Air780E特点和优势总结如下&#xff1a; 全网通兼容性&#xff1a; 作为4G全网通模块&#xff0c;兼容不同运营商网络&#xff0c;包括但不限于移动、…

【C++ Primer Plus习题】10.1

问题: 解答: main.cpp #include <iostream> #include "BankAccount.h" using namespace std;int main() {BankAccount BA1("韩立","韩跑跑",1);BA1.get_info();BankAccount BA;BA.init_account("姚国林", "amdin", 1…

国际化产品经理的挑战与机遇:跨文化产品管理的探索

全球化背景下的产品管理变革 在当今全球化的背景下&#xff0c;科技的进步和通信技术的普及&#xff0c;使得世界变得更加紧密相连。产品不再仅仅局限于单一市场&#xff0c;而是面向全球用户&#xff0c;这对产品经理提出了新的挑战与机遇。跨文化的产品管理要求产品经理不仅…