【AI科研学习 00】从论文复现到 TTT:我的 AI 科研学习路线
2026/9/13 12:22:38 网站建设 项目流程

【AI科研学习 00】从论文复现到 TTT:我的 AI 科研学习路线

1. 为什么开始接触 AI 科研

最开始接触科研时,我对人工智能的理解更多来自课程和基础知识。

真正开始参与科研项目之后,我才逐渐发现:

论文中的一个模型,真正落地到实验中,并不是简单地把代码运行起来。

需要经历:

论文阅读 ↓ 理解模型 ↓ 配置环境 ↓ 运行代码 ↓ 调试问题 ↓ 复现实验 ↓ 分析结果 ↓ 提出自己的问题

这也是我开始记录 AI 科研学习过程的原因。

相比单纯学习课程,我更希望通过真实论文和项目,逐渐建立自己的科研思维。


2. 我目前的科研基础

在之前的学习和科研过程中,我主要接触的是深度学习和计算机视觉方向

学习和实践过:

  • PyTorch
  • CNN
  • Transformer
  • Vision Transformer(ViT)
  • 计算机视觉
  • 语义分割
  • Test-Time Training(TTT)

同时也接触过 Linux 服务器、GPU/CUDA 环境以及深度学习项目的运行和调试。

目前自己的科研学习方式大致是:

论文 ↓ 理解方法 ↓ 寻找官方代码 ↓ 配置实验环境 ↓ 运行官方代码 ↓ 分析实验结果 ↓ 修改代码 ↓ 尝试自己的想法

3. 从论文复现开始

在真正形成自己的研究想法之前,我经历了一个比较重要的阶段:

论文复现。

通过复现论文代码,我开始逐渐理解一个完整科研项目是如何运行的。

期间接触和尝试过一些与 Transformer、ViT、TTT 以及计算机视觉相关的项目,例如:

  • ViT³
  • U-TTT
  • VGG-T³
  • 语义分割相关项目

在这个过程中,我遇到过很多实际问题:

  • Python 环境配置
  • PyTorch 版本问题
  • 第三方库版本冲突
  • CUDA 环境问题
  • 数据集准备
  • 模型权重加载
  • Linux 服务器运行
  • 实验结果与论文不一致
  • 模型可视化与结果分析

这些问题让我逐渐意识到:

科研不仅是理解论文,更重要的是能够把论文真正转化成实验,并从实验结果中发现问题。


4. 从 Transformer、ViT 到 TTT

随着学习的深入,我逐渐把注意力集中到了 Transformer 和 ViT 相关方向。

在继续学习的过程中,我开始接触:

Test-Time Training(TTT)

TTT 给我的一个重要启发是:

传统的机器学习模型通常在训练阶段学习参数,然后在测试阶段直接使用已经训练好的模型。

而 Test-Time Training 则尝试利用测试阶段的数据,让模型进一步适应当前的数据分布。

这让我开始思考一个问题:

如果模型能够在测试阶段继续学习,那么它应该如何学习?

这个问题也逐渐成为我目前比较关注的方向。


5. 对 TTT 的进一步学习

在学习 TTT 的过程中,我开始关注不同 TTT 方法的模型结构、训练方式以及测试阶段参数更新策略。

我逐渐理解到:

训练阶段 ↓ 获得模型参数 ↓ 测试数据进入 ↓ Test-Time Training ↓ 模型参数发生更新 ↓ 适应当前测试数据

这种方法能够提高模型对测试分布变化的适应能力,但同时也带来了新的问题。

例如:

如果测试阶段对模型参数进行更新,那么应该更新哪些参数?

如果所有参数都进行更新,可能会出现:

  • 不必要的参数变化
  • 原有知识被破坏
  • 模型稳定性下降
  • 不同测试样本之间相互影响
  • 灾难性遗忘等问题

这也让我开始从“如何复现论文”逐渐转向:

这个方法还有什么可以改进的地方?


6. 从复现到自己的科研思考

在之前的学习过程中,我逐渐形成了一个自己的初步想法。

我的理解是:

TTT 如果每次都对整个模型进行参数更新,可能会导致一些已经适应当前区域或特征的参数仍然被继续更新。

例如一个测试样本中可能包含多个不同区域:

