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

【论文阅读】MOE奠基论文《Adaptive Mixtures of Local Experts》

《Adaptive Mixtures of Local Experts》

  • 前言
  • 一、让协同学习竞争
    • 1.1 方案
    • 1.2 方案演变的由来
  • 二、让竞争学习协同
    • 2.1 竞争学习
    • 2.2 竞争学习协同
  • 三、案例验证
    • 3.1 任务背景
    • 3.2 实验结果
    • 3.3 后续工作 (Future Work)

前言

论文提出了一个基于多个分离网络的有监督学习方案,该方案可以解决整个训练集中的子集问题.该方案既可以看做多层有监督网络模块的版本,也可以看作是竞争学习的协同版本.该方案将这个两个看似差异很大的版本联系了起来.最后使用元音分辨任务对该方案进行了验证与说明,其具体方法是通过将元音任务拆分为几个子任务,每个子任务由一个简单的专家网络负责.

一、让协同学习竞争

1.1 方案

其整体方案如下图所示,输入给到多个专家网络,每个会获得一个输出,同时输入还会给到一个门控网络,门控网络输出专家个数的概率,每个概率对应一个专家,该概率代表了该专家被选择作为输出的概率.比如下图所示就是选择了1号专家的输出作为最终输出,其被选择的概率为p1.
在这里插入图片描述

1.2 方案演变的由来

在这篇论文之前已有类似的方案,但是其loss函数方式是让每个专家都预测一部分加起来得到完整的预测.这种方法相当于加强了各专家之间关联程度,一旦某一个专家发生大的波动,剩余专家也会受到较大影响.从理论角度看,该公式的学习目标,每一个专家学习的是其余专家与标签的残差.这样的专家之间的协调作用更强,那么本文的作者更希望专家之间的独立性增强,一些专家能够处理特定的场景.因此对loss进行了改进.
在这里插入图片描述
其改进loss如下所示,新的loss下,要求每个专家输出完整的预测,每个专家有一定概率被选中作为目标预测,将各专家协作的关系变为了竞争的关系.这样的话一个专家的预测不再直接受到其它专家权重输出的影响.
在这里插入图片描述
因为专家训练与门控网络训练是一起进行的,这样当一个专家的预测误差更小时,门控网络会给其更大的权重,反正会减小其权重.
在实际应用中本文使用了一个更优的loss如公式(3),对原loss采用了取负,指数与log处理,其两者导数对比如下,前者就是简单的专家输出误差与权重,而后者引入了其它专家的重要性来对比当前专家的重要性,使得当前专家知道自己是否更重要,进而指导它面对当前的case,是否应该大力更新自己的权重。特别是在训练的早期,相比于公式(4)的梯度计算方式,后者可以让模型更快地拟合
在这里插入图片描述

二、让竞争学习协同

2.1 竞争学习

在竞争学习架构中,通过对所有类的对数概率 l o g P c logP^c logPc来选择最优类(例如概率最大的类)实现竞争学习,对数概率由一个带加权的高斯核函数模型得到,其具体含义是每个神经元i通过的其权重向量 μ i \mu_i μi 衡量样本 o c o^c oc的匹配程度, p i p_i pi是选中i的概率,全部加起来为1,k为标准化常数。
在这里插入图片描述

  • 软竞争学习是通过学习调整权重,提高被选中的概率
  • 硬竞争学习是忽略多个隐藏单元的输出,而是由最接近的隐藏单元得到

2.2 竞争学习协同

本文的方案是将隐藏单元替换为专家,其输出代表了多维高斯分布的均值,因此当前输入函数是由场景代表而不是权重.同时还使用了门控网络,由输入决定各专家的混合比例,这使得竞争学习之间具备一定协同能力.

三、案例验证

3.1 任务背景

元音辨别任务,元音为[i],[I],[a],[A]四个,数据由75个录音员(包含老青少)

3.2 实验结果

