【Machine Learning Q and AI 读书笔记】- 04 彩票假设
Machine Learning Q and AI
中文译名 大模型技术30讲,主要总结了大模型相关的技术要点,结合学术和工程化,对LLM从业者来说,是一份非常好的学习实践技术地图.
本文是Machine Learning Q and AI
读书笔记的第4篇,对应原书第四章 《彩票假设》.
TL;DR
本文记录彩票假设,以及相关的权重剪枝技术。
彩票假设
According to the lottery ticket hypothesis, a randomly initialized neural network can contain a subnetwork that, when trained on its own, can achieve the same accuracy on a test set as the original network after being trained for the same number of steps.
根据彩票假设理论,一个随机初始化的神经网络中可能包含一个子网络,当这个子网络单独进行训练时,可以在与原网络相同数量的训练步数后,在测试集上达到与原网络相同的准确率。
训练过程
We start with a large neural network (1) that we train until convergence (2), which means that we put in our best efforts to make it perform as best as possible on a target dataset – for example, minimizing training loss and maximizing classification accuracy. This large neural network is initialized as usual using small random weights.
我们从一个大型神经网络(1)开始,将其训练到收敛(2),这意味着我们尽最大努力使其在目标数据集上表现得尽可能好——例如,最小化训练损失并最大化分类准确率。这个大型神经网络是按照常规方法使用小的随机权重进行初始化的。
Next, we prune the neural network’s weight parameters (3), removing them from the network. We can do this by setting the weights to zero to create sparse weight matrices. Which weights do we prune? The original lottery hypothesis approach follows a concept known as iterative magnitude pruning, where the weights with the lowest magnitudes are removed in an iterative fashion.
接下来,我们对神经网络的权重参数进行剪枝(3),将其从网络中移除。我们可以通过将权重设置为零来创建稀疏权重矩阵。那么,我们剪枝哪些权重呢?原始的彩票假设方法遵循一种称为迭代幅度剪枝的概念,即通过迭代方式移除幅度最小的权重。
意义和局限性
However, the good news is that winning tickets do exist, and even if it’s currently not possible to identify these without training their larger neural network counterparts, they can be used for more efficient inference after training.
然而,好消息是“中奖彩票”确实存在,即使目前无法在不训练其更大的神经网络对应物的情况下识别它们,但它们在训练后可以用于更高效的推理。
拓展阅读
笔者速读了彩票假设的原论文: The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks ,
摘要
Neural network pruning techniques can reduce the parameter counts of trained networks by over 90%, decreasing storage requirements and improving computational performance of inference without compromising accuracy. However, contemporary experience is that the sparse architectures produced by pruning are difficult to train from the start, which would similarly improve training performance.
We find that a standard pruning technique naturally uncovers subnetworks whose initializations made them capable of training effectively. Based on these results, we articulate the “lottery ticket hypothesis:” dense, randomly-initialized, feed-forward networks contain subnetworks (“winning tickets”) that - when trained in isolation - reach test accuracy comparable to the original network in a similar number of iterations. The winning tickets we find have won the initialization lottery: their connections have initial weights that make training particularly effective.
We present an algorithm to identify winning tickets and a series of experiments that support the lottery ticket hypothesis and the importance of these fortuitous initializations. We consistently find winning tickets that are less than 10-20% of the size of several fully-connected and convolutional feed-forward architectures for MNIST and CIFAR10. Above this size, the winning tickets that we find learn faster than the original network and reach higher test accuracy.
神经网络剪枝技术可以将训练后的网络参数数量减少超过90%,在不降低准确率的情况下,降低存储需求并提高推理的计算性能。然而,当下的经验表明,剪枝产生的稀疏架构从一开始就很难训练,而这本可以类似地提升训练性能。
我们发现,一种标准的剪枝技术自然地揭示了那些由于其初始权重而能够有效训练的子网络。基于这些结果,我们提出了“彩票假设”:密集的、随机初始化的、前馈网络中包含子网络(“中奖彩票”),这些子网络在单独训练时,能够在类似的迭代次数内达到与原始网络相当的测试准确率。我们发现的中奖彩票赢得了初始化的“彩票”:它们的连接具有初始权重,使得训练特别有效。
我们提出了一种识别中奖彩票的算法,并通过一系列实验来支持彩票假设以及这些幸运的初始化的重要性。我们始终能够找到小于10%-20%的全连接和卷积前馈架构(针对MNIST和CIFAR10)的中奖彩票。在超过这个比例的大小时,我们发现的中奖彩票比原始网络学习得更快,并且能够达到更高的测试准确率。
主要工作
-
中奖票据的发现:研究表明,通过剪枝(pruning)技术,可以发现那些在训练初期就具备良好学习能力的稀疏子网络,这些子网络在一定条件下能够达到与原始网络相当的测试准确率。
-
提高训练性能:这些中奖票据能够在较少的迭代次数内达到与原始网络相似的准确率,且在学习速度上超越原始网络。这一发现暗示通过较早的剪枝和训练策略,可以有效提升训练性能。
-
设计新网络:研究表明,中奖票据展示了一些稀疏架构和初始化的组合特性,这些特性有助于提高学习效果。这为新架构和初始化方案的设计提供了灵感,鼓励探索那些在不同任务上同样有效的策略。
总结
本笔记简要记录彩票假设和训练的方法,并附上原论文的主要工作。
相关文章:
【Machine Learning Q and AI 读书笔记】- 04 彩票假设
Machine Learning Q and AI 中文译名 大模型技术30讲,主要总结了大模型相关的技术要点,结合学术和工程化,对LLM从业者来说,是一份非常好的学习实践技术地图. 本文是Machine Learning Q and AI 读书笔记的第4篇,对应原…...
linux下安装ollama网不好怎么办?
文章目录 前言kkgithub下载脚本,而不是直接运行修改脚本修改权限还是不行?前言 今天想在linux上面更新一下ollama,于是去到官网: https://ollama.com/download/linux linux下安装ollama还是挺简单的: curl -fsSL https://ollama.com/install.sh | sh我也是特别嗨皮地就…...
(A题|支路车流量推测问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…...
RDMA高性能网络通信实践
RDMA高性能网络通信实践 一、背景介绍二、方法设计A.实现方案B.关键技术点三、代码及注释四、注意事项一、背景介绍 远程直接内存访问(RDMA)技术通过绕过操作系统内核和CPU直接访问远程内存,实现了超低延迟、高吞吐量的网络通信。该技术广泛应用于高性能计算、分布式存储和…...
【LeetCode Hot100】图论篇
前言 本文用于整理LeetCode Hot100中题目解答,因题目比较简单且更多是为了面试快速写出正确思路,只做简单题意解读和一句话题解方便记忆。但代码会全部给出,方便大家整理代码思路。 200. 岛屿数量 一句话题意 求所有上下左右的‘1’的连通块…...
图论---有向图的强连通分量(Tarjan求SCC)
强连通分量作用:有向图——>(缩点)有向无环图(DAG) 缩点:将所有连通的分量缩成一个点。 有向无环图作用/好处:求最短路/最长路 可以递推,按照拓扑图从前往后递推. x 是否在某个…...
2025年- H17-Lc125-73.矩阵置零(矩阵)---java版
1.题目描述 2.思路 (1)计算矩阵的行数 (2)计算矩阵的列数 (3)设计一个行列的bool数组 (4)遍历矩阵(二维数组),如果遇到元素0,则把…...
【信息系统项目管理师-论文真题】2023下半年论文详解(包括解题思路和写作要点)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题(第一批):论信息系统项目的干系人管理1、写作要点2、解题思路项目干系人管理的过程和执行要点项目中所有干系人如何进行分类管理?试题(第二批):论信息系统项目的工作绩效域1、写作要点2、解题思路绩…...
分享5款开源、美观的 WinForm UI 控件库
前言 今天大姚给大家分享5款开源、美观的 WinForm UI 控件库,助力让我们的 WinForm 应用更好看。 WinForm WinForm是一个传统的桌面应用程序框架,它基于 Windows 操作系统的原生控件和窗体。通过简单易用的 API,开发者可以快速构建基于窗体…...
微软推出数款Phi 4“开放式”人工智能模型
微软周三推出了几款新的“开放式”人工智能模型,其中功能最强大的模型至少在一个基准测试上可与 OpenAI 的 o3-mini 相媲美。所有新的授权模型——Phi 4 mini reasoning、Phi 4 reasoning 和 Phi 4 reasoning plus——都是“推理”模型,这意味着它们能够…...
Python实例题:Python实现Python解释器
目录 Python实例题 题目 实现思路 代码实现 代码解释 词法分析器(Lexer): 词法单元类(Token): 抽象语法树节点类(AST): 语法分析器(Parserÿ…...
【IP101】图像滤波技术详解:从均值滤波到高斯滤波的完整指南
🌟 图像滤波魔法指南 🎨 在图像处理的世界里,滤波就像是给图片"美颜"的魔法工具。让我们一起来探索这些神奇的滤波术吧! 📑 目录 1. 均值滤波:图像的"磨皮"大法2. 中值滤波࿱…...
信息系统项目管理师-软考高级(软考高项)2025最新(六)
个人笔记整理---仅供参考 第六章项目管理概论 6.1PMBOK的发展 6.2项目基本要素 组织过程资产指的是项目上的,国产数据库的使用----安保和安全指的是环境因素 6.3项目经理的角色 6.4价值驱动的项目管理知识体系...
算法-堆、排序算法、矩阵乘法
满二叉树、完全二叉树 二叉树遵循下面的规律,当前节点i(但是其实就是逐级填充): 左节点为 ix2右节点为 i*21父节点为 [i/2] 向下取整 使用数组表示二叉树: (二叉树的深度自上而下,高度自下…...
Java 进阶--集合:告别数组的“僵硬”,拥抱灵活的数据容器
作者:IvanCodes 发布时间:2025年5月1日🫡 专栏:Java教程 大家好!👋 还记得我们上次聊的数组 (Array) 吗?它很基础,性能也不错,但有个致命的缺点:长度一旦定…...
Python 数据智能实战 (6):用户评论深度挖掘
写在前面 —— 从繁杂评论到精准洞察:主题发现与情感趋势分析,驱动产品优化与体验提升 在上篇内容中,我们学习了如何利用 LLM 提升用户分群的精度,以及如何超越传统购物篮分析,挖掘商品间的语义关联。今天,我们将聚焦于电商领域 价值密度最高 的非结构化数据之一——用…...
podman/docker国内可用的docker镜像源(2025-05)
一、添加Docker国内镜像 1、修改 /etc/docker/daemon.json 设置 registry mirror,具体命令如下: sudo vim /etc/docker/daemon.json <<EOF {"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me",&q…...
机器人--底盘
机器人底盘 底盘是机器人传感器和机器人主机的载体,也是移动机器人的基本形式。移动机器人通常可以采用轮式和足式进行移动。 也就是机器人底盘可以分为轮式底盘和足式底盘。 足式底盘控制复杂,这里只讨论轮式底盘。 底盘运动学模型 轮式机器人底盘按…...
Seata服务端同步提交事务核心源码解析
文章目录 前言一、doGlobalCommit(同步提交)2.1、closeAndClean()2.2、changeGlobalStatus2.3、doGlobalCommit2.3.1、findGlobalSession 总结 前言 本篇介绍Seata服务端TC如何驱动RM提交事务。 一、doGlobalCommit(同步提交) doG…...
2025五一杯B题五一杯数学建模思路代码文章教学: 矿山数据处理问题
完整内容请看文章最下面的推广群 问题1. 根据附件1中的数据和,建立数学模型,对数据A进行某种变换,使得变换后的结果与数据尽可能接近。计算变换后的结果与数据的误差,并分析误差的来源(如数据噪声、模型偏差等…...
C++11新特性_自动类型推导
decltype 和 auto 均为 C 里用于类型推导的关键字,不过它们在使用方式、推导规则和应用场景上存在显著差异。下面为你详细介绍它们的区别: 1. 推导依据 auto:它依据变量的初始化表达式来推导类型。也就是说,auto 定义的变量必须有…...
【AI论文】ReasonIR:为推理任务训练检索器
摘要:我们提出了ReasonIR-8B,这是第一个专门针对一般推理任务进行训练的检索器。 现有的检索器在推理任务上表现出的收益有限,部分原因是现有的训练数据集侧重于与直接回答它们的文档相关的简短事实查询。 我们开发了一个合成数据生成管道&am…...
嵌入式AI还是一片蓝海
发现其实还是挺多人关注嵌入式和人工智能交叉领域的,随便一个问题,浏览量就27万了,但是这方面的内容确实少得可怜……所以干脆我自己来补点干货。 推荐一本最近很热门的新书——《边缘人工智能:用嵌入式机器学习解决现实问题》。 …...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます ています & てあります
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます &ています & てあります 。 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)&#x…...
CMake管理外部依赖的模块
在 CMake 中,FetchContent 和 ExternalProject 都是管理外部依赖的模块,但它们的 设计目标、使用场景和执行时机 有本质区别。以下通过对比表格、代码示例和场景分析详细说明它们的区别。 核心区别对比表 特性FetchContentExternalProject执行阶段配置阶…...
[计算机科学#7]:CPU的三阶段,取指令、解码、执行
【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要:本文详细介绍了CPU的工作原理,包括其结构…...
向量数据库和关系型数据库的区别,优点,缺点和典型应用场景
向量数据库与关系型数据库的全面对比 向量数据库和关系型数据库是两种截然不同的数据管理系统,各自针对特定的数据模型和查询模式进行了优化。随着人工智能和大数据技术的发展,向量数据库作为新兴的数据库类型,在处理非结构化数据方面展现出…...
《跨越边界:探索跨端框架中通用状态管理方案设计》
一款应用往往需要在多个终端,如Web、移动端、桌面端等同时运行,以满足用户多元化的使用场景。在这复杂的跨端开发领域中,状态管理堪称关键枢纽,直接关乎应用的性能、稳定性以及开发与维护的效率。如何设计一套通用的状态管理方案&…...
PHP之CURL通过header传参数及接收
一、传参数之冒号 注意一点,这里的header数据不是KV结构,而是一个一维数组。 看清楚,注意一点,是这样的结构: $ch curl_init(); $headers [X-Custom-Header: value123,Authorization: Bearer your_token_here // …...
【C++】brpc安装
brpc安装教程 环境:Ubuntu24.04 1 简单安装 即安装到系统环境下,依赖也是依赖apt安装。 官方参考教程 依赖准备 安装依赖: sudo apt-get install -y git g make libssl-dev libgflags-dev libprotobuf-dev libprotoc-dev protobuf-com…...
从0开始的c++知识讲解之字符串(1)
作者作为新手,对于知识的讲解也是边输出内容也是边学习,如有缺陷,请多海涵,但同样,我会帮助你从新手视角看到新手的疑惑,并帮助你解决此疑惑 一,开宗明义,立意先行 string在C里有可…...
Linux 第六讲 --- 工具篇(一)yum/apt与vim
前言: 经过前五讲对Linux基础指令与权限系统的系统学习,相信你已经能在命令行中自如地穿梭于文件丛林,精准调配权限密钥。但真正的Linux玩家,绝不会止步于基础操作的重复劳作。 从今天起,我们将打开Linux的"瑞士…...
xml 和 yaml 的区别
XML 和 YAML/YML 是两种常用的数据序列化格式,用于存储和读取结构化数据。以下是它们的核心区别和使用方法: 1. 格式特性对比 特性XMLYAML/YML语法复杂度标签嵌套,结构严格缩进分层,更简洁可读性较低(冗余标签&#…...
1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版
五一特别制作 (主要更新简述) 全程由最新YCDISM2025装载制作 1、可选功能: 添加: Microsoft-Windows-LanguageFeatures-Basic-en-us-Package Microsoft-Windows-LanguageFeatures-OCR-en-us-Package 2、功能增强&a…...
【C++】类和对象(中)——默认成员函数详解(万字)
文章目录 上文链接类的默认成员函数1. 构造函数(1) 什么是构造函数(2) 构造函数的使用 2. 析构函数(1) 什么是析构函数(2) 析构函数的使用(3) 小练习 3. 拷贝构造函数(1) 什么是拷贝构造函数(2) 拷贝构造函数的使用 4. 赋值运算符重载(1) 运算符重载(2) 运算符重载的简单应用(3…...
Ubuntu18 登录界面死循环 Ubuntu进不了桌面
今天碰到这个问题,真是把我恶心到了 网上很多方法都不靠谱,最后我还是自己摸索出一个方法 先进入终端 开机后在登陆界面按下shift ctrl F1(或者F2,一直按)进入tty命令行终端登陆后输入(本人的用户名为hpÿ…...
caffe适配cudnn9.6.0(ai修改代码踩坑)
caffe适配cudnn:https://github.com/dyc2424748461/caffe (测试一下,成没成,反正我看到它用gpu了😶) 因为突发奇想,想要玩easymocap,先是简单使用media跑通了一下,然后过…...
【MySQL数据库】视图
1,视图的基本介绍 视图是一个虚拟表,其内容由查询定义。与真实表一样的是,视图包含带有名称的列和行数据;与真实表不一样的是,视图本身并不在数据库中存储数据。视图的数据变化会影响到基表,基表的数据变化…...
Linux日常使用与运维的AI工具全景调研:效率革命的终极指南
Linux日常使用与运维的AI工具全景调研:效率革命的终极指南 引言:当Linux遇上AI,运维世界正在发生什么? 作为一名Linux系统管理员,你是否还在为以下问题困扰: 深夜被报警短信惊醒,却要手动排查复杂的系统故障?面对海量日志文件,像大海捞针一样寻找关键错误信息?重复…...
Linux——线程(3)线程同步
一、线程同步的引入 通过上面的抢票系统我们发现,有的线程,进行工作(挂锁),当其马上结束工作(解锁),发现外面有很多线程在排队等着加锁执行任务,这个线程解锁后就立马给…...
Redis实现分布式锁
分布式锁是分布式系统中解决资源竞争问题的重要机制。Redis凭借其高性能和原子性操作,成为实现分布式锁的热门选择。本文将详细介绍如何使用Java和Redis实现分布式锁,并重点讲解如何通过Lua脚本保证锁操作的原子性。 一、分布式锁的基本要求 一个可靠的…...
JavaScript如何实现类型判断?
判断一个数据的类型,常用的方法有以下几种: typeofinstanceofObject.prototype.toString.call(xxx) 下面来分别分析一下这三种方法各自的优缺点 typeof typeof的本意是用来判断一个数据的数据类型,所以返回的也是一个数据类型。但是会遇到下…...
Spring MVC 与 FreeMarker 整合
以下是 Spring MVC 与 FreeMarker 整合的详细步骤,包含配置和代码示例: 1. 添加依赖 在 pom.xml 中引入 Spring MVC 和 FreeMarker 的依赖(以 Maven 为例): <!-- Spring Web MVC --> <dependency><gr…...
设计模式简述(十五)观察者模式
观察者模式 描述基本组件使用 描述 观察者模式,顾名思义就是一个对象观察着其他对象,一旦被观察的对象发生变化时,观察者对象也要做出相应动作。 其中,被观察者持有观察者的引用。由观察者主动注入被观察者内(有点像…...
用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]
目录 前言一、现实场景1.1 手机相册的照片管理1.2 照片分类的需求 二、技术映射2.1 数组与照片分类的对应关系2.2 数组索引与照片标签的类比 三、知识点呈现3.1 数组的基本概念3.2 数组在编程中的重要性3.3 数组的定义与初始化3.4 数组的常见操作(增删改查ÿ…...
字符串格式漏洞-[第五空间2019 决赛]PWN5
之前其实也写了一篇,现在再来看。又有新的收获了,于是记录一下 前置知识 格式化字符串漏洞详解-CSDN博客 讲得很清楚,我就不照猫画虎了 实践 main函数 首先先办法泄露我们输入的地址 from pwn import * elfpathlevel0 # ioprocess(elfp…...
数据结构学习之顺序表
在C语言学习到一定阶段之后,接下来我们就进入到了数据结构的部分内容。 目录 数据结构与线性表 顺序表 顺序表分类: 接下来我们要写一段代码实现动态顺序表。 首先我们需要准备三个文件: 1.接下来我们要定义一个数据表 2.当创建号我们的…...
AWS CloudFront全球加速利器:解析出海业务的核心优势与最佳实践
对于寻求全球化发展的企业而言,AWS CloudFront凭借其强大的全球基础设施和边缘计算能力,成为加速出海业务的关键工具。本文将深入剖析CloudFront的核心优势,并探讨其如何助力企业突破跨境业务瓶颈,同时符合SEO优化策略,…...
Flowable7.x学习笔记(十六)分页查询我的待办
前言 我的待办具体区分为3种情况,第一个就是办理人指定就是我,我可以直接审批;第二种就是我是候选人,我需要先拾取任务然后再办理;第三种是我是候选组,我需要切换到指定的角色去拾取任务再办理。如果任务已…...
Annotate better with CVAT
WIN10 配置标注环境 WSL + Docker Desktop 安装手册 https://docs.cvat.ai/docs/administration/basics/installation/ hebing@hello:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE cvat/ui …...