深度学习|CNN卷积神经网络

news2024/11/26 8:20:03

CNN卷积神经网络

  • 解决的问题
  • 人类的视觉原理
  • 原理
    • 卷积层——提取特征
    • 池化层——数据降维
    • 全连接层——输出结果
  • 应用
    • 图像处理
    • 自然语言处理

解决的问题

在CNN没有出现前,图像对人工智能来说非常难处理。
主要原因:

  • 图像要处理的数据量太大了。图像由像素组成,每个像素又由不同颜色组成,一张1000×1000彩色RGB图像需要的参数是1000×1000×3,需要三百万参数左右,普通神经网络会全用全连接方法来学习整幅图像上的特征,处理起来无论是计算还是存储都需要很大的资源。
  • 很难保留图像特征。一张图像做了一些翻转、旋转、缩放的那个操作的时候,线性向量表示会发生很大的变化,机器没法认为是同一张图。而CNN能够让机器“以视觉的方式看待图像数据”,能利用视觉原理捕获到图像数据中的特征。

人类的视觉原理

深度学习是基于神经网络的实现的,而神经网络是一种模仿生物神经网络结构和功能的数学模型或计算模型。所以深度学习的许多研究成果,离不开对大脑认知原理的研究。CNN就借鉴了人类视觉系统层次结构。

人类的视觉原理:瞳孔摄入原始像素信号,然后大脑皮层某些细胞发现边缘和方向,大脑进行抽象判断特征例如物体形状,最后再进一步做出判断例如物体是个人。

下图是一个大脑进行人脸识别的示例图:
在这里插入图片描述
通过模仿人类的视觉原理的特点,来构造神经网络,低层的识别图像初级特征,若干曾底层特征组成更上一层的特征,最终通过多个层级组合,在顶层做出分类判断。

原理

CNN(Convolutional Neural Network,卷积神经网络)结构可以分为3层:卷积层、池化层和全连接层。

卷积层——提取特征

卷积层(Convolutional Layer) :主要作用是提取特征。

过程:一个过滤器(卷积核,Filter)来过滤图像各个小区域,从而得到各个小区域的特征。卷积层通过卷积核的过滤提取出图片中局部的特征,与人类视觉的特征提取类似。
在这里插入图片描述

实际应用的时候,往往会有很多种卷积核,不同卷积核识别不同的图像模式,也就是不同的特征。

池化层——数据降维

池化层(Max Pooling Layer) :提取某个区域的总结特征,主要作用是下采样(Downsampling),能够数据降维,但是不会损坏识别结果。

原因:做完卷积后的图像依然很大,1000*1000经过10种卷积核后,得到1000×1000×10,维度非常大。通过池化层,能降低数据大小,同时不会对识别结果造成破坏。

池化层函数:是一种统计函数,通常由最大池化(提取区域内的最大特征)、平均池化(提取区域内的平均特征)、混合池化等。

过程:下图采用最大池化策略,对4×4的矩阵按照2×2进行分开,每个2×2取最大值保留下来。
在这里插入图片描述
好处:除了降低参数量,还有个优点就是能够避免过拟合。池化是提取某个区域的总结特征,是对某个区域全局的考量,减少了对具体像素的依赖性,从而降低了过拟合风险。例如某个点其实是噪声,但是池化总结特征的时候被舍弃了,就没有影响;如果不池化,后续调参的时候还会考虑到噪声。

全连接层——输出结果

全连接层(Fully Connected Layer):主要作用是分类。通过卷积层和池化层的出来的特征,需要让全连接层对前面总结好的特征做分类判断。

过程:“全连接”前层网络中的所有神经元都与下一层的所有神经元连接。
在这里插入图片描述

应用

图像处理

  1. 图像分类(Image Classification):判断图片中的物体属于哪一个类别。
    举例:LeNet-5用来对手写字体识别,被认为是最早的CNN模型,作者LeCun Y也被誉为CNN之父。
  2. 图像分割(Image Segmentation):为图片每个对象创造一个像素级别的掩膜。
    分类:语义分割和实例分割。
    语义分割(Semantic Segmentation):为图像中的每个像素分配一个类别,但是同一类别之间的对象不会区分。
    实例分割(Instance Segmetation):实例分割还会对同一类别的对象进行区分。
    下图中左边是语义分割,右边是实例分割:
    在这里插入图片描述
  3. 目标检测(Object Detection):目标定位并且能对目标物体进行分类。
    与目标定位的区别:目标定位通常是针对单个检测对象,而目标检测能检测多个对象。此外,图像分类也是针对单个对象的。
    与图像分割的区别:目标检测和目标定位都只是定位出目标的位置,通常是用一个方框表示,而图像分割则是每个像素属于那个对象,对象的轮廓会更加清楚。
    在这里插入图片描述
  4. 超分辨率(Super-Resolution):提高原有图像的分辨率。

