《动手做科研》09. 万事具备,只欠行动

news2025/1/13 10:08:00

地址链接:《动手做科研》09. 万事具备,只欠行动
欢迎加入我的知识星球,定期分享AI论文干货知识!

导读: 当你坚持学习到这一步,并且之前的内容都有跟着操作,那么恭喜你,你已经在脑力层面消化了最难的知识,接下来就是需要你行动的时候了。

换句话说接下来就是体力活了,因为路径上要踩的坑你已经趟过一遍了。不要小看这个"体力活",因为很多人就倒在了执行力不够,导致即使知道方法但不愿意去动手,最终学无所获。

这一章节可以理解为衔接"学习研究方法"和"学习论文写作"的桥梁

本教程目标

  1. 遇到所谓的“失败”怎么办?心理建设:不可能事事一帆风顺,出现没有效果的情况太多了。
  2. 我尝试的方法没有效果怎么办?
  3. 做实验到什么地步就可以开始构思论文了?

本教程内容

经过前面的学习,想必大家已经找到了自己的方向,也有了相关领域的实验经验,根据找创新点的教程,想必也做了很多的实验。但是不是每一次实验都能成功,因此找到实验不work的原因,才能有效地改进当前的方法

分析原因,最重要的步骤就是分析实验结果

不分析实验结果的后果:Project做得很慢,很可能不成功,或者被scoop,导致之前投入的时间白费。
在这里插入图片描述

如何找到当前实验不work的原因?

在这里插入图片描述

  1. 搜集当前实验的failure cases(效果不好的实验结果、表面的实验现象)。

  2. 搜集当前实验的good cases(效果好的实验结果),或者找到一个能work的实验版本,如何找到能work的实验版本,有两种做法:

    • 把任务变得简单:实验数据的复杂度(比如:大场景 → 小场景,复杂光照 → 简单光照,复杂材质 → 简单材质)、task setting(比如:泛化 → 拟合,稀疏视角 → 稠密视角,RGB监督 → RGB-D监督,降低数据量)
    • 逐个去掉自己加的算法改进
  3. 分析“work的实验版本”和“不work的实验版本”之间存在performance gap的技术原因(分析good cases和failure cases之间存在performance gap的技术原因)。

    如果是“work的实验版本”和“不work的实验版本”,要怎么做

    • 在work的实验上逐步加东西,直到变得不work,从而定位导致实验不work的表面原因,具体做法有两种:

      • 把任务变得复杂

      • 加算法改进

    一次只加一个因素,找到导致不work的因素(该因素越单一越好),高水平科研工作者的经验:As you do experiments, only change one thing at a time, so you know what the outcome of the experiment means.

    • 找到单一的导致不work的因素以后,分析技术原因。列出尽量多的可能性,把这些可能性排个序,具体做法:

      • 可能是代码有bug,如何检查代码的bug?(这个bug可能是个人对算法的理解不到位,此时需要去看论文或者原理性的东西去理解透彻了再回去检查代码)

        • 逐行检查代码的输出,验证输出的结果和自己的预期是否一样

        • 检查数据的shape

        • 可视化代码输出的结果来验证

      • 可能是算法确实有问题,算法有问题的四种可能:

      - 超参没设置错误
      - 算法缺了几个tricks
      - 数据不合适
      - 算法本身确实不行。**如何寻找算法的问题,一个有效的方法是看相关的论文为什么可以work,看他们使用了什么tricks。**
      

相关论文指的是使用了相近的方法模块/insight、或者解决相近的technical challenge的论文。

    💡 有些很牛逼的算法,单独自己的时候不work,需要加一些tricks才work。(比如NeRF + positional encoding)

