数据分析-深度学习Pytorch Day6

news2024/11/26 12:17:41

卷积神经网络如何运用到图片分类问题

感受野 Receptive Field

步长Stride

填充Padding

参数共享share parameter

最大池化MaxPooling

CNN全过程

仅个人理解学习

引言

CNN卷积神经网络最初主要是用于计算机视觉和图像处理中,比如图像分类:

最终的分类数绝对维度:

在模型中交叉熵的使用:最终通过概率分布求得每个类的概率值,最大值所在类作为最终的输出

图片组成

图片一般是有RGB组成的,通常是3维:(height, width,channels)。

在喂入卷积神经网络之前需要将3维的向量拉直,变成一维向量(flatten操作):

拉直之后喂入全连接层:

问题1:如果隐藏层有1000个神经元,每个样本的输入是100*100*3,仅仅单层的总weights数是。参数增加的时候,模型表达能力更强,但是也增加了模型过拟合overfitting的风险。

在实际处理中,每个神经元(Neuron)不必和输入input的每个维度都有一个权重weight,也就是说部分维度可忽略。

图像识别:找准突出点Pattern

在一张图片中我们识别出几个特殊点(Pattern)就能够对这个进行判断,将它归属于某个类,而不需要扫描整张图片

案例中识别鸟嘴、鸟爪、鸟眼睛。一般人类也是抓住物件的重要来进行判断

CNN概念-感受野

什么是感受野

卷积神经网络CNN中存在一个概念:感受野Receptive Field

感受野:用来表示网络内部的不同位置的神经元对原始图像的感受范围的大小。

上图解释:上面右边的一个神经元关注自己的范围(左边红色框)

感受野作用

单个神经元将自己感受野内的内容拉直成3*3*3的27维向量

image-20221027224556772

然后将27维的向量作为输入和权重W做內积,并加上偏置bias;这个隐藏层的结果作为下个隐藏层的输入。

也就是说,每个神经元只考虑值的感受野

感受野如何确定?

不同的感受野允许有重叠部分;

多个神经元Neuron共用同一个感受野;

感受野设置

下面 是一种经典的设置方式:查看全部通道channels

高和宽合起来叫做kernel_size,常见的设置是3*3

通常一个感受野不是只有一个神经元关注,通常是多个。比如常见的64个或者128个:

CNN概念-步长stride

上面介绍的单个感受野,不同的感受野之间具有什么关系?将上面的红色部分向右移动stride个单位。

下面的图形中步长是2,移动2个单位。常见值是1或者2。

在移动的过程中发现不同的感受野之间有重叠部分(交集)。

CNN概念-填充padding

在感受野不断移动的过程中,可能出现超出边界的现象,如何处理?

使用Padding填充方法。常见的填充方法:

填充现有数据的均值

全部填充0

填充边界的相同值

除了水平移动,还可以垂直移动:

这样感受野能够扫描一张图片的全部区域。

CNN概念-参数共享

在不同的图片中,鸟嘴(某个特征)可能出现在不同的位置:

即便不同位置,但肯定是有某个神经元的感受野能够扫描到。

问题来了:相同的特征在不同的位置,需要在不同的位置使用不同的神经元吗?

李宏毅老师举例子:台湾大学教务处为什么会推大型的课程?假设每个院系都需要编程(机器学习)相关的课程,那么需要在每个院系都开设这门课吗?
回答:不需要。只需要开一门大课,让不同院系的学生都可以修课。避免重复

类比图像处理,在不同感受野的神经元上可以实现共享参数

什么是共享参数?就是两个神经元(感受野区域不同)的参数是完全相同的:

注意右侧两个神经元不同输入下的颜色

虽然两个Neuron的weight相同,但是输入不同,也就是说最终输出是不同的:

CNN特点

Fully Connected Layer:全连接层;决定看整张图片还是部分

Receptive Field:感受野,不需要全部图片,通过部分区域能够识别分类

Parameter Sharing:参数共享;不同的Neuron之间共享相同的参数

感受野 + 参数共享 之后就构成了卷积层Convolutional Layer

CNN概念-Filter过滤器

在卷积中存在不同的Filters,大小通常是3*3*chanels的

黑白:channels=1

彩色:channels=3

问题:每个Filter如何去图像中抓取某个特征pattern?

以Filter1为例:

依次向右和向下移动,得到不同的值:

在图片的不同位置上什么值最大?可以通过过滤器来判断:

CNN概念-特征图Feature Map

使用Filter2的结果:

通过Filter和原图的內积得到的结果组成了特征图 Feature Map

这个Feature Map就可以看成是一张新的图片,具有64个channels(假设有64个Filters)

Convolution由来

对比两种不同方式下的颜色:在单个感受野生成的列向量对应的权重和Fliters中的数值是一一对应。

不同的神经元能够实现参数共享share parameters,从而作用域不同的感受野区域。

参数共享的过程其实就是一个Filter不断地扫过整张图片,这个过程也就是Convolution。

笔记:

不同的神经元Neuron能共享参数

共享的参数其实就是Filter

Filter不断扫描图片的过程就是卷积

CNN概念-池化Pooling

在图片的处理,对图片的欠采样(缩放)不改变图片的本质:

池化有多种方式,最常用的Max Pooling:

1、 假设我们通过Filter先生成了一个Feature Map特征图(可以看做一个新图片)

2、将特征图进行分组

下面是以2*2为例:

3、MaxPooling选择最大的值

所以一般在做完卷积之后会再做pooling的过程,将图片变小;二者一般是交替repeat使用:

池化的缺陷:池化的作用是将图片变小,做了subsampling之后减小运算量。当图片本身就细微的时候,池化削弱了原信息,导致网络可能表现的更差。

目前有些网路架构设计是纯Convolution,舍弃了Pooling。

CNN全过程

对图片不断地进行卷积和池化

再经过Flatten:将矩阵拉直成一维向量

再将向量喂入全连接层FCL

最后加入一个softmax层,得到概率分布的结果,最后确定类别。

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

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

相关文章

【代码随想录】哈希表-golang

哈希表 from 代码随想录 hash表解法可以是slice,map…,目的是将时间复杂度降为O(1) 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 排序 思路:直接重新声明字符的字节形式,然后对其进行…

Vue的依赖收集和性能问题

什么是依赖收集Vue能够实现当一个数据变更时,视图就进行刷新,而且用到这个数据的其他地方也会同步变更;而且,这个数据必须是在有被依赖的情况下,视图和其他用到数据的地方才会变更。 所以,Vue要能够知道一个…

逻辑思维训练1200题-蓝桥杯计算思维参考

黑格尔曾说过,逻辑是一切思考的基础。逻辑思维能力强的人能迅速、准确地把握住问题的实质,面对纷繁复杂的事情能更容易找到解决的办法。《逻辑思维训练1200 题》介绍了排除法、递推法、倒推法、作图法、假设法、计算法、分析法、类比法、推理法、判断法、…

自动化 | 这些常用测试平台,你们公司在用的是哪些呢?

本文节选自霍格沃兹测试学院内部教材测试管理平台是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题。在整个测试过程中,需要对测试用例、Bug、代码、持续集成等等进行管理。下面分别从这四个方面介绍现在比较流行的管理平台。6…

四、template模板

模板 之前的案例中&#xff0c;能够返回简单的字符串信息给浏览器。那如果想要返回html页面给浏览器该怎么做呢&#xff1f; 当然&#xff0c;我们可以这么写&#xff1a; def index(request):return HttpResponse(<h1 style"color:red">我是硬编码的</h…

23年3月如何准备pmp考试?

首先要把PMP考试如何报名、考试内容等都要了解清楚&#xff0c;再去备考。<<PMP入门知识>>PMP考试时长&#xff1a;230分钟。PMP考试形式&#xff1a;笔试。PMP考试题型&#xff1a;题型包括单选题和多选题&#xff0c;多选题将说明需选择几个正确选项。PMP考试题量…

NEUQ week11题解

P1796 汤姆斯的天堂梦 汤姆斯的天堂梦 题目描述 汤姆斯生活在一个等级为 000 的星球上。那里的环境极其恶劣&#xff0c;每天 121212 小时的工作和成堆的垃圾让人忍无可忍。他向往着等级为 NNN 的星球上天堂般的生活。 有一些航班将人从低等级的星球送上高一级的星球&#…

【Java寒假打卡】Java基础-网络编程UDP和TCP

【Java寒假打卡】Java基础-网络编程UDP和TCP网络编程的三要素网络编程的常见命令InetAddress类端口协议UDP发送数据UDP接受数据UDP通信程序的练习TCP通信程序-发送数据TCP通信程序-接受数据网络编程的三要素 网络编程的常见命令 ipconfig 查看本机IP地址ping IP地址&#xff1…

【系列03】方法的学习 方法重载 命令行传参 递归 简单计算机 [有目录]