其训练测试指标不变,看四个不同方案达到该指标的训练批次与时间,其中方案分别为4,8个神经网络专家,6,12层隐藏层的BP(反向传播网络),可以看到8个专家方案的批次,时间(SD)都是最少的.
在这里插入图片描述
现在来看一下各专家表现,以4个专家的方案为例,其中点带label的为样本点,Net 0,1,2为专家分界线,没有第四个专家,因为其权重为0,相当于没有起作用;gate 0:2线是0,2专家的门控分界线,在其左侧专家2权重更大,右侧专家0权重更大,因此元音[a],[A]的分界线其左侧为专家2的线,右侧为专家0的线构成.
在这里插入图片描述

3.3 后续工作 (Future Work)

作者建议了一些未来研究方向:

  • 扩展至更复杂任务: 探索AMLE在结构化数据、时间序列和多模态任务中的应用。
  • 改善训练算法: 提升门控网络和专家模型的优化效率。
  • 进一步理论分析: 深入研究模型对深度学习中表示学习的影响。

相关文章:

【论文阅读】MOE奠基论文《Adaptive Mixtures of Local Experts》

《Adaptive Mixtures of Local Experts》 前言一、让协同学习竞争1.1 方案1.2 方案演变的由来 二、让竞争学习协同2.1 竞争学习2.2 竞争学习协同 三、案例验证3.1 任务背景3.2 实验结果3.3 后续工作 (Future Work) 前言 论文提出了一个基于多个分离网络的有监督学习方案,该方案…...

MATLAB中replace函数用法

目录 语法 说明 示例 替换字符串数组中的子字符串 替换匹配模式的子字符串 替换多个子字符串 replace函数的功能是查找并替换一个或多个子字符串。 语法 newStr replace(str,old,new) 说明 newStr replace(str,old,new) 将所有出现的子字符串 old 替换为 new。如果 …...

MATLAB基本数据类型

1. ‌数值类型‌ ‌整数类型‌: 有符号整数(如 int8, int16, int32, int64)和无符号整数(如 uint8, uint16, uint32, uint64)。 这些类型分别占用 1、2、4、8 个字节,表示不同范围的整数值。 ‌浮点数类…...

LeetCode 热题 100_单词拆分(86_139_中等_C++)(动态规划)