如果是“good cases”和“failure cases”,要怎么做

  1. 找到good cases和failure cases对应的数据,分析它们的数据特点。是数据上的哪一方面的差异导致了performance gap?

  2. 分析数据差异背后的技术原因是什么?列出尽量多的可能性,把这些可能性排个序,具体做法:

    • 可能是代码有bug
    • 可能是算法确实有问题,算法有问题的四种可能(如上文):
      • 超参没设置错误
      • 算法缺了几个tricks,导致在这个数据上不work
      • 算法本身确实不行,导致在这个数据上不work
      • 数据太难了,可以换个简单的数据
  3. 实验验证上一步中提出的技术原因,一切的猜测最终都要由实验验证,针对导致failure cases的技术原因,提出解法。

我觉得最为重要的一点是,要快速迭代。

我们做科研,其实并不是每个想法都正确,我们的 idea 总会出错,而且大多数人的大多数idea 都是不 Work 的。我之前有个规律,就是把我的所有结果都写到Google Spreadsheet 里面,然后就发现每当写四五百行或者1000行,就会有一个 Positive 的结果。

所以这就意味着,产出结果的速度,取决于你迭代的速度,你要迭代的足够快,才有可能快速地出结果。这是一个很重要的经验,请注意,快速迭代建立在有效实验的基础上。 盲目地做实验可能让事情变得更糟。

要经常性地确认自己在正确的方向上:当前的算法思路真的对吗?要避免陷入local minima。 当我们验证的某个创新点在大部分情况下已经有效时,就可以考虑开始构思和撰写论文了。

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

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

相关文章

AI表情神同步!LivePortrait安装配置,一键包,使用教程

快手在AI视频这领域还真有点东西,视频生成工具“可灵”让大家玩得不亦乐乎。 现在又开源了一款超好玩的表情同步(表情控制)项目。 一看这图片,就知道是小视频平台出的,充满了娱乐性。发布没几天就已经有8000Star。 项…

7月Langchain-Chatchat 0.3.1最新 win系统-安装教程,踩坑2小时,5分钟拿去!

Win11安装 langchain-chatchat 0.3.1最新版 1. 虚拟环境安装和python包安装 conda create -n chat310 python3.10#这里很重要 需要先安装cuda版本的torch pip install torch2.3.1 torchvision0.18.1 torchaudio2.3.1 --index-url https://download.pytorch.org/whl/cu121pip…

六种方法实现Python文件之间的互动!

一、exec() 首先,我们生成一个名为**“file1.py”的python文件**: # file1.py print("Hello from file1!")然后,再生成一个名为“main.py”的python文件: # main.py filename file1.py with open(filename) a…

vlunstack-1(横向,phpmyadmin拿shell,xycms拿shell,cs和msf联动)

Vulnstack-1 内网环境搭建 环境配置: 靶机介绍 包括win7的web端,还有win2003为域成员,域控为win2008 win7内网ip:192.168.157.153 外网ip:192.168.52.143 域成员 win2003 ip 192.168.52.141 域控 win2008 ip 192.168…

基于WEB的仓库管理系统的设计与实现

点击下载源码 基于WEB的仓库管理系统的设计与实现 摘 要 仓库物品的管理是与我们的日常生活息息相关的一个重大问题。随着我国经济飞速的发展,改革开放的不断深入,企业要想在激烈的市场竞争中立于不败之地,要想继续的发展与生存&#xff0…

IDEA报错无效的目标发行版:17

问题描述:由于要接手另外一个项目,之前项目用的jdk17,新项目用的jdk8。需要切换jdk,idea切换之后启动报错 检查之后发现是没切换完全,一共需要切换如下几个地方: 切换前提:电脑上安装了多个版本…

八戒会修特斯拉 气囊电脑 rcm故障代码RCM2_a442_presFrntRDoorOpen

--------------------------------------------------------------------------------------------------------------------------------- -------------------------------------- 作者: 八戒会修特斯拉 -------------------------…

手机在网状态接口如何对接?(一)

一、什么是手机在网状态? 传入手机号码,查询该手机号的在网状态,返回内容有正常使用、停机、在网但不可用、不在网(销号/未启用/异常)、预销户等多种状态。 二、手机在网状态使用场景? 1.信贷审核&#…

