机器学习李宏毅学习笔记33

news2024/11/13 16:08:51

文章目录

  • 前言
  • 一、神经网络压缩
  • 二、Network pruning----一种network compression技术
    • 1.移除不同单位的区别
    • 2.大乐透假说
  • 总结


前言

神经网络压缩(一)
类神经网络剪枝(pruning)


一、神经网络压缩

简化模型,用比较少的参数,但让效能差不多,这就是network compression这件事。有些情况下需要把模型用在resource constrain(资源有限)的情况下,比如说跑在智能手表上、小型无人机上等等。只有比较少的内存和计算能力,这时就需要比较小的模型,这种情况多用于需要及时响应并且保障隐私的情况下,不然就可以传到云端在把结果传回来。

二、Network pruning----一种network compression技术

有些参数是没有用的,network pruning就是要把这些没有用的参数找出来,并且丢掉。首先先train一个大的network,然后去评估这个network里每一个参数或者neural的重要性,看有没有那些参数是没在做事的。简单的评估方法就是看这个参数的绝对值,如果绝对值越大,表示对整个network的影响也越大。也可以用life long learning里面的思想,把参数的bi算出来,这样就知道每个参数是否重要。也可以把神经元当做单位,可以通过计算神经元输出不为0的次数。把不重要的参数(神经元)移除,这样就可以得到一个比较小的参数。移除参数后,正确率会下降一点。将没有被移除的参数做微调,可以在提高正确率。用训练资料,把修改过的network重新训练。训练后的可以再次进行评估、移除,不断重复。不能一次性移除大量参数,这样会对network产生比较大的影响,通过多次减去少量参数的方法进行减枝。
在这里插入图片描述

1.移除不同单位的区别

以参数为单位去掉后,network的形状可能是不规则的,这就导致了不好实作也不好用gpu加速。如果把去掉的位置补0的话,就没有真的把network变小。
在这里插入图片描述
使用network pruning可以去掉95%的参数,但是运算速度并没有加速。甚至多数情况下速度是变慢的。
在这里插入图片描述
这样看来用神经元作为单位是一种好的方法。使用神经元为单位进行pruning,去除一些神经元之后,network的架构依然是规则的,方便使用pytorch和gpu加速。
在这里插入图片描述

2.大乐透假说

既然小的network和大的network正确率差不多,为什么不直接train一个小的。一个大的network比较好train,直接train一个小的network没办法得到和大的network一样的正确率。
大乐透假说表示只要参数的数量越多,越容易训练。大的network可以看多是多个小的network的组合,训练一个大的network,相当于同时训练多个小的network,每一个小的network不一定能被成功的训练出来,但是只要有一个小的network成功,那么这个大的network就成功了。所以小的network越多,被成功训练起来的概率就越高。
如果用大的network随机初始化训练后,得到的进行剪枝得到小的network。这个小的network如果进行参数随机初始化就训练不起来,但是如果这个小的network用大的network的初始化参数就可以训练起来。

在这里插入图片描述


总结

视频学习地址:https://www.bilibili.com/video/BV13Z4y1P7D7/?p=35&spm_id_from=333.880.my_history.page.click&vd_source=3a369b537e1d34ff9ba8f8ab23afedec

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

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

相关文章

netty_客户端和服务端,定长数据输出案例

步骤1:创建server import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channe…

美团小游戏守卫羊村玩法介绍和游戏漏洞

序言 这款游戏是一个解压小游戏,是我在闲暇时发现的,然后就使用它来度过无聊的碎片化时间。这是一款传统的塔防类游戏,建议大家可以试试,玩法有很多种,当然它的游戏优化还是不太行,建议多优化优化。 玩法…

十二、Jenkins构建完成发送飞书消息通知

十二、Jenkins构建完成发送飞书消息通知 1. 创建一个飞书webhook 群机器人 得到一个飞书webhook地址: https://open.feishu.cn/open-apis/bot/v2/hook/2d0b6357-333a-4077-9fcd-61e361a3e51e 2. send_notice.py上传到jenkins服务器目录 send_notice.py最后面 代码…

移动硬盘中安装Ubuntu 20.04系统——立省99%的问题

目录 关于我为什么要在移动硬盘中装系统 准备工作 开始安装 磁盘分区 创建虚拟机 关于我为什么要在移动硬盘中装系统 (6条消息) 笔记本安装双系统ubuntu时踩的坑——戴尔_放风筝的猪的博客-CSDN博客 准备工作 1.移动硬盘 2.Ubuntu镜像 3.VMware虚拟机 Ubuntu镜像可以从…

Linux查看版本号,lsb_releasa过时了,得用uname -a

突然想查看Linux版本号了 然后终端输入lsb_release,结果给我报错No LSB modules are available. 然后网上一查发现Linux 版本是 Ubuntu 11.1.0 或更高版本,则 lsb_release 命令可能已经被弃用。 这是由于 lsb-release 命令已经不再维护,并且由于安全问题而被移除。 因此,对于…

基于matlab使用迭代最近点算法组合多个点云以重建三维场景(附源码)