LeetCode 热题 100_单词拆分(86_139) 题目描述:输入输出样例:题解:解题思路:思路一(动态规划): 代码实现代码实现(思路一(动态规划)&a…...

Spring Boot 集成spring-boot-starter-data-elasticsearch

第一步&#xff0c;添加Maven依赖 <!--es--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> 第二步&#xff0c;配置yml spring:elastic…...

【Linux】Linux下的gcc/g++编译器与动静态库

目录 对程序的认知&&初识gcc逐步分析程序的编译步骤预编译【进行宏替换】gcc需要执行的指令 ⭐ 编译【C语言——>汇编语言】gcc要执行的指令⭐ 汇编【汇编语言——>可重定位目标二进制文件】gcc需要执行的指令 链接【生成可执行文件或库文件】gcc需要执行的指令 …...

从暴力到动态规划再到双指针:使用 Java 探索接雨水问题的不同解法

文章目录 一、问题描述二、暴力法&#xff08;Brute Force&#xff09;思路实现代码 三、动态规划法&#xff08;Dynamic Programming&#xff09;思路实现代码 四、双指针法&#xff08;Two Pointers&#xff09;思路实现代码 五、方法对比 在本文中&#xff0c;我们将探讨经典…...

CI/CD(十) Jenkins共享库与k8s集成

一、创建k8skey&#xff08;v1.28.2版本&#xff09; 1、查看k8s集群名称 rootk8s-master:~# kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * kubernetes-adminkubernetes kubernetes kuber…...

5.Elasticsearch - Spring Data 框架

一、Kibana 介绍 Kibana 是一个免费且开放的用户界面&#xff0c;能够让你对 Elasticsearch 数据进行可视化&#xff0c;并让你在 Elastic Stack 中进行导航。你可以进行各种操作&#xff0c;从跟踪查询负载&#xff0c;到理解请求如何流经你的整个应用&#xff0c;都能轻松完…...

如何通过技术手段降低开发成本

通过技术手段降低开发成本的关键在于&#xff1a; 自动化工具的使用、优化开发流程、云计算资源的利用、开发技术栈的精简与创新、团队协作平台的高效管理。 其中&#xff0c;自动化工具的使用是最为有效的技术手段之一。自动化工具通过减少人工干预和重复性工作&#xff0c;大…...

java android持久化数据

1. SQLite 数据库&#xff08;Android 内置&#xff09; 1.1 创建数据库帮助类 public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME "MyDatabase.db";private static final int DATABASE_VERSION 1;// 表名和列名…...

Chromium 134 编译指南 macOS篇:系统环境准备(一)

1. 引言 在当今浏览器领域&#xff0c;开源项目Chromium的地位举足轻重。作为众多现代浏览器的技术基础&#xff0c;Chromium不仅驱动着Google Chrome&#xff0c;还为Microsoft Edge、Opera等众多知名浏览器提供了核心引擎。对于热衷于浏览器技术研究&#xff0c;或希望开发自…...

性能优化-Spring参数配置、数据库连接参数配置、JVM调优

SpringBoot配置参数 server:tomcat:#线程池配置max-threads: 200 # 最大工作线程数&#xff08;建议&#xff1a;2~4倍CPU核心数&#xff0c;如16核设200-400&#xff09;min-spare-threads: 20 # 最小空闲线程&#xff08;应对突发流量&#xff0c;…...

【2025年泰迪杯数据挖掘挑战赛】B题 数据预处理+问题建模与求解

目录 2025年泰迪杯数据挖掘挑战赛 B题数据预处理 问题一、二建模与求解三、数据预处理3.1 基于多核并行的协同处理方法的数据读取3.2 基于多核并行协同处理的数据聚合 四、问题一五、问题一技术文档与matlab代码 2025年泰迪杯数据挖掘挑战赛 B题 数据预处理 问题一、二建模与求…...

git怎么使远程分支回退到指定的节点处

git使远程分支回退到指定的节点 引言场景描述步骤 引言 最近提交代码的时候&#xff0c;总将分支合并错&#xff0c;原本要合到A分支&#xff0c;结果合并到了B分支&#xff0c;这样就导致b分支需要回退到我没有合并之前的节点处。 本文记录下怎么将远程分支回退到指定的节点。…...

Spring Boot 使用 QQ 企业邮箱发送邮件的完整指南(含 535 错误排查)

在 Spring Boot 项目中集成邮件功能非常常见,尤其是用户注册通知、异常报警、定期报告等场景。但如果你使用的是 QQ 企业邮箱(smtp.exmail.qq.com),可能会遇到如下典型错误: 535 Error: authentication failed, system busy这篇博客将详细解析出现该问题的原因、排查路径…...

MySQL联合查询||多表查询

mysql中如何注释...

java 递归遍历JSON字符串获取某个字段的值

在 Java 中&#xff0c;若要递归遍历 JSON 字符串并获取特定字段的值&#xff0c;可借助 Jackson 库。以下是一个示例代码&#xff0c;它能实现递归遍历 JSON 字符串并获取指定字段的值。 import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.data…...

OceanBase4.0社区版 单机快速部署

以下内容结合OceanBase官方文档进行安装部署测试 官方文档地址&#xff1a;https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012693 一.部署方式 OceanBase 企业版&#xff1a; • 使用 OCP 部署 OceanBase 集群 • 使用 OBD 部署 OceanBase 集群 •…...

CExercise_05_1伪随机数_2编写程序模拟掷骰子的游戏(每一次投掷,都投掷两个骰子)

题目&#xff1a; 编写程序模拟掷骰子的游戏&#xff08;每一次投掷&#xff0c;都投掷两个骰子&#xff09;。每局游戏的规则如下&#xff1a; 第一次掷的时候&#xff1a; 如果点数之和为 7 或 11 则获胜&#xff1b; 如果点数之和为2、3或12则落败&#xff1b; 其他情况下的…...

【更新至2023年】2000-2023年中国气候政策不确定性指数(全国、省、市三个层面)

【更新至2023年】2000-2023年中国气候政策不确定性指数&#xff08;全国、省、市三个层面&#xff09; 1.时间&#xff1a;2000-2023年 2.来源&#xff1a;使用人工审计和深度学习算法MacBERT模型&#xff0c;基于中国《人民日报》《光明日报》《经济日报》《环球时报》《科技…...

机器学习中 提到的张量是什么?

在机器学习中, 张量(Tensor) 是一个核心数学概念,用于表示和操作多维数据。以下是关于张量的详细解析: 一、数学定义与本质 张量在数学和物理学中的定义具有多重视角: 多维数组视角 传统数学和物理学中,张量被定义为多维数组,其分量在坐标变换时遵循协变或逆变规则。例…...

【Python爬虫】简单案例介绍3

本文继续接着我的上一篇博客【Python爬虫】简单案例介绍2-CSDN博客 目录 3.3 代码开发 3.3 代码开发 编写代码的步骤&#xff1a; request请求科普中国网站地址url&#xff0c;解析得到类名为"list-block"的div标签。 for循环遍历这个div列表里的每个div&#xff0…...

对于客户端数据存储方案——SQLite的思考

SQLite 比较适合进行本地小型数据的存储&#xff0c;在功能丰富性和并发能力上不如 MySQL。 数据类型差异 SQLite 使用动态类型系统&#xff1a;只有 5 种基本存储类 (NULL, INTEGER, REAL, TEXT, BLOB) 类型亲和性&#xff1a;SQLite 会将声明的列类型映射到最接近的存储类 …...

基于Nacos+动态线程池的分布式系统弹性设计:投行交易与风控场景实战

业务痛点和需求分析 在投行高频交易系统和对公贷款风控计算引擎中&#xff0c;我们面临两大核心挑战&#xff1a; 流量洪峰波动剧烈 交易时段TPS可达10万/秒&#xff0c;非交易时段下降80%风控模型计算存在突发性批量任务&#xff08;如月末集中评审&#xff09; 架构设计与…...

高并发内存池(定长内存池基础)

定长内存池的设计 定长内存池定长内存池的原理讲解代码实现定义对象New对象的主要逻辑delete对象的主要逻辑完整代码 定长内存池 为什么我们要设计这个定长内存池呢&#xff1f;首先malloc是c标准库中向堆申请空间的接口&#xff0c;变相的说malloc是普遍性&#xff0c;而我们…...

element-ui plus 中 filter-method 函数多次触发问题解决

前情提要 点进这个文章的小伙伴&#xff0c;应该都是为了解决一个需求&#xff0c;把原本的前端过滤改为后端过滤&#xff0c;但是将filter-method修改为后端取数据后&#xff0c;发现其触发了很多次。博主也是在修改表格过滤时用到了这个坑&#xff0c;本篇文章为大家解决一下…...

物联网场景实战:智能电表数据管理与分析(一)

智能电表与物联网的融合 在当今数字化时代&#xff0c;随着物联网&#xff08;IoT&#xff09;技术的飞速发展&#xff0c;各行业都在积极探索如何利用这一技术实现转型升级 。电力行业也不例外&#xff0c;智能电表作为电力系统与物联网融合的关键节点&#xff0c;正发挥着越来…...

网络中的基本概念

这篇文章主要介绍我们在学习网络的过程中&#xff0c;会碰到的一系名词&#xff0c;对其概念进行解释&#xff0c;让大家知道这些都是干什么的。 网络&#xff1a;若干个节点和连接这些节点的链路组成的&#xff0c;用于实现信息交换资源共享。 节点&#xff1a;网络中各种接地…...

行锁(Row Locking)和MVCC(多版本并发控制)

在数据库系统中&#xff0c;**行锁&#xff08;Row Locking&#xff09;和MVCC&#xff08;多版本并发控制&#xff09;**是两种不同的并发控制机制&#xff0c;它们的使用场景和原理有显著区别。以下是详细对比和适用场景分析&#xff1a; 一、行锁&#xff08;Row Locking&am…...

AlexNet神经网络详解及VGGNet模型和

AlexNet模型细节 一共8层&#xff0c;5个卷积层&#xff0c;3个全连接层 AlexNet工程技巧 多GPU训练&#xff0c;ReLU激活函数&#xff0c;LRN归一化&#xff0c;Dropout&#xff0c;重叠池化&#xff0c;数据增强等 多GPU训练 除了将模型的神经元进行了并行&#xff0c;还使…...

【Linux网络】Socket 编程TCP

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12891150.html 目录 TCP socket API 详解 socket(): bind(): listen(): accept(): connect V0…...

代码训练day27贪心算法p1

贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 1.分发饼干 先将饼干数组和小孩数组排序。 然后从后向前遍历…...

基于RV1126开发板的车辆检测算法开发

1. 车辆检测简介 车辆检测是一种基于深度学习的对人进行检测定位的目标检测&#xff0c;能广泛的用于园区管理、交通分析等多种场景&#xff0c;是违停识别、堵车识别、车流统计等多种算法的基石算法。 人脸检测算法mAP0.5CAR0.78029 基于EASY-EAI-Nano硬件主板的运行效率&…...

Leetcode——137 260找出只出现一次的数

文章目录 找出只出现一次的数引入Leetcode 260Leetcode 137 找出只出现一次的数 对于数组中有一类题&#xff0c;即某些数据在数组中只出现一遍&#xff0c;需要我们找出&#xff0c;今天我们来看看这个类型的题。 引入 想必大家应该见过这么一道题&#xff1a; 现给定一个数…...

【多线程-第四天-自己模拟SDWebImage的下载图片功能-看SDWebImage的Demo Objective-C语言】

一、我们打开之前我们写的异步下载网络图片的项目,把刚刚我们写好的分类拖进来 1.我们这个分类包含哪些文件: 1)HMDownloaderOperation类, 2)HMDownloaderOperationManager类, 3)NSString+Sandbox分类, 4)UIImageView+WebCache分类, 这四个文件吧,把它们拖过来…...