自然语言处理

除了在图像处理领域,CNN 在自然语言处理(Natural Language Processing,NLP)也有应用。

输入:任何矩阵都可以作为CNN的输入,所以输入也可以是词向量组成的矩阵,即矩阵每一行代表一个词,也可以是一个字符。

卷积:过滤器“宽度”通常和输入矩阵的宽度相同,也就是输入的词向量大小;高度可能会有所不同,也每次卷积多少个词。

池化:进一步降低参数量,避免过拟合,例如最大池化、平均池化。

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

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

相关文章

UITableView自定义TableHeader和TableFooter

UITableView自定义TableHeader和TableFooter 我猜你希望的效果是这样的 我猜你希望的效果是这样的 自定义页眉视图 让我们创建一个文件名 UITableViewHeaderFooterView 的 CustomerHeaderView 子类。 现在让我们创建视图的 Xib 文件并将其命名为 CustomHeaderView。 更改高度标…

STM32CubeIDE(SPI读写Flash)

参考:①正点原子MINI教程②STM32F103配合STM32CubeMX实现SPI读写flash_stm32f103 cube spi_zerfew的博客-CSDN博客 目录 一、理论知识 1、SPI特征 2、SPI框图 3、SPI的工作模式 4、W25Q64 4.1 NOR FLASH 的特性 4.2 W25Q64芯片引脚图 4.3 NOR FLASH 工作时序…

jsp 图书销售系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 图书销售系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

安卓移动应用开发实训室建设方案

一 、系统概述 安卓移动应用开发作为新一代信息技术的重点和促进信息消费的核心产业,已成为我国转变信息服务业的发展新热点:成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网,以其巨大的信息交换能力和快速渗透能…

论文阅读:DIN-SQL: Decomposed In-Context Learning of Text-to-SQL withSelf-Correction

NL2SQL是将自然语言转化为SQL的任务,该任务隶属于NLP的子任务,NL2SQL在AIGC时代之前,以seq2seq、BERT等系列的模型在NL2SQL的主流数据集上取得了不错的效果,2022年底,ChatGPT爆火,凭借LLM强大的逻辑推理、上…

气传导耳机怎么样?四款值得入手的气传导耳机推荐

​随着科技的进步,蓝牙耳机越来越受欢迎。类型也越来越多,其中气传导耳机因其不入耳设计,佩戴更舒适,音质更自然,能够提供更为清晰、自然的音质。面对还不知如何挑选气传导耳机的用户,在这里,我…

Firefox(火狐),使用技巧汇总,问题处理

本文目的 说明火狐如何安装在C盘之外的盘,即定制安装路径。如何将同步功能切换到本地服务上。默认是国际服务器。安装在C盘之后如何解决,之前安装的扩展无法自动同步的问题。顺带讲解一下,火狐的一些比较好用的扩展。 安装路径定制 火狐目前…

sentinel的基本使用

在一些互联网项目中高并发的场景很多&#xff0c;瞬间流量很大&#xff0c;会导致我们服务不可用。 sentinel则可以保证我们服务的正常运行&#xff0c;提供限流、熔断、降级等方法来实现 一.限流&#xff1a; 1.导入坐标 <dependency><groupId>com.alibaba.c…

行为型(一) - 观察者模式

一、概念 观察者模式&#xff08;Observer Pattern&#xff09;&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候&#xff0c;所有依赖的对象都会自动收到通知。 二、实现 这里举个电视剧订阅的例子&#xff0c;比如琅琊榜&#xff0c;我们…

基于学习交流社区的自动化测试实现

一 项目介绍 项目名称 项目展示链接&#xff1a; 学习交流社区 项目介绍 项目介绍&#xff1a; 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息&#xff0c;项目完成后使用Xshell将其部署到云服务器上。 前端页面&#xff1a; 前端…

