卷积神经网络 CNN 基础概念

news2025/4/17 7:00:22

目录

一:卷积神经网络

二:局部感受野

三:卷积层

四:池化层

五:激活层

六:全连接层

七:卷积神经网络算法过程


一:卷积神经网络

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习(deep learning)的代表算法之一;卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类;卷积神经网络发展迅速,并被应用于计算机视觉、自然语言处理等邻域

二:局部感受野

人类对外界的认知一般是从局部到全局,先对局部有感知的认识,再逐步对全体有认知,这是人类的认识模式;

在图像中的空间联系也是类似,局部范围内的像素之间联系较为紧密,而距离远的像素则相关性较弱;

因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息 

卷积神经网络-权值共享:

每个神经元只与前一层的局部神经元相连;

层数越多需要计算的参数就越多

权值共享:每个神经元的w值都是一样的

CNN卷积神经,经过一系列操作识别

如下示例

特征比对:不同的位置角度,有不同的比对结果

三:卷积层

卷积层的作用:提取图片的每个小部分里具有的特征

假设有一个尺寸5*5的图像,每一个像素点都存储着图像的信息;

再定义一个卷积核(3*3)(相当于权重),,用来从图像中提取一定的特征;

卷积核与数字矩阵对应位相乘再相加,得到卷积层输出结果

卷积过程

把图片的每一个可能的位置都用卷积核进行尝试,相当于把这个特征 变成了一个过滤器;这个用来匹配的过程就称为卷积操作,如下实例

卷积输出

通过每一个卷积核的卷积操作,会得到一个新的二维数组(feature map),其中的值,

越接近1表示对应位置和feature的匹配越完整

越是接近-1,表示对应位置和feature的反面匹配越完整

值越接近于0的表示对应位置没有任何匹配或者说没有任何关联

四:池化层

池化:将输入图像进行缩小,减少像素信息,只保留重要信息,也就是提取重要的特征信息

通常情况下,池化区域是2*2大小,然后按照一定的规则转换为相应的值,

例如取这个池化区域内的最大值(max-pooling)、平均值(mean-pooling)等,以这个值作为结果的像素值,大致效果如下

五:激活层

激活层(ReLU),激活函数的作用是用来加入非线性因素把卷积层输出结果做非线性映射

常用的激活函数有sigmoid、tanh、relu等等,

前二者sigmoid/tanh比较常见于全连接层,后者ReLU常见于卷积层

激活层,特点是收敛快,求梯度简单;计算公式也很简单,max(0,T),

即对于输入的负值,输出全为0,对于正值,则原样输出

过程实例如下

单层卷积神经网络:卷积 + 激活 +池化 组合在一起,如下

六:全连接层

全连接层:在整个卷积神经网络中起到“分类器”的作用,则通过卷积、池化等深度网络后,再经过全连接层对结果进行识别分类 

卷积神经网络是属于监督学习,在模型训练的时候,根据训练样本对模型进行训练,从而得到全连接层的权重

七:卷积神经网络算法过程

主要4步,两阶段

1.向前传播过程

从样本集中提取(X,Y),将X输入网络

计算相应的实际输出OP

在此阶段,信息从输入层经过逐层变换,传送到输出层,输入层与每层的权值矩阵点乘,得输出

2.向后传播阶段

计算实际输出和理想输出的差值

按极小误差反向传播调整权值矩阵 

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

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

相关文章

nor flash调试与使用总结