方法的学习 什么是方法 方法是解决一类问题的步骤的有序组合包含于类或者对象之中方法在程序中被创建,在其他地方被引用 就比如输出方法如:System.out.println(); 就是被封装好的方法 方法设计原则:一个方法完成一个功能,利于后期扩展 [原子性] 使用方法: public class D…

vue中使用echarts 动态渲染数据

一、业务场景&#xff1a; 最近在vue中使用echarts时 引入的时候怎么也引不上&#xff0c;后面发现需要绑定在原型上就可以完美解决(也可以直接在需要引入的页面用ES5中的require引入require&#xff08;‘echarts’&#xff09;) 为了避免大家走弯路&#xff0c;下面整合了一下…

FLStudio水果21最新Daw (宿主软件)电音混音编曲制作工具

对许多音乐爱好者来说&#xff0c;从单独欣赏作品过渡到按自己的心情创作作品&#xff0c;是一种奇妙而令人高兴的体验。 音乐的编曲&#xff0c;特别是电子的编曲&#xff0c;Daw (宿主软件)是重要的要素。 编曲软件有很多。 “专业”这个词取决于你是否在行业的某个部分。 就…

MyBatis 详解 (1) -- 环境搭建、查询操作

MyBatis 详解 1 -- 环境搭建、查询操作一、MyBatis 是什么二、为什么学习 MyBatis三、MyBatis 查询3.1 前言3.2 创建数据库和表3.3 添加 MyBatis 框架支持添加 MyBatis 和 MySQL 驱动3.4 配置连接字符串 和 MyBatis3.4.1 配置连接字符串3.4.2 配置 MyBatis 中的 XML 路径3.5 添…

CSS造成阻塞的原理

目录 1.原理解析 A.webkit渲染过程 B.Gecko渲染过程 C.解析原理 接上篇文章CSS会造成阻塞吗&#xff1f; 我们来说一下CSS造成阻塞的原理 1.原理解析 那么为什么会出现上面的现象呢&#xff1f;我们从浏览器的渲染过程来解析下。 不用浏览器使用的内核不同&#xff0c…

leetcode 648. 单词替换【python3哈希集与两种字典树的方法的思考过程整理】

题目 在英语中&#xff0c;我们有一个叫做 词根(root) 的概念&#xff0c;可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如&#xff0c;词根an&#xff0c;跟随着单词 other(其他)&#xff0c;可以形成新的单词 another(另一个)。…

UI自动化测试模块与环境管理全面打通,MeterSphere开源持续测试平台v2.6.0发布

2023年1月16日&#xff0c;MeterSphere一站式开源持续测试平台正式发布v2.6.0版本。 在这一版本中&#xff0c;MeterSphere的UI自动化测试模块与环境管理全面打通&#xff0c;更好地满足了用户一个脚本同时跑多个环境的测试需求。在测试跟踪模块中&#xff0c;测试计划关联测试…

怎么系统的阅读文献

文章目录一、文献阅读1、综述类文献 review article2、研究类文章 research article3、方法学的文章第一部分 综述类文章的阅读第二部分 研究型文章的阅读a. 研究型论文结构b. 如何有选择阅读文献c. 如果整理笔记Citation和Reference的区别二、文献阅读工具1、Connected Papers…

python-while循环

文章目录一、程序的三种结构二、while循环1.1&#xff1a;死循环1.2&#xff1a;循环计数习惯案例1.3&#xff1a;循环计数2.0&#xff1a;break终止循环3.0&#xff1a;人造死循环4.0&#xff1a;continue5.0循环嵌套一、程序的三种结构 1&#xff1a;顺序 代码自上而下执行 …

四旋翼无人机学习第20节--PCB自动保存文件labview设计

0 前言 在设计PCB的过程中&#xff0c;通常一个项目的的PCB文件只有一个&#xff0c;如果保存完文件后想要回滚到自己的版本是比较难的&#xff0c;虽然allergo软件可以设置autosave功能来自动对PCB文件进行备份&#xff0c;但是备份文件只会保存最后一次的版本。 1 labview编…

JavaWeb基础(二) HTTP、Tomcat、Servlet介绍

JavaWeb基础(二) HTTP、Tomcat、Servlet介绍 1&#xff0c;Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&a…

Dubbo调用

Dubbo调用 0. 概述 Dubbo 服务调用过程比较复杂&#xff0c;包含众多步骤&#xff0c;比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。 1. 客户端发送请求时序图 InvokerInvocationHandler.invoke 1. 对于Object中的方法toString, has…