深度学习中的各种不变性

news2024/10/5 17:19:49

不变性

  • 平移不变性(Translation Invariance)
  • 旋转不变性(Ratation Invariance)
  • 尺度不变性(Size Invariance)
  • 光照不变性(Illumination Invariance)
  • 仿射不变性(Affine Invariance)
  • 投影不变性(Projected Invariance)

不变性:指的是即使目标外观发生了某种变化(平移、旋转、尺度缩放、光照变化等),依然可以将它识别出来。不变性对于图像分类来说是一种很好的特性,因为我们希望图像中的目标无论是发生平移、旋转、缩放,还是在不同的光照条件或视角下,都可以被成功地识别出来。

平移不变性(Translation Invariance)

卷积神经网络具有平移不变性。具体而言,图像发生平移,经过卷积网络后得到的相应特征图上的表达也是平移的。如果输入图像的左上角有一个人脸,经过卷积后,人脸的特征会位于特征图的左上角;此时将人脸位置平移到了图像的右上角,则经过卷积后,人脸的特征也会位于特征图的右上角。

在欧几里得几何中,平移是一种几何变换,表示把一幅图像或一个空间中的每一个点在相同方向移动相同距离。比如对图像分类任务来说,图像中的目标不管被移动到哪个位置,得到的结果(标签)应该是相同的,这就是卷积神经网络中的平移不变性。

平移不变性意味着系统产生完全相同的响应(输出),不管它的输入是如何平移的。平移等变性(translation equivariance)意味着系统在不同位置的工作原理相同,但它的响应随着目标位置的变化而变化 。比如,实例分割任务,就需要平移等变性,目标如果被平移了,那么输出的实例掩码也应该相应地变化。

有人认为CNN中的平移不变性是由卷积层和全连接层共同作用导致的。

在这里插入图片描述

旋转不变性(Ratation Invariance)

CNN不具有旋转不变性。

在这里插入图片描述

对于上面这幅图来说,小白和小黑看到的并不是一个东西。
小白:我的一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。
小黑:我的一个特征左边是正方形,右边是菱形,上面是三角形,下面是圆形。
于是小黑和小白就认为他们看到的并不是同一个图片,但事实上他们看的确实是同一幅图像。于是我们就说这种特征不具有旋转不变性。

在这里插入图片描述

对于上面这幅图来说,小白和小黑看到的就是一个东西。
小白:我的一个特征西边是三角形,东边是圆形,北边是菱形,南边是正方形。
小黑:我也有一个特征西边是三角形,东边是圆形,北边是菱形,南边是正方形。
这时候两个特征的描述就一致了,即拥有了旋转不变性。所以只要对特征定义方向,然后在同一个方向上进行特征描述就可以实现旋转不变性。

尺度不变性(Size Invariance)

CNN不具有尺度不变性。

在这里插入图片描述

对于上面这幅图来说,小白和小黑看到的并不是同一个东西。
小白:我的一个特征东边5个像素的地方有个圆形。
小黑:我的一个特征东边7个像素的地方有个圆形。
这就是尺度变化造成的特征不匹配,为了实现尺度不变性,就需要给特征加上尺度(缩放)因子,那么在进行特征描述的时候,将尺度统一就可以实现尺度不变性了。

所谓的旋转不变性和尺度不变性,就是我们在描述一个特征之前,将两张图像都变换到同一个方向和同一个尺度上,然后再在这个统一标准上来描述这个特征。同样的,如果在描述一个特征之前,将图像变换到同一个仿射尺度或者投影尺度上,那么就可以实现仿射不变性和投影不变性。

光照不变性(Illumination Invariance)

仿射不变性(Affine Invariance)

投影不变性(Projected Invariance)

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

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

相关文章

PS学习记录-图像【像素】与【分辨率】的说明

我们经常能在图片的属性中看到 1920像素x1080像素 (老司机在视频文件中也经常看到~) 这就是我们常说的图片分辨率,以下是我学习整理的关于像素、分辨率的资料。 注意: 图像分辨率是针对【位图】的,图片分辨率决定了…

记录-JS简单实现购物车图片局部放大预览效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 一、实现效果 二、代码实现 代码不多&#xff0c;先看一下 HTML 里面结构很简单&#xff0c;初始化 MagnifyingGlass 对象来关联一个 IMG 标签来实现放大。 <!DOCTYPE html> <html> <h…

做一个网站需要多少个技术人员?

作为互联网从业者&#xff0c;这么多年来经常会碰到一个灵魂拷问&#xff0c;那就是“为什么一个网站需要那么多技术人员&#xff1f;”&#xff0c;尤其是提问者如果再追问一下“听说几个相关专业的学生一个课程的作业就是开发一个网站或者app&#xff0c;那为什么现在主流的网…

C++ | 认识标准库string和vector

本文概要 本篇文章主要介绍C的标准库类型string和vector&#xff0c;文中描述和代码示例很详细&#xff0c;看完即可掌握&#xff0c;感兴趣的小伙伴快来一起学习吧。 &#x1f31f;&#x1f31f;&#x1f31f;个人简介 &#x1f31f;&#x1f31f;&#x1f31f; ☀️大家好&a…

stable diffusion安装从0到1总结:包括遇到的坑和步骤

注&#xff1a;最低电脑配置&#xff1a;8G Vram16G RAM30G磁盘空间以上&#xff0c;20系列显卡及以上&#xff0c;windows>linux>macos。 文件可以不放在系统盘。举个例子&#xff1a;安装在D盘&#xff0c;在D盘创建一个StableDiffusion文件夹。下载下面文件: 1.下载…

为什么实现 API 最佳实践需要重新考虑安全性