【5G学习】基本概念之多频资源以及子载波和信道

在5G通信中&#xff0c;子载波、信道以及时域、频域、码域、空域是构建无线传输系统的核心概念。它们共同定义了信号的传输方式、资源分配和多维复用技术。以下是详细解释及其相互关系&#xff1a; 一、核心概念定义 1. 子载波&#xff08;Subcarrier&#xff09; 定义&#…...

鸿蒙动画与交互设计:ArkUI 3D变换与手势事件详解

大家好&#xff0c;我是 V 哥。 在鸿蒙 NEXT 开发中&#xff0c;ArkUI 提供了丰富的 3D 变换和手势事件功能&#xff0c;可用于创建生动且交互性强的用户界面。下面详细介绍 ArkUI 的 3D 变换和手势事件&#xff0c;并给出相应的 ArkTS 案例代码。 1. ArkUI 3D 变换 ArkUI 支…...

敏感数据触发后怎么保障安全?

当敏感数据被触发或泄露时&#xff0c;需立即采取系统化措施控制风险。以下为分阶段应对策略&#xff0c;结合技术与管理手段&#xff1a; 一、即时响应阶段 阻断扩散 隔离受影响系统&#xff1a;立即断开网络连接、暂停服务或关闭相关端口。 终止可疑进程&#xff1a;通过华…...