一、前言 此示例演示如何使用迭代最近点 (ICP) 算法组合多个点云以重建三维场景。 此示例将使用 Kinect 捕获的点云集合拼接在一起,以构建场景的更大三维视图。该示例将 ICP 应用于两个连续的点云。这种类型的重建可用于开发对象的 3D 模型…

关于Realvnc远程Aero效果异常解决方案

默认安装realvnc server后,远程时如下图所示,windows areo效果丢失且提示“配色方案已经更改为windows 7 basic”; 解决方案:取消勾选,user mirror drive to capture screen 在远程时效果恢复如下:

类中的函数重载

函数重载回顾 函数重载的本质为相互独立的不同函数 C 中通过函数名和函数参数确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域中 类中的成员函数可以进行重载 构造函数的重载 普通成员函数的重载 静态成员函数的重载 问题 全局…

微软发布「升级版」多模态大模型 Kosmos-2!新增局部理解能力,解锁实体级交互

夕小瑶科技说 原创 作者 | 小戏、ZenMoore 三个多月前,微软亚洲研究院在论文《Language Is Not All You Need: Aligning Perception with Language Models》中发布了一个强大的多模态大模型 Kosmos-1,成功将感知与语言对齐,在 ChatGPT 的多…

C#串口通信从入门到精通(26)——多个串口多个线程发送数据和接收数据

前言 我们在开发串口程序的过程中有时候会遇到多个串口,并且多个串口也需要在多个线程进行操作,本文就来讲解如何实现多个串口在多线程下的安全发送与接收。 1、操作界面与测试过程 我们首先使用虚拟串口助手虚拟COM1、COM2这一对串口;COM3、COM4这一对串口,然后使用代码…

小黑子—MySQL数据库:第二章 - 进阶篇

MySQL数据库入门2.0 MySQL进阶篇1. MySQL体系结构2. 存储引擎2.1 InnoDB 存储引擎2.2 MyISAM 存储引擎2.3 Memory 存储引擎2.4 存储引擎选择2.5 MySQL安装Linux版本 3. 索引3.1 索引结构3.1.1 B tree3.1.2 B tree3.1.3 Hash 3.2 索引分类3.2.1 思考题 3.3 索引语法3.4 SQL性能分…

docker jenkins 安装

使用 Docker 安装 Jenkins 并实现项目自动化部署-阿里云开发者社区 (aliyun.com)https://developer.aliyun.com/article/892646#slide-1运行镜像命令: docker run \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -d \ -v /home/admin/SoftWare/volume/jenkin…

CSS 内容盒子

这章比较重要,会不断更新❗ 文章目录 内容盒子开发者工具的使用border 边框padding 内边距margin 外边距盒子整体尺寸元素默认样式与CSS重置元素分类块级标记行级标记行内块标记 display样式内容溢出裁剪掉溢出部分滚动条 圆角边框 border-radius 内容盒子 提示&am…

云原生之使用Docker部署Firefox浏览器

云原生之使用Docker部署Firefox浏览器 一、Firefox浏览器介绍1.1 Firefox简介1.2 Firefox特点 二、本次实践介绍2.1 本地环境规划2.2 本次实践简介 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Firefox镜像五、部署Firefox5…

M7615DNA M7455DNF M7675DXF安装网络打印驱动方法

注意:网络驱动安装首先需要把打印机接入到网络设备上,例如接到路由器或者交换机。 1、访问联想官方网站下载驱动或者使用机器随机自带光盘。 2、下载驱动后解压,如图: 3、运行解压后驱动包内的install文件夹里的相应打印机型号&am…

【云原生】软件架构的演进以及各个架构的优缺点

文章目录 1. 什么是软件架构?2. 单机架构3. 应用数据分离架构4. 应用服务集群架构5. 读写分离架构6. 冷热分离架构7.垂直分库架构8. 微服务架构9. 容器编排架构10. 小结 1. 什么是软件架构? 软件架构是指在设计和构建软件系统时,对系统的组织结构、组件、模块、接…

数据竞赛复现代码的 Docker 镜像制作指南

文章目录 一、前言二、主要内容1. Docker Desktop?2. VMware17 CentOS Linux Xshell 三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 主要的要求: 通过 Dockerfile 文件创建 Docker 镜像,数据…

Python初学-记录与Java基本语法不同的地方

这里写目录标题 条件与循环If条件语句for循环while循环 数学复数随机数 序列字符串列表与元组一些方法: 字典 条件与循环 If条件语句 在python里基础结构为if,elif,else,并且执行语句是在冒号后面的,Java是if&#x…

(小程序)基于uniapp+vite4+vue3搭建跨端项目|uni-app+uview-plus模板

(小程序)基于uniappvite4vue3搭建跨端项目|uni-appuview-plus模板 版本信息: HBuilderX: 3.8.4 Vite: 4.2.1 uView-Plus: 3.1.31一、创建uniappvue3项目: 点击编辑器的文件 > 新建 > 项目(快捷键CtrlN) 2.选择uni-app项目&…

一点基础、但一直没分清的概念2023/06/28

文章目录 1.export和export default的区别2.npm和cnpm的区别3.npm run dev/serve的区别4.slice、splice和split的区别 1.export和export default的区别 模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输…