随着应用程序编程接口 (API) 的使用与日俱增&#xff0c;实现和维护有效安全性的挑战从未像现在这样大。 由于缺乏管理 API 的单一标准&#xff0c;这意味着团队不能仅依靠工具来解决安全问题&#xff0c;因此这一挑战变得更加严峻。没有任何一种产品可以解决 API 环境的每种…

pg编码相关问题梳理

Lightdb/PG 编码相关问题梳理 之前在通过SQL文件导入数据时&#xff0c;报&#xff1a;ERROR: invalid byte sequence for encoding "EUC_CN"错误。然后就梳理了一下编码相关问题&#xff0c;这边记录一下。涉及到如下两种类型的报错&#xff1a; ERROR: invalid b…

电脑如何还原系统?这样做可以快速解决!

案例&#xff1a;我的电脑系统出问题了&#xff0c;怎么还原&#xff1f; 【我的电脑用了好几年了&#xff0c;最近它的系统出现了一些问题&#xff0c;我想还原电脑系统。有没有知道电脑系统如何还原&#xff1f;蹲一个简单的解决方法&#xff01;】 随着电脑使用时间的增加…

面试华为,花了2个月才上岸,真的难呀····

花2个月时间面试一家公司&#xff0c;你们觉得值吗&#xff1f; 背景介绍 美本计算机专业&#xff0c;代码能力一般&#xff0c;之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发&#xff0c;第二份实习由于大三暑假回国的时间比…

Linux中的git命令行

Linux中的git命令行 目录 Linux中的git命令行引入1、Linux下的git工具起源2、gitee的使用.gitignore.git 3、git三板斧3.1 git add3.2 git commit3.3 git push 4、git操作4.1 查看提交日志4.2 查看状态4.3 远端同步4.4 删除文件4.5 修改文件名 引入 当多个开发者同时参与同一个…

(一)Jhipster的基本介绍及入门安装

目录 1、为什么要使用 Jhipster &#xff1f; 2、安装配置 3、安装Jhipster 4、基本使用 5、介绍一下JDL Studio 6、启动 Jhipster 搭建项目 1、为什么要使用 Jhipster &#xff1f; JHipster是一个开发平台&#xff0c;可以快速生成、开发和部署现代Web应用程序和微服务…

分享几个自动化测试的练手项目

学习自动化测试最难的是没有合适的项目练习。 测试本身既要讲究科学&#xff0c;又有艺术成分&#xff0c;单单学几个 api 的调用很难应付工作中具体的问题。 你得知道什么场景下需要添加显性等待&#xff0c;什么时候元素定位需要写得更加优雅&#xff0c;为什么需要断言这个…

CANoe使用记录(四):CANoe Graphics图形窗口

目录 1、概述 2、Graphics图形窗口 2.1、打开测量窗口&#xff08;回放Log&#xff09; 2.2、输出Log 2.3、添加解析DBC文件 2.4、窗口排列 2.5、添加Graphics窗口 2.6、 信号栏选择 2.7、添加信号 2.8、波形样式 2.9、单Y轴测量尺 2.10、多Y轴测量尺 2.11、数据隐…

10行Python代码,助你整理杂乱无章的文件

朋友们好&#xff0c;今天是周五&#xff0c;又到了快放假的时间&#xff0c;激不激动&#xff1f;高不高兴&#xff1f;但是我还是要继续分享 Python 小工具给大家&#xff0c;嘻嘻~~ 今天的小程序&#xff0c;可以一键完成文件整理&#xff0c;一起来看看吧&#xff01; 按…

API 接口主流协议有哪些? 如何创建不同协议?

API 接口协议繁多&#xff0c;不同的协议有着不同的使用场景。70% 互联网应用开发者日常仅会接触到最通用的 HTTP 协议&#xff0c;相信大家希望了解更多其他协议的信息。我们今天会给大家介绍各种 API 接口主流协议和他们之间的关系。 1、API 接口主流协议有哪些? 接口协议分…

java环境安装 以jdk1.8 tomcat8为例

1、选择相应版本下载 官网地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html 2、下载后一直点击下一步就好了ps&#xff1a;路径不喜欢安装在C盘的可以选择其他盘符&#xff0c;但是一定要自己找的到安装路径。 3、选择路径安装jdk1.8 4、…

Java基础(十六):String的常用API

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 Java基础(四)&#xff1a;逻辑运算符和位运算符 Java基础(五)&#xff1a;流程控制语句 Java基础(六)&#xff1…

Serilog介绍

SerilogSerilogSerilog是.net 下的新兴的日志框架&#xff0c;本文这里简单的介绍一下它的用法。 首先安装Nuget包&#xff1a; Install-Package SerilogInstall-Package Serilog.Sinks.Console 其中包Serilog是Log核心库&#xff0c;Serilog.Sinks.Console是Log的控制台输出…

云安全问题及其解决方案

随着云计算技术的快速发展&#xff0c;云计算已经成为了企业和个人的首选。云计算在提高了企业的效率和降低了成本的同时&#xff0c;也带来了一系列的安全问题。本篇博客将深入讨论云安全问题&#xff0c;并提出相应的解决方案&#xff0c;以帮助企业和个人更好地保护自己的云…

【C++学习笔记】对象的特性

深拷贝与浅拷贝 浅拷贝&#xff1a;简单的赋值拷贝操作 深拷贝&#xff1a;在堆区重新申请空间&#xff0c;进行拷贝 利用编译器提供的拷贝构造函数&#xff0c;会做浅拷贝操作&#xff1b;会导致堆区的内存重复释放 ![[Pasted image 20221216213144.png]] 解决方法&#xff…