当前位置: 首页 > news >正文

《深度学习》—— 卷积神经网络(CNN)的简单介绍和工作原理

文章目录

  • 一、卷积神经网络的简单介绍
  • 二、工作原理(还未写完)
    • 1.输入层
    • 2.卷积层
    • 3.池化层
    • 4.全连接层
    • 5.输出层

一、卷积神经网络的简单介绍

  • 基本概念
    • 定义:卷积神经网络是一种深度学习模型,通常用于图像、视频、语音等信号数据的分类和识别任务。其核心思想是通过卷积、池化等操作来提取特征,将输入数据映射到一个高维特征空间中,再通过全连接层对特征进行分类或回归。
    • 提出者:Yann LeCun、Wei Zhang、Alexander Waibel等。
    • 提出时间:卷积神经网络的研究始于二十世纪80至90年代,最早由日本学者福岛邦彦提出的neocognitron模型启发了卷积神经网络的发展。第一个卷积神经网络是1987年由Alexander Waibel等提出的时间延迟网络(Time Delay Neural Network, TDNN)。
  • 主要特点
    • 权值共享:在卷积层中,同一个卷积核在不同位置上的权值是相同的,这样可以大大减少模型参数,提高模型泛化能力。
    • 局部连接:在卷积层中,每个卷积核只与输入数据的一部分进行卷积运算,而不是与整个输入数据进行卷积运算,这样可以提取出局部特征,增强模型的特征提取能力。
    • 平移不变性:卷积神经网络具有对输入数据平移不变性的特性,即对于输入数据的微小变化,模型能够保持稳定的输出。

二、工作原理(还未写完)

  • 卷积神经网络主要由输入层卷积层池化层全连接层输出层组成。这些层通过特定的运算和连接方式,共同实现了对输入数据的特征提取、降维、分类或回归等任务。

1.输入层

  • 输入层是CNN的起点,负责接收原始数据作为输入。对于图像处理任务,输入层通常是一张图片,具体表现为一个多维矩阵。例如,一张28x28的灰度图像可以表示为一个28x28的二维矩阵,而彩色图像则会有三个通道(RGB),即输入的数据会是一个28x28x3的三维矩阵。

2.卷积层

  • 卷积层是CNN的核心部分,通过卷积操作提取输入数据的局部特征。卷积操作通过输入图像与卷积核(Convolution Kernel)的点积计算完成,卷积核在输入图像上滑动,每滑动一次都会计算图像局部区域与卷积核的点积结果,生成一个新的二维矩阵,即特征图(Feature Map)。
    卷积核的大小、步长和填充方式等参数会影响特征图的尺寸和特征提取的效果。卷积核的数量决定了生成特征图的数量,多个卷积核可以并行工作以提取不同类型的特征。
    在这里插入图片描述

3.池化层

  • 池化层又称为下采样层,用于在卷积操作后提取特征图中最具代表性的特征,帮助减少不必要的特征,从而减小过拟合的风险和降低数据的维度。常见的池化操作包括最大池化和平均池化。
    最大池化在每个局部区域(如2x2)中选择最大值作为该区域的代表,而平均池化则取该区域的平均值。池化操作不仅简化了特征图,还引入了一定的平移不变性,使得模型对输入图像的微小变化具有一定的鲁棒性。

4.全连接层

  • 全连接层通常位于CNN的末端,负责将前面层提取的特征综合起来,用于分类或回归等任务。全连接层的每个神经元都与前一层的所有神经元相连,通过加权求和和激活函数等操作,将特征图中的信息整合为更高层次的特征表示。

5.输出层

  • 输出层是CNN的最后一层,负责输出最终的分类结果或回归值。在分类任务中,输出层通常使用softmax函数将全连接层的输出转换为概率分布,表示输入数据属于各个类别的概率。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • docker在基础镜像上,比如rockylinux,如何配置yum仓库
  • armbian23.11改了SSH端口号,但不生效?可尝试禁用 systemd socket activation
  • 基于机器学习的注意力缺陷/多动障碍 (ADHD)(python论文+代码)HYPERAKTIV
  • 面试题(一)
  • 视觉距离与轴距离的转换方法
  • C++标准库容器类——string类
  • 基于 K8S kubernetes 搭建 安装 EFK日志收集平台
  • Mysql InnoDB 存储引擎简介
  • 速盾:高防服务器租用需要注意什么事项
  • Mac 上,终端如何开启 proxy
  • vulnhub-prime1
  • YARN性能优化高频面试题及答案
  • 大表数据如何在OceanBase中进行表分区管理的实践
  • Shiro-550—漏洞分析(CVE-2016-4437)
  • 【笔记】第二节 轧制、热处理和焊接工艺
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS相对定位
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • FineReport中如何实现自动滚屏效果
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Making An Indicator With Pure CSS
  • MySQL用户中的%到底包不包括localhost?
  • python docx文档转html页面
  • 创建一个Struts2项目maven 方式
  • 从0实现一个tiny react(三)生命周期
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 强力优化Rancher k8s中国区的使用体验
  • 一文看透浏览器架构
  • 译有关态射的一切
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ‌内网穿透技术‌总结
  • # SpringBoot 如何让指定的Bean先加载
  • #162 (Div. 2)
  • #DBA杂记1
  • #java学习笔记(面向对象)----(未完结)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $.each()与$(selector).each()
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C++17) std算法之执行策略 execution
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (done) 两个矩阵 “相似” 是什么意思?
  • (windows2012共享文件夹和防火墙设置
  • (八)c52学习之旅-中断实验
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (七)Flink Watermark
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)为C# Windows服务添加安装程序
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net framework 4.8 开发windows系统服务
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .net操作Excel出错解决