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

Convolutional Neural Network(CNN)——卷积神经网络

1.NN的局限性

  • 拓展性差
    • NN的计算量大性能差,不利于在不同规模的数据集上有效运行
    • 若输入维度发生变化,需要修改并重新训练网络
  • 容易过拟合
    • 全连接导致参数量特别多,容易过拟合
    • 如果增加更多层,参数量会翻倍
  • 无法有效利用局部特征
    • 输入数据需要展平成一维,丢弃了图像等数据中的二维结构信息
    • 相邻层完全连接,关注的是全局,没有关注局部区域
  • 不具有平移不变性
    • 信息位置变换时,识别率就大幅降低

2.CNN的优势

• 大大降低过拟合的风险

• 利用数据中的局部结构

        • 局部结构比全局特征具有更好的泛化能力

        • 许多有用信息局限于局部区域

• 提高神经网络的鲁棒性

        • 平移不变性:位置的改变不会改变输出

        CNN常用于图像任务中

3.卷积

3.1 卷积操作

        CNN的核心部分在于卷积操作,其使用卷积过滤器/卷积核(convolution filters/kernels)。通过卷积操作可以实现特征提取。

        卷积操作如何实现?假设有一个5×5输入图像,使用一个3×3的卷积核,卷积核上的参数如图。

        然后卷积核在输入图像上从左上角开始,从左到右,从上到下移动,每次移动一格,如果移动到右边位置不够一个卷积核大小则换行,如果移动到下面位置不够则直接结束,对应位置相乘(再加上偏置项(可选))后再总相加便是卷积后的输出

                                                                   

滑动9次后,已经不够位置了,卷积结束

这里给出示例第一行怎么算出来的

       第一个10如何算

        

        使用不同参数的卷积核可以达到不一样的效果

        同样的在卷积操作后会使用激活函数

        每一个数据点均经过激活函数进行非线性变换

3.2 卷积核

        卷积核包括如下几个参数

  • 卷积核大小:w×h,更大的卷积核会使输出尺寸更加小。常使用的有1×1,3×3,5×5,7×7。
  • 步长stride:卷积核每次滑动多少格。步长可以成倍的减少输出尺寸。
  • 输入通道数in_channels:就是输入数据是多少张图叠加的,例如RGB图片就由R,G,B三通道合成的。输入通道为多少,就会使用多少个相同卷积核,分别对各个通道进行卷积,然后对应位置相加合成一个通道输出
  • 输出通道数out_channels:通过卷积可以生成多少个通道特征图,使用多少组卷积核就可以生成多少个输出通道。
  • 填充padding:在四周填充0像素的宽度,可以增大输出的尺寸。同时也可以解决常常丢失边缘像素的问题
    • padding=1,如下图
      •         

        所以在1.的例子中,完整的描述应该是输入图像大小为5×5,通道数为1,设定卷积核大小为3×3,步长为1,输入通道数和输出通道数都为1,填充为0。

——卷积核上的权重参数同样通过训练学习而得,卷积层就是CNN的神经元。

——输入的位置信息嵌入到特征通道中
——在一次卷积中不同位置用的都是同一个卷积核,只是它在移动的,因此输出共享权重,因此
显著减少参数数量
——卷积核每次都会卷积一个局部区域,因此它可以在数据中查找局部结构

——使用多个卷积核,每个卷积核都会专注于输入数据的不同属性,从而生成不同的特征

…………………………………………………………………………………………………………………

几个关于通道数的例子

1.输入通道数为3。设置卷积核大小为3×3,输入通道数为3,输出通道数为1,使用三个卷积核

2.输入通道数为3。设置卷积核大小为3×3,输入通道数为3,输出通道数为4。会使用4组每组3个卷积核。

3.输入通道数为1。设置卷积核大小为3×3,输入通道数为1,输出通道数为3。会使用3组每组1个卷积核。

        将所有这些通道堆叠在一起,我们可以得到一个特征图。

…………………………………………………………………………………………………………………

如何计算输出尺寸

卷积层输出大小 = (输入图像大小 - 卷积核大小 + 2 × 填充数) ÷ 步幅大小 + 1

output = (input - kernel_size + 2padding) / stride + 1

如果输入宽高可以被步幅整除,那么

output = input / stride

4.池化

        池化同样会使用一个核,然后滑动,但这个核不带权重参数。池化层不会改变通道数,常用于减小特征图的尺寸。

其参数如下:

1.卷积核大小

2.步长

3.填充

        输出尺寸计算同卷积操作。池化只会改变特征图尺寸并不会改变通道数

