随机种子 3407 is all you need

news2024/12/24 9:42:58

eab2addb5d880a2353678f86ebcbf309.png

文 | 天于刀刀

你最常用的随机种子是哪个?

在刀刀的团队里,关于随机种子的设置主要分化为两派~

玄学派,可能设置为自己的纪念日,又或者是星座预测中的本月幸运数字;

以及,自然派,随机种子是啥其实无所谓,1234或者今天的日期都可以。

深度学习知名学者 ChatGPT 也如下所说:

a93cd858a738a2c2b69d7affae806ee1.jpeg

可是近日我看到了一篇叫做《Torch.manual_seed(3407) is all you need》[1] 的论文,当时看到这个标题的时候我简直眼前一黑。

这篇论文研究了随机种子在深度学习用于计算机视觉时对精度的影响。作者对 CIFAR 10 和 ImageNet 两个数据集进行了实验,结果发现即使方差不是很大,还是很容易找到一个比平均值更好或更差的种子。

4dc74fc1a45b71330b8d9f3f923d1ef8.jpeg9776947a993c2e63752097d09da99e17.jpeg

如图所示,作者在 CIFAR10 上对500个不同的种子进行训练,其中黑线是平均值,暗红色表示标准差,浅红色表示最小值和最大值区间。

可以看到,经过 epoch 25 后,精度几乎没有增加,这意味着模型收敛了。但是浅红色的区间范围没有得到减少,意味着随着模型收敛,随机种子的不同依旧会造成最大值和最小值之间巨大的差别。

同时作者还在文中分析道:由于都是基于同一个预训练模型,因此随机种子的效果只和分类层的初始化以及后续的优化过程有关。

让我们先抛开作者在文中申明的 limitation 不谈,他的这篇文章行文结构还挺像模像样的。