【CVE-2024-10929】ARM CPU漏洞安全通告

安全之安全(security)博客目录导读 目录 一、概述 二、CVE详情 三、受影响产品 四、建议措施 五、致谢 六、版本历史 一、概述 在部分基于Arm架构的CPU中发现了一个潜在安全问题&#xff0c;称为Spectre-BSE&#xff08;Branch Status Eviction&#xff0c;分支状态驱逐…...

高级java每日一道面试题-2025年4月06日-微服务篇[Nacos篇]-如何诊断和解决Nacos中的常见问题?

如果有遗漏,评论区告诉我进行补充 面试官: 如何诊断和解决Nacos中的常见问题&#xff1f; 我回答: 在Java高级面试中诊断和解决Nacos常见问题的综合回答 在Java高级面试中&#xff0c;当被问及如何诊断和解决Nacos中的常见问题时&#xff0c;可以从以下几个方面进行详细阐述…...

【模块化拆解与多视角信息3】教育背景:学历通胀时代的生存法则

教育背景:学历通胀时代的生存法则 写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算…...

无人机3S与4S电池技术对比!

一、基础参数对比 1. 电芯与电压 3S电池&#xff1a;由3节锂电芯串联组成&#xff0c;标称电压为11.1V&#xff08;单节3.7V3&#xff09;&#xff0c;满电电压约12.6V。 4S电池&#xff1a;由4节电芯串联&#xff0c;标称电压14.8V&#xff08;3.7V4&#xff09;&#…...