池化层的作用:

  • 下采样(减少尺寸)减少过多的信息。这也会导致信息丢失
  • 增加额外的非线性变换,减少过拟合
  • 引入平移不变性
  • 关注特征而不是它们的位置,降低对位置的敏感性(通过下面两个操作就知道为什么)。卷积操作对位置很敏感。

1.最大池化(Max pooling)

        取核对应部分的最大值

• 达到特征选择的效果
• 引入额外的非线性映射

2.平均池化(Average pooling)

        取核对应部分的平均值

• 比起最大池化层更好地保留信息

• 减少神经元数量

• 线性操作

• 全局平均池化可以有效抵抗深度CNN中的过拟合。

全局平均池化(GAP)是一种对整个特征图进行操作的池化方法。它的操作步骤如下:

  1. 对于给定的特征图,针对每个通道,计算该通道内所有元素的平均值。
  2. 将每个通道内的平均值作为该通道的汇总特征。
  3. 最终得到一个包含所有通道汇总特征的向量
  4. 全局平均池化通常用作最后一层卷积层之后,用来减少特征图的维度,并生成一个包含每个通道重要特征的向量。这个向量可以输入到全连接层或分类器中,以进行最终的分类或预测任务。

最终得到的汇聚特征向量可以看作是整个特征图的全局信息表示

        可以发现无论是最大池化层还是平均池化层和位置都没关系,只和数值有关系

5.卷积块

        一个基本的卷积块通常由卷积+激活+池化构成

6.卷积神经网络

卷积神经网络通常包含如下结构:
  • 若干个卷积块用于特征提取,
  • 接着使用全局平均池化层生成一个包含每个通道重要特征的向量并通过flatten拉成一维列向量
  • 接着使用一个全连接层,全连接层输出大小一般是分类数目
  • 最后连接一个softmax完成分类任务

相关文章:

Convolutional Neural Network(CNN)——卷积神经网络

1.NN的局限性 拓展性差 NN的计算量大性能差,不利于在不同规模的数据集上有效运行若输入维度发生变化,需要修改并重新训练网络容易过拟合 全连接导致参数量特别多,容易过拟合如果增加更多层,参数量会翻倍无法有效利用局部特征 输入…...

鸿蒙开发基本概念

1、开发准备 1.1、UI框架 HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必需的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等。 方舟开发框架针对不同目的和技术…...

Open CV 图像处理基础:(二)从基本概念到实践操作

Open CV 图像处理基础:从基本概念到实践操作 一、引言 图像处理是计算机视觉领域的一个重要分支,它涉及对图像的各种操作和处理。了解图像的基本概念、读取和显示方法以及基本操作是图像处理的基础。本文将通过示例文章的形式,帮助初学者逐…...

【MAC】M2 安装docker 与 mysql

一、docker下载地址 下载地址 二、安装docker完成 罗列一下docker常用命令 # 查看docker版本 docker --version# 拉取镜像 docker pull 镜像名# 查看当前所有镜像 docker images# 查看运行中的容器 docker ps -a docker ps grep| 镜像名#镜像启动操作: sudo dock…...

轻量级web开发框架Flask本地部署及无公网ip远程访问界面

文章目录 前言1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 前言 本篇文章讲解如何在本地安装Flask,以及如何将其web界面发布到公网上并进行远程访问。 Flask是目前十分流行的web框架,采用P…...

用最通俗的语言讲解 TCP “三次握手,四次挥手”

目录 一. 前言 二. TCP 报文的头部结构 三. 三次握手 3.1. 三次握手过程 3.2. 为什么要三次握手 四. 四次挥手 4.1. 四次挥手过程 4.2. 为什么要四次挥手 五. 大白话说 5.1. 大白话说三次握手 5.2. 大白话说四次挥手 六. 总结 一. 前言 TCP 是一种面向连接的、可靠…...

使用RedisCacheWriter#clean在线异步地批量扫描匹配删除缓存数据-spring-data-redis

1.背景 生产环境,某云的某个业务Redis实例,触发内存使用率,连续 3 次 平均值 > 85 %告警。 运维同学告知,看看需要怎么优化或者升级配置?分享了其实例RDB的内存剖析链接。 通过内存剖析详情发现,存在某…...

机器视觉:AI赋能缺陷检测,铸就芯片产品的大算力与高能效

导言:近年来,国内芯片行业快速发展,市场对芯片需求的不断增大,芯片的缺陷检测压力也越来越大。芯片产品在生产制造过程中,需要经历数道工序,每个生产环节的材料、环境、工艺参数等都有可能造成产品缺陷。不…...

(9)Linux Git的介绍以及缓冲区