(在这里我指的是抛开他只进行了少量训练,且模型最终的结果完全落后于 SOTA 的事实不谈,单独只看他发文章的科研思想

也就是说,随机种子的选择对结果的影响很大?

虽说觉得有点不靠谱,但事不宜迟,我速速打开了算力平台,新开启了一个训练任务,设置 seed 为3407之后跑了起来。

结果竟然直接 early stop 了!

当我兴致勃勃地打开训练报告时,结果发现关键指标几乎没什么变化,也根本没有发现作者所说的“模型效果获得较大提升”的现象。

结合其缩减了大约 50% 的训练时间的效果(只做了一次实验,无统计学意义),只能说改变随机种子不是完全没作用,但这作用着实不多。

40d2a73c48fe4557fdb3089461483f5a.png

这篇论文让我感到很疑惑,难道我们真的需要研究随机种子的影响吗?

在我的理解中,随机种子的作用主要是为了保证在多次实验中可以重现结果,而不是对结果产生显著影响。

我甚至认为作者是一个行为艺术者,他在嘲讽目前学术界刷论文、比赛刷榜中频频出现的过拟合乱象。

有许多研究者花费了大量的时间精力和算力去撞随机种子,故意过拟合测试集以此来得到 sota 结果,这种行为不能说是毫无意义,只能讲是步入歧途。

作为一名炼丹师,对于随机种子的修改只能是一种缺乏统计学基础知识的表现。

可是转念一想,作为一名算法工程师在工作中总会遇到无论如何绞尽脑汁也难以提分的情况。

在时间紧迫来不及清洗数据、添加数据以及干一些脏活的情况下,面对可解释性极差的 AI 魔法,也许我们选择更改随机种子的时候,心里更多想的是需要一个新的“运气”。

说不定,说不定这样就能提一点点分能让我交差了呢?

作为一名学生,也许我能获得宽裕的时间和资源去支持我按期完成学术研究;

可作为一名员工,也许我在大多数时候只能利用有限的资源去追赶去补完老板口中那个无限的大饼。

“人类是存在极限的”,有的时候并不是我不知道这样没用,但我又能有什么办法呢?

换一个 seed 吧,这就是我最后的波纹了。

# 计算天干地支获取随机幸运种子 [2]
$ pip install randluck
$ python
>>> import randluck
>>> random_seed = randluck.get_random_seed(strategy='bazi')
de767d3709bf87d4087bf83c5dc6308c.png
17260a4b78077f922c79db098ea7560c.png

卖萌屋作者:天于刀刀

注重 WLB 的工业界反卷斗士,未进化的 NLP 咸鱼一条。专注于研究在各个场景中算法模型的落地情况,希望自己编写的算法有朝一日可以改变世界。目前的兴趣点在于:假新闻检测、深度学习模型可解释性等。

作品推荐

1.腾讯薪酬改革来了!晋升≠加薪?员工到底为何工作?

2.从 Google AI 离职了,这里让我爱不起来

3.百万悬赏!寻找“模型越大,效果越差”的奇葩任务!

4.想通这点,治好 AI 打工人的精神内耗

fefff92a241ed778628254c67e104c12.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

 095a5a7b3697d768440788a4616e5b44.png

[1]torch.manual.seed(3407) is all you need: On the influence of random seeds in deep learning architectures for computer vision, David Picard, https://arxiv.org/abs/2109.08203

[2]Random Luck 基于中国传统玄学自动获取随机种子, https://github.com/Spico197/random-luck

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

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

相关文章

Java项目:springboot健身房管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为后台管理系统; 主要功能如下: 管理员登录模块 会员管理模块 教练管理模块 课程管理模块 器材管理模块 物品遗失…

一些常见的移动端适配方案,你了解吗?

前言 移动端设备的尺寸很多,而 UI 设计稿一般只会基于一个尺寸(一般是 375px 或 750px )进行设计。 目前移动端适配方案有多种,本文将介绍一些具有代表性的适配方案。 媒体查询 media CSS3 中的媒体查询属性 media 分别为不同…

量子计算(十七):量子计算机硬件

文章目录 量子计算机硬件 一、量子芯片支持系统 二、量子计算机控制系统 量子计算机硬件 量子计算机的核心——量子芯片,具有多种不同的呈现形式。绝大多数量子芯片,名副其实地,是一块芯片,由集成在基片表面的电路结构构建出包…

关于 Camera 开始 Tuning 时的一些注意事项

1、问题背景: 最近有调试一个体感游戏机上带 Camera 的项目,原定搭配 ov13855 这颗 sensor, 但由于各种各样的问题,导致做了很多无用功,且各种延期。 本文主要总结下此次项目遇到的问题,及产品开始 tuning 时的一些注意…

【折腾服务器 4】ESXi 中 Ubuntu 安装 NPS 客户端 ( NPC )

Catch Up 书接上回,上一章中,群晖已经能定期给 Windows 物理机服务器做备份了,但是依然无法从外网访问服务器上的内容,本篇讲述如何在 Ubuntu 中安装 NPS 客户端,也就是所谓的 NPC ( Client )。 Chapter 1 准备一个 …

C#语言实例源码系列-实现FTP下载文件

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

SpringSecurity(十)【CSRF 漏洞保护】

十、CSRF 漏洞保护 简介 CSRF(Cross-Site Request Forgery 跨站请求伪造),也可称为一键式攻击(one-click-attack)通常缩写为 CSRF 或者 XSRF。CSRF 攻击是一种挟持用户在当前已登录的浏览器上,发送恶意请求…

Python绘制地磁场

文章目录简介磁场绘制简介 为国际参考磁场对Python的封装,可通过经纬高度以及时间来计算地磁场强度,使用方法简单粗暴,如下 import pyIGRF pyIGRF.igrf_value(lat, lon, alt, date)参数含义为 lat 纬度lon 经度alt 海拔date 日期&#xff…

vuejs中组件的两种不同的编写风格-选项式API及组合式API

前言随着vue3的逐渐稳定,以及周边生态的完善,现在vue3已经成为默认的使用方式了的所以,对于一个前端开发者,Vue2与Vue3都得要会,在vue3中新增很多东西,比如:Fragment,Teleport,Suspense,也去掉了vue2中一些特性,比如:移除keyCode支持作为v-on的修饰符等在编程风格上也有一些区别…

Java项目:springBoot+Vue汽车销售管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目基于spring boot以及Vue开发,为前后端分离的项目。针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、财务报表等…

【Python百日进阶-数据分析】Day138 - plotly甘特图:px.timeline()

文章目录一、语法二、参数三、返回值四、实例4.1 带有 plotly.express 的甘特图和时间表4.1.1 普通甘特图4.1.2 px.timeline 的离散颜色4.1.3 px.timeline 的连续颜色4.1.4 同一水平线上有多个条4.1.5 Dash中使用甘特图一、语法 甘特图是一种条形图,用于说明项目进…

【C++高阶数据结构】并查集

🏆个人主页:企鹅不叫的博客 ​ 🌈专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接:代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

Linux之top命令详解

Linux之top命令详解 一、简单介绍 top是Linux性能分析工具,显示系统占用资源情况,和windows的任务管理器一样。top动态显示进程暂用资源情况,top对系统处理器的状态监视,它将显示CPU任务列表,按照CPU使用、内存使用和…

You are not allowed to create a user with GRANT

8.0之后的mysql不支持授权的时候就进行用户创建,所以创建之后才能授权; USE mysqlSELECT USER, PASSWORD, HOST FROM USER;SELECT USER ,grant_priv FROM USERCREATE USER zjy IDENTIFIED BY 123456; #host默认是%GRANT ALL PRIVILEGES ON *.* TO zjy% MySql-Ser…

【正点原子I.MX6U-MINI移植篇】rootfs移植过程详解(三)

Linux三巨头己经完成了2个了,就剩最后一个rootfs(根文件系统)了,根文件系统的组成以及如何构建根文件系统是Liux移植的最后一步,根文件系统构建好以后就意味着我们己经拥有了一个完整的、可以运行的最小系统。以后我们…

智慧工地车辆未冲洗抓拍系统 opencv+yolo

智慧工地车辆未冲洗抓拍系统利用opencvyolo网络深度学习架构模型对现场画面中车辆的冲洗情况实现智能识别。OpenCV基于C实现,同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Python API,结合了OpenCV CAPI和Python语言的最佳特性。O…

微信防撤回功能修改

今天无意之中看到了一个帖子,谈到了有关微信消息撤回的。突发奇想实现一下,以后就不怕错过朋友的消息了。 首先介绍一下基本思路,由于微信采用的是CS端原理,所有的数据请求均通过服务器,客户端只是响应指令而已。 A向…

实验三:自主存取控制实验

【实验目的】 掌握自主存取控制权限的定义和维护方法。掌握在ORACLE数据库中定义用户、角色,分配权限给用户、角色,回收权限,以相应用户登录数据库验证权限分配是否正确的方法。 【实验内容】 设有一个企业,由总裁负责管理采购、…

【Pandas指南】Series

Pandas数据结构简介 - Series 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 笔记托管:https://gitee.com/DingJiaxiong/machine-learning-study 下面将从对 pandas 中的基本数据结构进行快速…

Git Bash Here和RStudio软件的问题解决

Git Bash Here和RStudio软件的问题解决 文章目录Git Bash Here和RStudio软件的问题解决0、 写在前面1、Git软件在任务栏图标空白2、RStudio软件2.1 警告信息InormalizePath(path.expand(path),winslash,mustWork)2.2 incomplete final line found by readTableHeader on报错3、…