Decoupled network

article/2025/8/6 10:54:30

Decoupled network

https://zhuanlan.zhihu.com/p/37598903

神经网络机制存在的缺陷?

过拟合,梯度消失或者是膨胀,训练依靠大量样本,对网络初始化及其敏感记忆协迁移等等。

 

Decupled network是对operator的改进

现在的卷积操作就是一个內积操作

矩阵相乘计算,两个矩阵相似度的操作(类似卷积滤波)。

解耦操作,是什么内容的耦合?简单来讲是类内差异和类间差异的耦合。也就是说卷积操作得到的结果很相似的时候,并不能得到一个结论说这两个很相似,反之亦不能。因为你不能够区别这种差异或者相似度是类内差异造成的还是类间的差异造成的(而对于分类的问题来讲,我们其实关心的就是类间差异而已)。

 

这张图是 CNN在手写体识别任务上学到的特征的2D可视化示意图。 0~9每一个手写体数字对应的特征是图中的一束;任意一束当中的不同位置表示的是同一类别的不同表征,也就是类间差距(intra-class Variations);束与束之间形成的夹角表达的是两个类别之间的差距(inter-class difference),也就是这里所谓的语义差异。

 

不解耦会存在什么问题呢?

就是说你只能得到一个最终的结果,但是对于两个同样的输出,你不能分辨造成这个结果的原因是因为他们实际就是同一种类别,还是刚好ab=cd

直接将卷积操作解耦为幅值和角度两个部分,并且将这两个部分分别用两个函数表示h()和g().

角度函数g()则度量着不同的类别之间的差异,关于幅值的函数h()则度量同一类别中的差异,同时其值的大小也就表示这个类别的可信度。

传统的卷积操作就变成了解耦网络的一个特例:

为什么角度可以来衡量类别之间的差异呢?

作者是从傅里叶变换当中的得到的motivation: 对于傅里叶变换来说,两个概念非常的重要,一个就是幅值,另一个就是相位。对于一张图像的傅里叶变换,如果你使用幅值和随机的相位重建这张图像,得到的结果往往不能辨认;但是如果你使用相位和随机的幅值却能够重建出能够辨认的图像。

 

讨论两个函数的设计:包括有界的,无界的;加权的不加权的以及解耦网络的集合解释等等。

h(||w||,||x||)

  1. ShereCov
  2. BallCov
  3. TanhConv

 

g()是一个关于ϴ的函数,大多实际上是一个非线性的函数,也就是其实就是一个激活函数,这里作者称之为角度激活函数(Angular activation)

Linear:

Cosine:

实验部分,比较了设计DN网络的收敛性,非线性,BN功能,而且和ResNet进行了对比。

这个表格中,每一行都是一个卷积操作子也就是h()Norm函数,每一列都是一个角度激活函数g(),如之前所说,对于一个一般CNN就是g()=Cosine

操作子的非线性的比较

加relu

目标识别性能比较

 

损失函数设计上见到使用模长和夹角来分离变量扩大类间差别

 

学习目标loss和神经网络结构function class很有可能是耦合的,对于不同的loss,最优的网络结构很可能是不同的,在dcnet里面,很可能对于不同的loss,最优的g和h也是不同的,这么说来,dcnet里面的learnable g和learnable h就可能更加有用了。

 

解耦网络

基于內积的卷积一直是卷积神经网络的核心组成部分,也是学习视觉特征的关键。CNN学习到的特征可以自然的解耦为:特征的模对应类内的变化,特征的角度对应语义差异,受到这个观察的启发。提出一种通用的解耦学习框架,其分别模拟了类内变化和语义差异。具体来讲,首先将內积重新参数化为解耦形式,然后将其推广到解耦卷积运算符,该运算符用作解耦网络的构件块。基于解耦运算符,我们进一步提出从数据中直接学习运算符。大量实验表明,这种解耦重新参数化可以显著提高性能,并且收敛更容易,鲁棒性更强。

 


http://chatgpt.dhexx.cn/article/yijwAv5C.shtml

相关文章

Decoupled Knowledge Distillation论文阅读+代码解析

本文来自2022年CVPR的文章,论文地址点这里 一. 介绍 知识蒸馏(KD)的通过最小化师生预测对数之间的KL-Divergence来传递知识(下图a)。目前大部分的研究注意力都被吸引到从中间层的深层特征中提取知识。与基于logit的精馏方法相比&#xff0c…

令牌桶算法

一 算法 令牌桶算法和漏桶算法不同的是,有时后端能够处理一定的突发情况,只是为了系统稳定,一般不会让请求超过正常情况的60%,给容灾留有余地。但漏桶算法中后端处理速度是固定的,对于短时的突发情况,后端…

动态分区分配算法(1、首次适应算法 2、最佳适应算法 3、最坏适应算法 4、邻近适应算法)

文章目录 前言知识总览1、首次适应算法2、最佳适应算法3、最坏适应算法4、邻近适应算法知识回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记,大部分图片都是课件老师的PPT,方便复习用。此篇文章仅供学习参考。 提示:以下是本篇文章…

《算法4》读书笔记(一)

写在前面:配套网站algs4.cs.princeton.edu,可以把这个网站作为编程的时候的参考资料。这本书比较实用(某瓣评分9.3),但没有动态规划部分,作为两三年没怎么碰过算法和数据结构的菜狗,看了《图解算…