💭 前言 本章我们先对缓冲区的概念进行一个详细的探究,之后会带着大家一步步去编写一个简陋的 "进度条" 小程序。最后我们来介绍一下 Git,着重讲解一下 Git 三板斧,一般只要掌握三板斧就基本够用了。 缓冲区&#xff…...

华为云之ECS云产品快速入门

华为云之ECS云产品快速入门 一、ECS云服务器介绍二、本次实践目标三、创建虚拟私有云VPC1.虚拟私有云VPC介绍2.进入虚拟私有云VPC管理页面3.创建虚拟私有云4.查看创建的VPC 四、创建弹性云服务器ECS——Linux1.进入ECS购买界面2.创建弹性云服务器(Linux)——基础配置步骤3.创建…...

tcp 的限制 (TCP_WRAPPERS)

#江南的江 #每日鸡汤:青春是打开了就合不上的书,人生是踏上了就回不了头的路,爱情是扔出了就收不回的赌注。 #初心和目标:拿到高级网络工程师 TCP_WRAPPERs Tcp_wrappers 对于七层模型中是位于第四层的安全工具,他…...

如何保证架构的质量

1. 如何保证架构的质量: ①. 稳定性、健壮性(1). 系统稳定性: ①. 定义:a. 当一个实际的系统处于一个平衡的状态时,如果受到外来作用的影响时,系统经过一个过渡过程仍然能够回到原来的平衡状态.b. 可以说这个系统是稳定的,否则系统不稳定c. 如一根绳子绑着小球,处于垂直状态,…...

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。 它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网页增加…...

SCAU:18063 圈中的游戏

18063 圈中的游戏 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC;VC Description 有n个人围成一圈,从第1个人开始报数1、2、3,每报到3的人退出圈子。编程使用链表找出最后留下的人。输入格式 输入一个数n&a…...

.NET Core中鉴权 Authentication Authorization