测试图像 ┌───────────────┐ │ 区域 A │ │ │ │ 区域 B │ │ │ └───────────────┘

如果当前输入主要与某一部分参数相关,那么是否有必要更新整个模型?

于是我开始思考:

能不能根据当前测试样本的特征,找到真正与当前输入相关的参数,只更新这些参数,而不是更新整个模型?

进一步可以形成:

测试样本 ↓ 特征提取 ↓ 判断当前样本/区域相关参数 ↓ 选择性更新 ↓ 其他参数保持稳定

这只是目前的初步想法,还需要通过实验验证。

但是对我来说,这是一个比较重要的变化:

从“复现别人的方法”,开始尝试“发现自己的问题”。


7. 我的科研学习方式

经过之前的项目实践,我逐渐形成了一套自己的科研学习方式。

第一步:阅读论文

首先了解:

  • 为什么提出这个方法?
  • 解决什么问题?
  • 和以前的方法有什么区别?
  • 核心创新是什么?

第二步:阅读代码

然后寻找论文对应的官方代码,理解:

数据 ↓ 模型 ↓ 训练 ↓ 测试 ↓ 评价指标

第三步:跑通实验

首先尽量复现作者提供的实验结果。

如果结果存在差异,就开始分析:

  • 环境是否一致?
  • 数据是否一致?
  • 权重是否正确?
  • 参数是否正确?
  • 代码版本是否一致?

第四步:分析结果

不仅看最终指标,还会观察:

  • Loss
  • Accuracy / mIoU 等指标
  • 可视化结果
  • 不同参数设置
  • 不同模型结构

第五步:提出问题

最后再问:

这个方法还有什么不足?

我认为这一步才是从“学习论文”走向“科研”的开始。


8. 后续科研方向

目前我的科研学习会继续围绕:

Transformer ↓ ViT ↓ Test-Time Training ↓ 参数更新策略 ↓ 选择性/局部参数更新 ↓ 实验验证

继续学习和研究。

同时也会继续关注:

  • 计算机视觉
  • 语义分割
  • Test-Time Adaptation
  • Test-Time Training
  • Transformer / ViT
  • 模型参数更新
  • 模型稳定性

目前最重要的事情不是急着给自己的想法下结论,而是:

先把问题定义清楚,再设计实验验证。


9. 后续科研博客记录

从这篇文章开始,我准备把之前的科研经历逐渐整理出来,同时记录现在正在进行的研究。

后续主要分为几个系列:

【科研复盘】

整理之前已经完成的科研项目和阶段性汇报。

例如:

【科研复盘01】第一次接触深度学习科研项目 【科研复盘02】ViT³项目学习与复现 【科研复盘03】U-TTT项目学习与复现 【科研复盘04】VGG-T³项目学习与复现

【论文阅读】

记录自己对论文的理解。

例如:

【论文阅读01】ViT³论文解读 【论文阅读02】TTT方法原理分析

【代码复现】

记录实际运行过程。

例如:

【代码复现01】ViT³环境配置 【代码复现02】ViT³官方权重测试 【代码复现03】ADE20K语义分割实验

【实验记录】

记录自己的实验结果和问题。

例如:

【实验记录01】论文结果与我的实验结果为什么不同? 【实验记录02】不同参数对TTT测试结果的影响

【科研思考】

记录自己的研究想法。

例如:

【科研思考01】TTT全局参数更新可能存在的问题 【科研思考02】能否只更新与当前样本相关的参数? 【科研思考03】动态冻结与选择性参数更新的初步思考

10. 写在最后

回头看之前的科研经历,我觉得自己还处于比较早期的阶段。

目前更多是在:

学习论文 → 复现代码 → 分析实验 → 尝试提出问题

距离真正独立完成一个成熟的科研工作还有很长的路。

但我希望通过持续记录,让自己的科研学习不再只是一个个零散的项目。

而是形成一条清晰的路线:

接触科研 ↓ 论文阅读 ↓ 代码复现 ↓ 实验分析 ↓ 发现问题 ↓ 提出想法 ↓ 实验验证 ↓ 形成自己的研究方向

这也是我建立这个科研博客的主要目的。

记录每一次实验,也记录每一次思考。

希望以后回头看这些文章的时候,能够看到自己从“学习别人的方法”,逐渐走向“尝试解决自己的问题”的过程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询