《算法4》深入理解红黑树

红黑树是一种性能非常优秀的数据结构,关键在于它能保证最坏的性能也是对数的,主要是因为它是一种平衡的树,所以也叫平衡查找树。要理解红黑树,最好先看看我的上一篇博客《算法4》符号表以及二叉查找树,了解二叉查找树以…

【算法4总结】第四章:图

目录备份 第四章:图 概述 图可以根据是否有向和带权分成以下四种: 无向图 (无向不带权)有向图 (有向不带权)加权无向图(无向带权)加权有向图(有向带权) …

算法4(一、递归学习)

每次用递归都感觉有点难,这个趁着恶补基础知识的时候,专门看了一遍递归,算法4的。 1.1 递归介绍 方法可以调用自己,例如:下面给出了bin_search的二分查找的一种实现。(算法4中使用的是Java,但…

【算法4总结】第一章:基础

目录备份 第一章:基础 我认为这一章主要介绍的是如何使用工具。 一共五节,前两节主要是对 Java 语法的回顾,第三节则是三个数据结构,背包,队列和栈的API讲解。 而第四节是讲解的是如何分析算法。第五节则是针对具体…

SQL修改语句

如果我们要修改数据库中表的数据&#xff0c;这个时候我们就要使用到UPDATE语句。 UPDATE语句的基本语法是&#xff1a; UPDATE <表名> SET 字段1值1, 字段2值2, ... WHERE ...; 例如&#xff0c;我们想更新employees表id100的记录的last_name和salary这两个字段&…

【数据库】SQL语句之修改语句(INSERT,UPDATE,DELETE)

1.INSERT INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...); 例如&#xff1a; 一次插入一个 INSERT INTO students (class_id, name, gender, score) VALUES (2, 小明, M, 80);一次插入多条 INSERT INTO students (class_id, name, gender, score) VA…

SQL Server修改数据

本篇主要讲解的是SQL Server 中修改数据的几种语句&#xff1a; INSERT语句INSERT INTO SELECT语句UPDATE语句DELETE语句 一&#xff1a;INSERT语句 INSERT语句向表中添加新行&#xff0c;以下是INSERT语句的最基本形式&#xff1a; 首先&#xff1a;table_name指定要插入的…

使用SQL语句修改表数据

使用SQL语句修改表数据 文章目录 使用SQL语句修改表数据利用INSERT语句输入数据利用UPDATE语句更新表数据利用DELETE语句删除表中数据利用Truncate Table语句删除表中数据 利用INSERT语句输入数据 INSERT语句的基本语法格式如下&#xff1a; 上述格式主要参数说明如下&#xf…

初探POC编写

文章目录 前言什么是POC什么是 ExpPOC注意事项尝试编写第一个POCpikachu sql盲注poc参考 前言 想锻炼一下编程能力&#xff0c;师兄说以后很重要的&#xff0c;最好学好一点 但是我又想学习安全相关的&#xff0c;那就来练练poc吧 什么是POC PoC(全称: Proof of Concept), …

POC_MeterSphere-RCE

MeterSphere-RCE 漏洞详情影响范围指纹- fingerPOC-YAML《飞致云MeterSphere开源测试平台远程代码执行漏洞》 漏洞详情 MeterSphere一站式开源持续测试平台存在的远程代码执行漏洞。由于自定义插件功能处存在缺陷,未经身份验证的攻击者可利用该漏洞在目标系统上远程执行任意…

【POC---概念验证】

文章目录 前言一、Proof of Concept是什么&#xff1f;验证内容 PoC测试工作准备前提PoC测试工作参与者PoC测试工作准备文档PoC测试工作第一阶段 工作启动第二阶段 产品宣讲及现场集中测试第三阶段 技术测评第四阶段 间歇性测试工作 第五阶段 商务验证第六阶段 背书归档、分析总…

POC_Jenkins

简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成,Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工…

网络安全中的POC、EXP、Payload、ShellCode_网络安全payload是什么意思

什么是 POC、EXP、Payload&#xff1f; POC&#xff1a;概念证明&#xff0c;即概念验证&#xff08;英语&#xff1a;Proof of concept&#xff0c;简称POC&#xff09;是对某些想法的一个较短而不完整的实现&#xff0c;以证明其可行性&#xff0c;示范其原理&#xff0c;其…

Zendstudio 9.0.2 安装Aptana3 并且配置 jQuery

原文地址:http://my.oschina.net/feek/blog/64517 aptana-javascript-jquery.ruble文件夹下载地址: http://dl.dbank.com/c04bfgbchz 一直在用zenstudio9&#xff0c;有时候又需要用到jquery等插件辅助制作前台效果&#xff0c;想安装个Aptana3插件&#xff0c;但是查了好多网…

elfk

1. 2. ​​​​​​​ 3. 4. 5.

c/c++读写文件(c方法篇)

读写文件操作 C语言方法 参考博客&#xff1a;函数基本介绍&#xff1a; https://www.cnblogs.com/lidabo/p/6813354.html 自己写了个demo测试一下fopen、feek、fwrite、fread函数的使用&#xff0c;代码如下&#xff1a; void OperationFile_C() {FILE* fp NULL;fp fopen(…