MySQL是怎样运行的——第2章 启动选项和系统变量

文章目录 2.1 在命令行上使用选项2.1.1 选项的长形式和短形式 2.2 配置文件中使用选项2.2.1 配置文件的路径2.2.2 配置文件的内容2.2.3 配置文件的优先级 2.3 命令行和配置文件中启动选项的区别2.4 系统变量2.4.1 简介2.4.2 查看系统变量2.4.3 设置系统变量2.4.4 启动选项和系统…

Java原生序列化与反序列化、URLDNS

配套课件地址:https://blog.csdn.net/mocas_wang/article/details/10762101 1. 概述 1.1 序列化与反序列化 序列化是指把Java代码转化为字节序列的过程;而反序列化时指把字节序列恢复为Java对象的过程。序列化分为两大部分:序列化和反序列化…

mindspore框架实现ckpt模型导出ONNX格式

mindspore框架保存及加载模型 详细流程:昇思-保存及加载模型 关键步骤 关键代码 from mindspore import export, load_checkpoint, load_param_into_net from mindspore import Tensor import numpy as np from MobileNet2GarbageCls.MobileNetv2 import *# 有…

第二证券:商业航天概念再活跃,航天晨光5连板,航新科技等涨停

商业航天概念1日盘中再度活跃,到发稿,航新科技、春晖智控“20cm”涨停,航天雄图涨超10%,航天长峰、航天晨光、星网宇达、航天科技、航天展开等均涨停,航宇微涨近10%。 值得注意的是,航天晨光已接连5个交易…

如何对同一个项目,不同分支,开两个IDEA窗口?

问题:有次我想参考(fu zhi)某个分支的代码,来写代码,但是打开双击项目的pom文件,会自动打开现在的IDEA窗口,如下: 解决:后面我用Open的方式打开,也是一样的。…

免费【2024】springboot 大棚蔬菜管理系统的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

【漏洞复现】万户 ezOFFICE协同管理平台 getAutoCode SQL注入

文章目录 0x00 漏洞描述影响范围 0x01 测绘工具0x02 漏洞复现0x03 Nuclei检测脚本0x04 修复建议0x05 免责声明 0x00 漏洞描述 万户OA ezofice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据…

Thread-Caching Malloc 简介

文章目录 Google的tcmalloc(Thread-Caching Malloc)简介主要特点工作原理应用场景安装与配置 总结 🎖 博主的CSDN主页:Ryan.Alaskan Malamute 📜 博主的代码仓库主页 [ Gitee ]:ryanala [GitHub]&…

第十三章 数据质量

本章重点内容: 1.重要的数据先开始处理 2.要知道PDCA(计划-执行-检查-行动) 3.知道数据质量的评估维度 4.进行根因分析以找出数据质量问题的根源 5.数据质量报告 1. 概述 与数据治理和整体数据管理一样,数据质量管理不是一个…

031-GeoGebra中级篇-GeoGebra的布尔值

在 GeoGebra 中,布尔值和条件判断是实现动态数学模型和交互式几何图形的重要工具。布尔值,即逻辑值,只有两个可能的取值:真(True)或假(False)。通过使用布尔值,我们可以创…

css揭秘-学习小结

0 引言-编码技巧 尽量用相对单位,比如字体大小和行高,如果是绝对值每次两个都要改,如果是相对值则只要改一个。 0.1 代码易维护和代码量不可兼得 为一个元素添加宽10px的边框,左侧不带边框,有两种方案 border-widt…

中科大保卫处招聘要求硕士学历:考研还有用吗?

希望同学们在看到类似这样的新闻或者热搜的时候,首先要明白很多事情都存在“幸存者偏差”。 我们不能“管中窥豹”,用特例去认识整体,当然,特例的出现或者存在也是有一定道理的,我们也不能完全忽视特例的存在。 所以…