Merging of neural networks

Merging of neural networks

  • 论文链接:https://arxiv.org/pdf/2204.09973v2.pdf
  • 源码链接:https://github.com/fmfi-compbio/neural-network-merging

简介

典型的神经网络训练从随机初始化开始,并进行训练,直到在某些局部最优中达到收敛。最终结果对开始的随机种子非常敏感。因此,人们可能要多次进行实验以避免碰到不幸种子。最终选择的网络正是具有最佳验证精度的实验。
本文认为启动种子之间的差异可能通过在每次初始化中在隐藏层中选择稍微不同的特征来解释。人们可能会有一个问题,能以某种方式为网络训练选择更好的特征?一种方法是训练更大网络然后通过通道剪枝选择最重要通道。在许多情况下,训练一个随后被剪枝的大网络可能是令人望而却步的,因为将网络宽度增加两倍会导致FLOPs增加4倍,并且还可能需要改变一些超参数。
在这里本文提出一种替代方法。本文将训练两个相同大小的网络并将其合并为一个网络,而不是训练一个更大的网络并对其进行剪枝。思想是每个训练运行都会陷入不同的局部最优,因此在每一层中都有不同的滤波器集合。然后,本文可以选择一组比原始网络更好的滤波器,并获得更好的精度。

本文方法

本文训练策略包括三个阶段:

  1. 训练两个教师,
  2. 融合流程:创建一个学生包含如下字步骤:
    a) 教师逐层连接成一个大学生模型,
    b) 学习大学生模型神经元重要性,
    c) 大学生模型压缩。
  3. 大学生模型微调。
    教师的训练和学生模型的微调只是通过反向传播对神经网络的标准训练。后文描述如何从两个教师那里获得一个学生模型。

把教师模型层层连接为一个大学生模型

大学生模型墨迹两个教师模型并在最后一层对他们预测进行平均。这个阶段只是网络转换没有任何训练。如图3所示。卷积层的合并是在通道维度上进行的。线性曾的连接时在特征维度中类似完成的。本文将这个模型称为大学生模型,因为他的宽度是原来的两倍。
在这里插入图片描述

大学生模型神经元的学习重要性

本文希望大学生模型会在每层只使用一半的神经元。因此,在去除了不重要神经元后,将使用原始架构。除了学习神经元相关性,还希望这两个计算流相互连接。
有多种方式寻找最相关通道。可以将分数分配给各个通道,也可以使用辅助损失指导网络选择最相关通道。本文选择后者方法。它利用L0损失。
定义 ℓ \ell 是有k输入特征的线性层。 g i g_{i} gi是分配给 f i f_{i} fi的门。门可以是开 g i = 1 g_{i}=1 gi=1(学生使用特征)或关 g i = 0 g_{i}=0 gi=0(学生不使用特征)。在计算层的输出前,首先将输入乘以门,既不是计算 W f + b Wf+b Wf+b,而是计算 W ( f ⋅ g ) + b W(f\cdot g)+b W(fg)+b。为了使本文模型只是用想要一半特征想要满足 1 n ∑ 1 k g k = 1 2 \frac{1}{n}\sum_{1}^{k}g_{k}=\frac{1}{2} n11kgk=21
该方法问题是 g i g_{i} gi是离散的,不能使用梯度下降训练。为了克服这个问题,本文使用Learning sparse neural networks
through l_0 regularization中随机门和 L 0 L_{0} L0连续松弛。随机门包含概率为0的非0随机变量: P [ g i = 0 ] > 0 P[g_{i}=0]>0 P[gi=0]>0,非0概率为1 P [ g i = 0 ] > 1 P[g_{i}=0]>1 P[gi=0]>1。重参数化技巧使得门分布可由梯度下降训练。
为了鼓励大学生模型只使用层的一半特征,使用一个辅助损失:
L h a l f ℓ = ( 1 2 − 1 k ∑ 1 k P [ g i > 0 ] ) 2 L_{half}^{\ell}=(\frac{1}{2}-\frac{1}{k}\sum_{1}^{k}P[g_{i}>0])^{2} Lhalf=(21k11kP[gi>0])2
尽管本文损失函数迫使模型恰好打开一半的门,但它们损失促使模型使用尽可能少的门。
因此本文优化 L = L E + λ ∑ l L h a l f ℓ L=L_{E}+\lambda\sum_{l}L_{half}^{\ell} L=LE+λlLhalf。其中 L E L_{E} LE是数据集上误差损失测量拟合,新的超参数 λ \lambda λ是误差损失和辅助损失重要性比例。
超参数 λ \lambda λ很敏感,需要适当调整。在训练开始时,不能太大,否则学生会以概率为0.5将每个门设置为关闭。在训练结束时,不能太小,否则学生会忽视辅助损失,又例如误差损失。他将使用该层一半以上神经元,并在压缩后显著降低性能。
本文在一个单独的层中实现了门。使用两个门层设计,一个用于二维双通道另一个用于一维通道。门层位置至关重要。例如如果门层正好位于BatchNorm之前,其效果(将通道乘以0.1)将被BatchNorm抵消。

大学生模型的压缩

在学习完重要性之后,为每一层选择一半最重要神经元。然后通过只保留选定的神经元压缩每一层。

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

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

相关文章

Win32 SDK Gui编程系列之-- 读写初始化文件(INI文件)