最近项目中使用到norflash,总结一下学习与使用经验 文章目录一、Flash基本概念存储器介绍与Flash在其中定位---非易失存储器类别中嵌入式领域常见设备Flash的典型分类---NorFlash(贵/容量小/读快写慢)与NandFlash(便宜/容量大/读慢…

Zookeeper 4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案例

Zookeeper 【黑马程序员Zookeeper视频教程,快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.9 模拟12306 售票案例4.9.1 Curator 实现分布式锁 API4.9.2 分布式锁案例 - 模拟12306 售票4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案例 4.…

企业经常会问到的软件测试面试题及答案,一定要好好记住

相信对于很多软件测试新手来说,技术项目的面试是十分让人头疼的,生怕没回答得好,就会跟这个offer失之交臂,因此,今天,我以身边朋友面试遇到过的几个问题以及刷过的软件测试题库柠檬班中的压中的题目&#x…

Maven 项目模板

Maven 项目模板 Maven 使用 archetype(原型) 来创建自定义的项目结构,形成 Maven 项目模板。 在前面章节我们学到 Maven 使用下面的命令来快速创建 java 项目: mvn archetype:generate 什么是 archetype? archetype 也就是原型&#xff…

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南

Java给大部分人的感觉就是慢,有严重的性能问题。其实程序慢的问题,与语言无关,与Java无关。Java应用的性能优化也是一个老生常谈的话题,但是只要我们深入的了解性能调优方法,走遍天下都不怕! 大多数开发人…

mac系统M1pro芯片安装VMware Fusion虚拟机win11操作系统(原创详细版)

VMware22年11月份推出Fusion 13,这是Fusion虚拟软件的最新更新。它允许Mac用户操作虚拟机来运行非macOS操作系统,如Windows 11。 有了Fusion 13,英特尔和苹果芯片Mac用户可以访问Windows 11虚拟机。英特尔Mac提供对Windows 11的全面支持&…

webpack 构建脚手架

前言 1. 构建项目 2. 局部安装 3. webpack.config.js 4. 打包 css 文件 5. 打包 less 文件 6. 打包 vue 文件 7. loader 和 plugin 区别 8. 添加版权的插件 9. html-webpack-plugin 打包 html 的插件 10. 压缩文件 11. webpack-dev-server 搭建本地服务器 前言 本文记录 webpa…

基于鸽群算法改进的DELM预测 -附代码

鸽群算法改进的深度极限学习机DELM的回归预测 文章目录鸽群算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机(DELM)原理3.鸽群算法4.鸽群算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考:https:…

自学编程的人成千上万,为什么坚持下来的没几个?

在互联网职位薪资水涨船高的现下,越来越多的人都对此跃跃欲试,想要通过学习进入这个新兴的朝阳行业。但或因为现下工作,或因为各种压力,多数人并不能果断投入,自学成了常见的学习方式! 但是据数据显示&…

PDF翻译怎么操作?教你几个PDF翻译的技巧

当你在查阅国外资料的时候,有没有发现很多资料都是以PDF格式来呈现的?毕竟,PDF文件方便查阅也不易出现格式混乱的状态。但是,这对于英语基础不好的小伙伴就有一定的影响了,而且如果一字一字去翻译解释,那也…

linux安装php环境

linux安装php环境首先,打开终端并更新系统的软件包列表。运行以下命令然后安装 PHP。运行以下命令安装完成后,可以使用以下命令检查 PHP 的版本:如果您需要使用 PHP 的扩展,可以使用以下命令安装它们:例如,…

[2]MQTT基础知识

MQTT(消息队列遥测传输)是一个客户端服务端架构的发布/订阅模式的消息传输协议。 MQTT协议最初版本是在1999年建立的。该协议的发明人是的Andy Stanford-Clark和Arlen Nipper。 MQTT协议是当今世界上最受欢迎的物联网协议,广泛应用于车联网、智能家居、即时聊天应用…

自学Python学习经验分享

学编程语言有个小秘诀,直接上项目就是干,做完之后你就是Pythoner了。 不要怕没基础,边做边学边查,进步很快的。 因人而异,一周或一个月就能基本入门,当然也需要你百分百的投入。 以前我也觉得收集资料、钻…

一个新工具引发IT巨变:程序员在转行,不懂编程的人却成了程序员

编程一定需要代码吗?我看未必。 科技进步可谓日新月异,无代码开发在近几年,俨然被越来越多的人所熟知。这是一场解放码农的运动,让不懂编程的人也能进行软件开发。 我在发文前,看到了一则信息,更加坚定了…

【MySQL】MySQL初级笔记

MySQL1、初识MySQL(了解)1.1、为什么学习数据库1.2、什么是数据库1.3、什么是DBMS1.4、MySQL简介1.7 连接数据库1.8 基本操作2、操作数据库2.1、结构化查询语句分类2.2、数据库操作2.3、数据值和列类型数值类型字符串类型日期和时间型数值类型NULL值2.4、数据字段属性(重点)UnS…

SpringBoot配置文件的加载顺序

一、引言 如果我们了解SpringBoot配置文件的加载顺序,对项目的开发和部署会有很大的帮助。举个工作中的例子,我们的项目是微服务架构模式,用Nacos做注册中心(可以配置每个微服务),所有服务请求需要通过网关…

解决PageHelper版本不匹配,结果可能全部返回问题

1.问题: 使用 pagehelper ,如果和mybatis版本不匹配,就会出现返回结果错误问题,比如:本来想返回pageNum:1,pageSize:1的数据,但却是全部返回。自己的代码没问题的情况下&#xff0c…

无向图以及图的java代码实现

1. 图的定义 定义:图是由一组顶点和一组能够将两个顶点相连的边组成的 1.1特殊的图 自环:即一条连接一个顶点和其自身的边;平行边:连接同一对顶点的两条边; 1.2图的分类 按照连接两个顶点的边的不同,可…

含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 含文档PPT源码等]精品基于SSM的图书管理系统[包运行成功] 系统介绍 《基于SSM框架图书管理系统开发与设计》 该项目含有源码、配套开发软件、软件安…

Pytest用例运行及先后顺序

温馨提示 本篇约1600字,看完需3-5分钟,学习学半小时,加油! 先看普通函数运行顺序 import pytestdef test_one():print("我是清安")def test_02():print("--02--")def test_a():print("--a--")de…