让 exoplayer2 支持播放 ftp ( 扩展 exoplayer 支持 ftp 协议 ) 的两种方式

exoplayer 是安卓开源播放器组件库&#xff0c;由谷歌开发维护。它提供了一个可高度扩展的音视频播放框架&#xff0c;支持许多媒体格式与高级媒体功能&#xff0c;比如 adaptive streaming&#xff0c;DRM&#xff0c;以及安卓 media session 集成。 但是不支持 ftp &#xf…

罗德与施瓦茨频谱分析仪RSFSUP50

FSUP50 R&S FSUP50 信号源分析仪&#xff0c;20Hz到50GHz 壹捌叁贰零玖壹捌陆伍叁 R&S FSUP 是一款测量功能丰富、高度灵活的相位噪声测试仪&#xff0c;它兼具***信号和频谱分析仪及单纯相位噪声测试仪两者的功能。 主要特点 频率范围高达 8 GHz、26.5 GHz 或 50…

网络原理详解(图文结合)

目录 ​编辑一、应用层 1、请求和响应 2、通用的协议格式 &#xff08;1&#xff09;xml &#xff08;2&#xff09;json &#xff08;3&#xff09;protobuffer 二、传输层 1、UDP 2、TCP &#xff08;1&#xff09;TCP 协议段格式&#xff1a; &#xff08;2&am…

js中 0==‘0‘、0==[] 为 true ,‘0‘==[] 为false

文章目录 问题分析 问题 js中 0‘0’、0[] 为 true &#xff0c;为什么 ‘0’[] 为false 分析 是弱类型比较 当两者类型不同时会发生类型转换0 “0”&#xff1a;先把“0”转为number类型再比较&#xff1b;0 []&#xff1a;有对象的话&#xff0c;先获取对象的原始值&#…

WPF中的效果Effect

WPF中的效果Effect 前言 WPF提供了可应用于任何元素的可视化效果。效果的目标是提供一种简便的声明式方法&#xff0c;从而改进文本、图像、按钮以及其他控件的外观。不是编写自己的绘图代码&#xff0c;而是使用某个继承自Effect的类&#xff0c;以立即获得诸如模糊、光辉以…

问道管理:数字经济概念走势强劲,竞业达、久其软件等涨停,观想科技等大涨

信创、智慧政务等数字经济概念22日盘中走势微弱&#xff0c;截至发稿&#xff0c;观想科技、慧博云通涨超15%&#xff0c;竞业达、中远海科、久其软件等涨停&#xff0c;云赛智联、延华智能、汇纳科技涨约9%&#xff0c;天玑科技、安硕信息、思特奇、零点稀有涨逾7%。 音讯面上…

虚幻官方项目《CropOut》技术解析 之 在实战中理解Enhanced Input系统

文章目录 概要Enhanced Input系统基础回顾旧版输入系统定义物理按键和Action/Axis的映射输入事件 Enhanced Input系统统一的ActionInput Mapping Context输入事件 《Crop Out》《Crop Out》中基于Enhanced Input的输入控制系统Input Mapping Context分层管理输入修改器(Input M…

Ubuntu系统全盘备份——TimeShift的安装与使用

Timeshift&#xff0c;它使用完全备份的方式&#xff0c;直接将整个操作系统包括个人配置全部备份打包。也就是全盘备份。 操作过程 依次执行命令&#xff1a; sudo apt-add-repository -y ppa:teejee2008/ppa sudo apt update sudo apt install timeshift打开软件后&#x…

【ES6】—【必备知识】—函数的参数

一、参数的默认值 1. ES5 设置默认值 function foo (x, y) {y y || worldconsole.log(x, y) } foo(hello, xiaoxiao) foo(hello, 0) // hello xiaoxiao // hello worldPS&#xff1a; 使用 || 的方式设置默认值不严谨&#xff0c; 0、undefined、‘’ 这些参数都会被判定为f…

安装VSCA 过程中的报错

安装VSCA 过程中的报错&#xff1a;无法获取目标服务器证书的SSL指纹&#xff1a; 解决方案三点&#xff1a; 防火墙 网络IP&#xff0c;网关 使用ping命令或者telnet检查网络是否可达 网络端口没有开启 有无启用 另外最新版本有漏洞 建议换一个常用版本