linux电源管理(二),内核的CPUFreq(DVFS)和ARM的SCPI

更多linux系统电源管理相关的内容请看&#xff1a;https://blog.csdn.net/u010936265/article/details/146436725?spm1011.2415.3001.5331 1 简介 CPUFreq子系统位于drivers/cpufreq目录下&#xff0c;负责进行运行过程中CPU频率和电压的动态调整&#xff0c;即DVFS (Dynami…...

短波红外高光谱相机:高光谱成像在塑料分选中的应用

随着塑料工业的迅猛发展&#xff0c;塑料包装制品需求量增长迅速&#xff0c;消耗量不断上升&#xff0c;废塑料产生量也急剧增加。由于塑料化学结构稳定&#xff0c;难以自然降解&#xff0c;不当使用和处置及累积会造成严重的环境污染和资源浪费。因此&#xff0c;快速、精准…...

通过OBD部署OceanBase社区版集群v4.3.5

以下内容结合OceanBase官方文档进行安装部署测试 官方文档地址&#xff1a;https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016072 一.环境准备 准备三台虚拟机&#xff0c;配置信息如下 192.168.232.8 centos7.9 4c16g 硬盘100g 192.168.232.9 …...

【Java学习笔记】注释

注释 为什么要写注释&#xff1f; 养成良好的编程习惯&#xff0c;方便后续阅读和查看&#xff0c;理顺思路&#xff0c;增加可读性 对自己的代码负责&#xff0c;对别人负责 说明 1. 被注释的文字&#xff0c;不会被 JVM&#xff08;虚拟机&#xff09;解释执行 2. 多行注…...

Python 调用 YOLO ONNX

Python 调用 YOLO ONNX 1 下载ONNX文件2 Python代码 1 下载ONNX文件 ONNX下载地址 2 Python代码 import cv2 from ultralytics import YOLO# 加载 YOLOv11 model YOLO(./yolo11n.pt)# 读取图片 image_path ./11.png img cv2.imread(image_path)# 推理&#xff08;可以传…...

Linux 下 Module 工具的介绍与使用

参考&#xff1a; https://www.fasteda.cn/post/22.html https://modules.readthedocs.io/en/latest/module.html Linux 下 Module 工具的介绍与使用 一、前言 在 Linux 中&#xff0c;当同一款编辑器、运行库、软件存在多个版本且多个版本都需要在不同的场景或人员使用时&a…...

批量归一化(Batch Normalization)原理与PyTorch实现

批量归一化&#xff08;Batch Normalization&#xff09;是加速深度神经网络训练的常用技术。本文通过Fashion-MNIST数据集&#xff0c;演示如何从零实现批量归一化&#xff0c;并对比PyTorch内置API的简洁实现方式。 1. 从零实现批量归一化 1.1 批量归一化函数实现 import t…...