模型剪枝算法——L1正则化BN层的γ因子

news2024/11/26 18:43:37
ICCV在2017年刊登了一篇经典论文《 Learning Efficient Convolutional Networks through Network Slimming》。在神经网络的卷积操作之后会得到多个特征图,通过策略突出重要的特征达到对网络瘦身的目的。在该论文中使用的剪枝策略就是稀疏化BN层中的缩放因子 \gamma
BatchNorm的本质是使输入数据标准化,关于0对称,数据分布到一个量级中,在训练的时候有利于加速收敛
BatchNorm本来公式:
\hat{x} = \frac{x^{k}-E[x^{k}]}{\sqrt{var[x^{k}]}}
在实际应用时,引入了两个可训练的参数 \gamma 、 \beta。后文会详解介绍。
为什么说输入数据分布不均匀,网络分布不容易收敛,以sigmoid为例进行介绍。sigmoid函数在神经网络中常用来做激活函数,为了将非线性引入神经网络中,使得神经网络具有更加复杂的决策边界。
                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         \phi (z) = \frac{1}{1+e^{-z}}
如sigmoid函数图像所示,输入数据在红框范围内,函数梯度较大,反向传播收敛更快。在红框外,梯度小参数更新慢,甚至有梯度消失的情况。
因此加入BN层能够很好的将数据分布规范化到均值为0,方差为1的标准正态分布。提高了激活函数的灵敏度,加速训练。
但是这样一来又引入了新的问题,我们观察红框内的函数形状类似线性函数。为了保持非线性,因此在BN中加入可训练的参数 \gamma\beta来呈现非线性。 (此处不理解为什么呈现的是非线性)
        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                  y^{k} = r^{k} \hat{x}^{k} + \gamma ^{k}
改进后的BN公式:
神经网络中网络层连接顺序:conv->BN->激活层
其中,卷积层的每个通道都会对应一个缩放因子\gamma,我们对\gamma小的值进行prunning,得到稀疏的网络层。
如何将重要的特征(通道)的\gamma值提高?  为什么重要的特征(通道)的\gamma值高?——使用L1正则化能对\gamma进行稀疏作用。
我们先来回顾一下L1、L2正则化。
通常L1正则化用来稀疏与特征选择。目标函数通常由损失函数(此处为MSE)和正则化函数组成,L1正则项表示如下。传入的参数 \theta经过L1正则化可以达到稀疏的效果。
        ​​​​​​​        ​​​​​​​        ​​​​​​​         J(\theta ) = \frac{1}{m}\sum_{i=1}^{m}h_{\theta }(x^{i}-y^{i})^{2} + \lambda \sum_{n}^{i=1}\left | \theta_{j} \right |
L1正则化函数图像以及它的求导函数sign(θ)的图像如下。L1在反向传播,梯度更新的时候梯度下降的步长衡为1,在参数更新的时候很多参数都学成了0,因此能达到稀疏的目的。

L2正则化用来平滑特征,防止过拟合。目标函数携带L2正则项表示:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        J(\theta ) = \frac{1}{m}\sum_{i=1}^{m}h_{\theta }(x^{i}-y^{i})^{2} + \lambda \sum_{n}^{i=1}\theta_{j}^{2}

L2正则化函数及求导函数的图像:

L2求导为θ,当参数特别大时,参数更新的梯度也大,当参数特别小时,参数更新的梯度也小。因此产生平滑特征的效果。L2可以每个参数都变小但是不至于变成0,这样可以减少模型的复杂度,防止模型拟合数据中的噪声。
因此可以利用L1正则化对参数\gamma进行稀疏作用。
        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       

 

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

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

相关文章

NSS [鹏城杯 2022]压缩包

NSS [鹏城杯 2022]压缩包 考点&#xff1a;条件竞争/逻辑漏洞&#xff08;解压失败不删除已经解压文件&#xff09; 参考&#xff1a;回忆phpcms头像上传漏洞以及后续影响 | 离别歌 (leavesongs.com) 源码有点小多 <?php highlight_file(__FILE__);function removedir($…

【Python】 Python 使用 Pillow 处理图像:几何变换

Python 使用 Pillow 处理图像&#xff1a;几何变换 pillow库操作切片、旋转、滤镜、输出文字、调色板等功能一应俱全。 1. 几何变换 Image 包含调整图像大小 resize() 和旋转 rotate() 的方法。前者采用元组给出新的大小&#xff0c;后者采用逆时针方向的角度。 调整大小并…

视频批量剪辑:AI智剪入门,轻松掌握智能剪辑技巧

在数字媒体时代&#xff0c;视频剪辑已经成为一项必备的技能。无论是为了工作需要&#xff0c;还是为了在社交媒体上分享生活&#xff0c;掌握视频剪辑技巧都能为我们的生活和工作带来很多便利。然而&#xff0c;对于初学者来说&#xff0c;视频剪辑可能是一项艰巨的任务。现在…

1210. 连号区间数(枚举)

题目&#xff1a; 1210. 连号区间数 - AcWing题库 思路&#xff1a;枚举 枚举一般是先暴力再优化。 注意&#xff1a;对于区间的枚举&#xff0c;一般是定一移一。固定任何一端移动另外一端均可以。但是此题为便于在枚举移动端的过程中确定最大最小&#xff0c;选择定左移右…

银行测试丨信贷长链路业务测试数据快速构造方法,了解一下