Authentication: 鉴定身份信息,例如用户有没有登录,用户基本信息 Authorization: 判定用户有没有权限 使用框架提供的Cookie鉴权方式 1.首先在服务容器注入鉴权服务和Cookie服务支持 services.AddAuthentication(options > {options.DefaultAuthe…...

PyTorch深度学习实战(26)——卷积自编码器(Convolutional Autoencoder)

PyTorch深度学习实战(26)——卷积自编码器 0. 前言1. 卷积自编码器2. 使用 t-SNE 对相似图像进行分组小结系列链接 0. 前言 我们已经学习了自编码器 (AutoEncoder) 的原理,并使用 PyTorch 搭建了全连接自编码器,但我们使用的数据…...

Milvus实战:构建QA系统及推荐系统

Milvus简介 全民AI的时代已经在趋势之中,各类应用层出不穷,而想要构建一个完善的AI应用/系统,底层存储是不可缺少的一个组件。 与传统数据库或大数据存储不同的是,这种场景下则需要选择向量数据库,是专门用来存储和查…...

使用Docker部署Nexus Maven私有仓库并结合Cpolar实现远程访问

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具,用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关,可…...

GEE-Sentinel-2月度时间序列数据合成并导出

系列文章目录 第一章:时间序列数据合成 文章目录 系列文章目录前言时间序列数据合成总结 前言 利用每个月可获取植被指数数据取均值,合成月度平均植被指数,然后将12个月中的数据合成一个12波段的时间数据合成数据。 时间序列数据合成 代码…...

【深度学习】语言模型与注意力机制以及Bert实战指引之二

文章目录 前言 前言 这一篇是bert实战的完结篇,准备中。...

计算机网络 网络层下 | IPv6 路由选择协议,P多播,虚拟专用网络VPN,MPLS多协议标签

文章目录 5 IPv65.1 组成5.2 IPv6地址5.3 从IPv4向IPv6过渡5.3.1 双协议栈5.3.2 隧道技术 6 因特网的路由选择协议6.1 内部网关协议RIP6.2 内部网关协议 OSPF基本特点 6.3 外部网关协议 BGP6.3.1 路由选择 6.4 路由器组成6.4.1 基本了解6.4.2 结构 7 IP多播7.1 硬件多播7.2 IP多…...

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用 引言 在前面几期,介绍了敏感性分析法,本期来介绍lstm作为代理模型的sobol全局敏感性分析模型。 【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代…...

求奇数的和 C语言xdoj147

题目描述:计算给定一组整数中奇数的和,直到遇到0时结束。 输入格式:共一行,输入一组整数,以空格分隔 输出格式:输出一个整数 示例: 输入:1 2 3 4 5 0 6 7 输出:9 #inclu…...

全链路压力测试:解析其主要特点

随着信息技术的飞速发展和云计算的普及,全链路压力测试作为一种关键的质量保障手段,在软件开发和系统部署中扮演着至关重要的角色。全链路压力测试以模拟真实生产环境的压力和负载,对整个业务流程进行全面测试,具有以下主要特点&a…...

算法基础之约数个数

约数个数 核心思想&#xff1a; 用哈希表存每个质因数的指数 然后套公式 #include <iostream>#include <algorithm>#include <unordered_map>#include <vector>using namespace std;const int N 110 , mod 1e9 7;typedef long long LL; //long l…...

【ECharts】折线图

文章目录 折线图1折线图2折线图3示例 参考&#xff1a; Echarts官网 Echarts 配置项 折线图1 带X轴、Y轴标记线&#xff0c;其中X轴是’category’ 类目轴&#xff0c;适用于离散的类目数据。 let myChart echarts.init(this.$refs.line_chart2); let yList [400, 500, 6…...

java jdbc连接池

什么是连接池&#xff1a; Java JDBC连接池是一个管理和分配数据库连接的工具。在Java应用程序中&#xff0c;连接到数据库是一个耗时且资源密集的操作&#xff0c;而连接池可以通过创建一组预先初始化的数据库连接&#xff0c;然后将其保持在连接池中&#xff0c;并按需分配给…...

unity2d 关闭全局重力

UNITY2D项目默认存在Y轴方向重力&#xff0c;创建俯视角2D场景时可通过以下配置关闭 Edit > Project Settings > Physics 2D > General Settings > Gravity 设置Y0...

大数据时代,如何基于机密虚拟化技术构建数据安全的“基石”

云布道师 2023 年 10 月 31 日-11 月 2 日&#xff0c;2023 云栖大会在中国杭州云栖小镇举行&#xff0c;阿里云弹性计算产品专家唐湘华、阿里云高级安全专家刘煜堃、蚂蚁集团高级技术专家肖俊贤三位嘉宾在【云服务器 & 计算服务】专场中共同带来题为《大数据时代&#xf…...

为你自己学laravel - 15 - model的更新和删除

为你自己学laravel。 model的部分。 这一次讲解的是model当中怎么从数据库当中更新数据和删除数据。 先从数据库当中抓出来资料。 当然我们是使用php artisan tinker进入到终端机。 我们的做法是想要将available这个栏位修改成为true。 第一种更新方法 上面我们就是修改了对…...

常见网站结构/百度百科入口

应该是可以这样说吧&#xff01;接触电脑长时间了&#xff0c;但是还有人会不知道键盘上F1到F12都有什么作用。不过不知道的都没有关系&#xff0c;我想应该没有几个人能全部说出来&#xff0c;那么下面大家一起给大家带来电脑基础也就是电脑键盘上F1到F12都有什么作用我做了一…...

php网站建设文献综述/天津seo网站推广

转载自&#xff1a;点击打开链接 这是敏捷开发松结对编程系列的第十篇&#xff08;栏目总目录&#xff09;。 以下是本人自己及各企业所采用的代码审查的最佳实践&#xff0c;有些数据做了归纳&#xff0c;以使其“更佳”。 请特别注意每个实践最后简单总结的价值观。如果想采用…...

做推文的网站/企业官网搭建

oracle 12C 自动化静默安装脚本 项目地址&#xff1a; github: https://github.com/spdir/oracle-single-install 下载安装脚本 wget https://raw.githubusercontent.com/spdir/oracle-single-install/master/oracle_install.sh && \ chmod x oracle_install.sh 脚本使…...

公司建设网站的申请报告/厨师培训

Boss的需要时这样的&#xff0c;Item是可变大小的&#xff0c;同时根据不同的Window size&#xff0c;来确定Item的结构和大小Window 小的时候是 大的时候是这样的&#xff1a; 当然这size变化的过程中也允许其他结构&#xff0c;我这里只是举了最大和最小时候的样子。 当拿到需…...

html5网站后台页面设计/网站的开发流程

↑↑↑点击上方蓝字&#xff0c;回复资料&#xff0c;10个G的惊喜不怕前路坎坷&#xff0c;只怕从一开始就走错了方向Pandas 是python的一个数据分析包&#xff0c;纳入了大量库和一些标准的数据模型&#xff0c;提供了高效地操作大型数据集所需的工具。Pandas 就是为解决数据分…...

如何进行账号推广/网站优化公司怎么选

Axure RP 8.0 函数对照表axureRP8.0中有很多丰富的函数&#xff0c;这些函数在制作高保真原型时会经常用到&#xff0c;这些函数能够提高我们的工作效率&#xff0c;但一定要注意不要一味地“沉迷”于函数的研究&#xff0c;不要过于纠结某些函数的使用&#xff0c;否则有可能会…...