读写初始化文件(INI文件) 1、初始化文件(INI文件) INI文件是一种结构简单的文本文件,是配置文件的事实标准。这种文件主要在Windows中使用,但也可在其他操作系统中使用。INI文件的名称来源于这种文件的扩展名“.INI”(initialization的缩写)。扩展名还包括configuration(…

YOLOv8改进 | 利用训练好权重文件计算YOLOv8的FPS、推理每张图片的平均时间(科研必备)

一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量…

Kubernetes 是什么?

介绍 Kubernetes 是一个强大的开源系统,最初由谷歌开发,并得到云原生计算基金会(CNCF)的支持,用于在集群环境中管理容器化应用程序。它旨在提供更好的方法来管理相关的、分布式的组件和服务,跨越各种基础设…

Sublime Text 3配置 Node.js 开发环境

《开发工具系列》 Sublime Text 3配置 Node.js 开发环境 一、引言二、主要内容2.1 初识 Sublime Text 32.2 初识 Node.js2.3 接入 Node.js2.3.1 下载并安装 Node.js2.3.2 环境变量配置 2.4 配置 Node.js 开发环境2.5 编写 Node.js 代码2.6 运行 Node.js 代码 三、总结 一、引言…

【MySQL】-11 MySQL 架构及优化原理

MySQL 架构及优化原理 1 MySQL逻辑架构2 MySQL逻辑架构整体分为三层 :3 MySQL查询过程MySQL 整个查询执行过程,总的来说分为 5 个步骤 :3.1 客户端/服务端通信协议3.2 查询缓存3.3 查询优化3.4 查询执行引擎3.5 返回结果给客户端 4 查询系统性能1 分析查询语句2 索…

Kubernetes实战(二十七)-pod内多容器运行

1 在一个pod中创建多个容器 1.1 YAML文件示例 # cat multi-pods.yaml --- apiVersion: v1 kind: Pod metadata:name: multi-pods spec:containers:- name: blue-pod-containerimage: busybox:1.31.1command: ["sleep"]args: ["1000"]- name: green-p…

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

学习Android的第七天

目录 Android EditText 输入框 设置默认提示文本 范例 获得焦点后全选组件内所有文本内容 范例 限制EditText输入类型 android:inputType 值列表 范例 设置最小行&#xff0c;最多行&#xff0c;单行&#xff0c;多行&#xff0c;自动换行 范例 设置文字间隔 范例 …

React环境配置

1.安装Node.js Node.js官网&#xff1a;https://nodejs.org/en/ 下载之后按默认选项安装好 重启电脑即可自动完成配置 2.安装React 国内使用 npm 速度很慢&#xff0c;可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。 ①使用 winR 输入 cmd 打开终端 ②依…

npm后Truffle找不到命令(ubantu20系统)

Truffle找不到命令 方法1方法2 方法1 # 编辑.profile vim ~/.profile # 在.profile末尾把nodejs的解压路径添加到$PATH环境变量中 PATH"$HOME/bin:$HOME/.local/bin:路径:$PATH" source 文件方法2 #ls -l 在nodejs的bin目录下查看truffle链接的脚本文件 truffle -&…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…

突破编程_C++_面试(基础知识(6))

面试题14&#xff1a;什么是 RAII 编程方法 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C的发明者 Bjarne Stroustrup 提出的概念,也称为资源获取就是初始化&#xff0c;是一种管理资源、避免泄漏的编程方法。 它的基本思想是在对象的构造函数中获…

Hadoop-生产调优

第1章 HDFS-核心参数 1.1 NameNode内存生产配置 1&#xff09;NameNode 内存计算 每个文件块大概占用 150 byte&#xff0c;一台服务器 128G 内存为例&#xff0c;能存储多少文件块呢&#xff1f; 128 * 1024 * 1024 * 1024 / 150byte ≈ 9.1 亿G MB KB Byte 2&#xff09…

Leetcode 279 完全平方数

题意理解&#xff1a; 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全平方数&#xff0c…

FPGA_工程_按键控制的基于Rom数码管显示

一 信号 框图&#xff1a; 其中 key_filter seg_595_dynamic均为已有模块&#xff0c;直接例化即可使用&#xff0c;rom_8*256模块&#xff0c;调用rom ip实现。Rom_ctrl模块需要重新编写。 波形图&#xff1a; 二 代码 module key_fliter #(parameter CNT_MAX 24d9_999_99…

AT_abl_d 题解

线段树优化 DP 的板子。 题意 给定一个数列&#xff0c;求出它最长的子序列&#xff0c;满足相邻元素之差不大于 k k k。 分析 对于这类最长子序列的题目&#xff0c;有一个 DP 套路&#xff0c;设 d p i dp_i dpi​ 表示以 a i a_i ai​ 结尾的最长合法子序列长度&…

Filter 实现过滤符合条件的请求并落库

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、配置过滤器类 二、定义数据表、实体类、Mapper 2.1 DDL 2.2 实体类 2.3 Mapper 三、创建一个过滤器 四、实现 Nacos 配置…

通用的网站炫酷底部美化代码分享

网站炫酷底部美化代码介绍 这段代码采用了最新的前端技术&#xff0c;确保在各种浏览器和设备上都能完美展现。它包含响应式设计元素&#xff0c;这意味着无论用户是通过电脑、平板还是手机访问您的网站&#xff0c;底部都能呈现出最佳的效果。 此外&#xff0c;我们还特别注…

怎么做?这么做。

一、每天输入 每天读2——3篇文章&#xff0c;可以是行业趋势、技术推文(与自己的工作有关的方向)&#xff0c; 每天坚持一年就会是 1000 篇。 推荐&#xff1a; 大厂的技术博客&#xff1a;纯技术类&#xff0c;美团技术团队、阿里技术团队&#xff1b; 科技资讯类&#xff1…

电子电器架构 —— 网关测试脚本分析

电子电器架构 —— 网关测试 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何 消耗你的人和事,多看一眼都是你的不对。非…