一、引言 随着银行数字化转型的不断深入&#xff0c;对信贷领域的测试工作提出了更高的标准和要求&#xff0c;如何在高效完成测试任务的同时确保测试质量就成了一个亟待解决的难题。有实践研究表明&#xff0c;在具体测试过程中往往大量的时间精力都是耗费在测试数据准备工作…

原神私服搭建服务器配置该如何选择

原神是一款开放世界的冒险游戏&#xff0c;自从这款游戏上线以来&#xff0c;就受到越来越多的玩家喜欢&#xff0c;因为这款游戏的设定比较少见&#xff0c;剧情也非常精彩&#xff0c;有一些玩家为了更好的游戏体验想要搭建原神的私服&#xff0c;满足玩家的需求&#xff0c;…

【云栖2023】王峰:开源大数据平台3.0技术解读

本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;王峰 | 阿里云研究员&#xff0c;阿里云计算平台事业部开源大数据平台负责人 演讲主题&#xff1a;开源大数据平台3.0技术解读 实时化与Serverless是开源大数据3.0时代的必然选…

提升采购订单管理效率的五个最佳实践

企业每年都要订购成千上万的商品和服务。公司运营和发展所需的一切都来自庞大的供应商网络&#xff0c;而沟通这些需求的主要方式是通过采购订单。 由于所有订单都会流经系统&#xff0c;而且每个月都会发生数千元不等的供应支出&#xff0c;因此掌握采购订单流程成为重中之重…

2023年云计算发展趋势浅析

​​​​​​​ 云计算的概念 云计算是一种通过互联网提供计算资源和服务的模式。它允许用户通过网络访问和使用共享的计算资源&#xff0c;而无需拥有或管理这些资源的物理设备。云计算的核心理念是将计算能力、存储资源和应用程序提供给用户&#xff0c;以便随时随地根据需要…

Ubuntu18.04 安装docker教程

Ubuntu18.04 安装docker教程 1、前言 Docker Engine-Community 支持以下的 Ubuntu 版本&#xff1a; Xenial 16.04 (LTS)Bionic 18.04 (LTS)Cosmic 18.10Disco 19.04 Docker Engine-Community 支持以下CPU架构&#xff1a; x86_64&#xff08;或 amd64&#xff09;armhfarm…

Win10共享打印机,别人连接不上出现无法连接到打印机错误码0x0000011b

环境&#xff1a; Win10 专业版 惠普L1119 问题描述&#xff1a; Win10共享打印机&#xff0c;别人连接不上出现无法连接到打印机错误码0x0000011b 解决方案&#xff1a; 1.打开我这台电脑的注册表找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print在右侧…

Google Analytics优缺点分析

Google Analytics是一款广泛使用的网站分析工具&#xff0c;它能够帮助网站和应用程序的拥有者收集和分析数据&#xff0c;并提供有关用户行为、流量来源和转化率等方面的详细见解。本文小编将讲讲关于Google Analytics的优缺点分析。 一、Google Analytics优点 1、免费使用&a…

如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

STM32H563烧录后无法擦除

STM32H563烧录后无法擦除&#xff0c;使用STM32CubeProgrammer连接后显示如下图所示。

Harmony 应用开发的知识储备

Harmony 应用开发的知识储备 前言正文一、DevEco Studio版本二、手机版本① 环境变量 三、API版本四、开发语言五、运行调试 前言 这里先说明一点&#xff0c;如果你对Android应用开发很熟悉&#xff0c;那么做Harmony应用开发也可以驾轻就熟&#xff0c;只不过在此之前你需要知…

bat脚本批量修改文件名称的方法,以及乱码问题解决

当有大量的文件&#xff0c;需要按照对应数据进行文件名称的修改时候&#xff0c;用bat脚本&#xff0c;是一个快速&#xff0c;并且简单的方法。 使用命令 “"ren "&A2&" "&D2&""” 其中A2为需要修改的单元格&#xff0c;D2为…

微信超实用的小功能

微信真的有超多实用小功能 平时很少注意到&#xff0c;每次都用传统的方法解决&#xff0c;浪费人家研发人员的一片苦心~ 1重要事项提醒&#xff1a;健忘症的福音&#xff1b; 步骤&#xff1a;长按消息-提醒-设置。 2 图片翻译&#xff1a;不用跳转翻译软件&#xff0c;一键翻…

卷积神经网络中参数量的计算原理及方法

手动计算参数量: 1. 卷积层参数计算方法: 参数量计算公式 卷积核宽度 * 卷积核高度 * 输入层通道数 * 输出层通道数 bias(输出层通道数) 注意:池化层没有参数(只是在已知数据区域里求个最大值)输入层通道数就是上层的卷积核数量 输出层通道数等于卷积核个数:输入层通道数经过…

双十一“静悄悄”?VR购物拉满沉浸式购物体验

以往每年的双十一&#xff0c;都会因为电商购物狂欢而变得热闹非凡&#xff0c;而各大电商平台也会在这天推出各种促销活动。但是&#xff0c;近几年来&#xff0c;双十一正在变得“静悄悄”。一个原因是消费群体越发理性消费&#xff0c;更加重视商品本身的质量和体验&#xf…

maven-compiler-plugin和spring-boot-maven-plugin的区别

两者都能打包&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 格式不同&#xff01;&#xff01;&#xff01;用处不同&#xff01;&#xff01;&#xff01; 以实验为准&#xff0c;下面开始实验&#xff1a; maven-compiler-plugin &…