对文献阅读的重新认识
今天向本科的一位师兄(已经博士毕业且高校任职)请教问题,他连续问题让我对cv产生了重新的认识,不仅仅是文献的阅读。
下面这是对文献的一般的看法,但是这也仅仅只是为了读懂一篇文献所能做的。
文献调研重点
聚焦 2025目标检测论文,优先看 CCF-A 顶会(如 CVPR、ICCV、ECCV、NeurIPS、ICLR、AAAI),重点关注论文的 创新点、贡献表达、实验设计 和 发表时间/会议口碑。一般 不看 CCF-B,也暂不重点看普通 IEEE Transactions 期刊。
调研方法
采用“核心论文—引用论文—对比论文”的方法:
先找一篇代表性论文 A → 看谁引用了 A → 再看这些高水平论文对比了哪些方法。
通过这种方式,快速扩展文献范围。
阅读重点
前期不必深挖方法细节,重点看:
- 论文解决了什么问题
- 创新点是什么
- 作者如何证明自己有创新
- 为什么这篇论文能发顶会/好期刊
调研目标
总结目标检测方向中,高水平论文是如何提出问题、包装创新、设计实验并说服审稿人 的。
后续精读
从中筛选值得学习的工作,优先读 有开源代码 的论文,重点分析:
- idea 从哪里来
- 为什么能想到这个方法
- 方法设计背后的逻辑是什么
但是,当他抛出深度学习是干什么?解决什么?什么是数据特征?什么样的网络结构更适合现在的基于优化的方式学习?等等这类问题让我回答时,我脑海没有一个清晰的认识,估计是我之前停留在一个idea做,sota了,发表、毕业的思想上,特此写下这篇blog纪念并对该问题进行思考回复
为什么这些问题很重要?
因为 CV 不是只会调包、跑模型、堆模块。
真正往上走,导师、审稿人、面试官、答辩老师最看重的是:
- 知不知道你在解决什么问题
- 知不知道这个结构为什么有效
- 知不知道它的代价是什么
- 知不知道你提的模块到底改善了哪一环
- 能不能判断一篇论文的 contribution 是真创新还是包装
问题分层
第一层:必须彻底搞懂的“地基问题”
这些是 必须清楚 的,不清楚会直接影响读论文和做实验。
包括:
- 深度学习本质是什么:拟合 $f(x)=y$
- 特征是什么
- 数据/特征在网络中怎么流动
- 为什么 ResNet 有用
- 为什么需要 attention
- attention 本质在做什么
- 现在 CV 主流框架是什么
这些问题不需要你回答得特别“玄学”,但至少要能说清:
- 输入输出是什么
- 模块的作用是什么
- 它改善的是哪一步
- 代价是什么
第二层:需要逐步形成判断力的“研究问题”
这些问题更像以后读论文、做创新时要常问自己的。
比如:
- 现在优化 attention 之后还在优化什么
- 影响 CV 任务精度的主要原因是什么
- 为什么小目标检测会难
- 如何更好训练、如何更好优化
- 什么样的网络结构更适合当前的优化方式学习
- 一个 CV 论文到底解决了什么问题
这一层更重要,因为它决定你会不会“看门道”。
很多同学读论文只看:
- mAP 提高了多少
- 模块长什么样
- 代码开没开源
但更高一级的人会看:
- 这个方法是在解决表征问题、优化问题、信息流问题,还是计算效率问题?
- 它是提出新问题,还是解决老问题?
- 它的提升来自真实机制,还是训练技巧/实验设置红利?
- 它的 contribution 合不合理,是否必要?
这就是研究能力。
第三层:可以先有轮廓、以后再深入的“抽象问题”
比如:
- 如何设计函数
- 什么样的结构更适合优化
- 为什么某类归纳偏置有效
- 论文不要写成“教程”,而要带着问题找答案
- 看论文时先问 contribution 合不合理、这个领域为什么需要它
这些问题非常高级,确实重要,但不必要求自己现在一次想透。
现在更需要的是:
先把它们变成固定的思考模板。
哪怕暂时答得不完美,也比完全不问强很多。
对 CV 学生来说,最关键的不是“都答对”,而是“会一直追问”
最可贵的地方不是问题本身,而是自己的思路已经从“学模型”往“学问题”转了。
这是很重要的分水岭。
普通做项目的思路
- 这个模块火,我加一下
- 这个论文 SOTA,我复现一下
- 这个 attention 看起来高级,我插进去试试
真正做研究的思路
- 当前瓶颈到底是什么
- 信息在哪一步丢了
- 误差主要来自表示、优化还是数据
- 这个模块解决的是主矛盾还是次矛盾
- 为什么它在这个任务有效,换任务还有效吗
后者才是以后能发论文、讲清工作、做出自己东西的关键。
这些问题分成“三档”
第一档:必须能脱口而出
这些要非常熟:
- 什么是特征
- 什么是 attention
- ResNet 为什么有用
- 小目标为什么难
- CNN 和 Transformer 各自擅长什么
- 一个检测框架通常由哪些部分组成
这是做组会、答辩、面试时最常被问的。
第二档:需要能结合论文分析
这些要能用于读论文:
- 这篇论文解决了什么问题
- 是结构问题、优化问题、数据问题还是计算问题
- contribution 是否成立
- 为什么需要这个 contribution
- 它改善的是精度、效率、鲁棒性还是泛化
这类问题决定会不会读论文。
第三档:需要长期思考
这些是以后会越想越深的:
- 什么样的网络更适合优化
- 数据流与梯度流的本质
- 表征能力和归纳偏置的平衡
- 局部建模与全局建模怎么统一
- 未来 CV 主体框架演化方向是什么
这类问题不要求现在完全定论,但要经常思考。
最后那几句,其实尤其关键
多问问题,后看论文
看论文要带着问题找答案
不要让论文成了“教程”
一个CV的论文,他解决了什么问题?
他是在CV任务的哪个赛道上结局问题,是提出新问题,发现新现象,还是解决了某个问题
读一个论文不知道“问什么”,就看他自己写的 contribution,先判断这个 contribution 是否合理,真的假的。然后再想:这个领域需要这个 contribution 吗?为什么需要?
这段话其实已经很接近研究方法论了。
因为以后读任何一篇论文,都可以先问这几个问题:
- 它的任务场景是什么?
- 它的核心矛盾是什么?
- 它的 contribution 属于哪一类?
- 新任务
- 新现象
- 新结构
- 新训练方法
- 新数据集
- 新理论解释
- 它的提升来自哪里?
- 这个贡献是不是这个领域真正需要的?
要是一直这样读,进步会非常快。
更具体一点:你至少要达到这三个能力
1. 能解释
别人问你:
- 为什么用这个模块?
- 为什么 attention 有用?
- 为什么小目标难?
不能只说“论文里都这么做”。要能说出机制。
2. 能判断
看到一篇论文,你能判断:
- 它有没有真解决问题
- 它的 improvement 是不是可信
- 它是不是只是在堆技巧
- 它值不值得复现和借鉴
3. 能迁移
能把别人的方法映射到自己的任务:
- 这个方法适合晶体检测吗
- 适合小目标吗
- 适合弱纹理吗
- 适合边缘部署吗
- 适合现在的数据规模吗
现在这个阶段,我最建议做的事
把这些问题整理成你自己的 CV研究问题清单,以后每看一篇论文都过一遍:
- 任务是什么
- 难点是什么
- 它解决了哪个难点
- 方法作用在哪一层
- 代价是什么
- 为什么有效
- 是否适合我的任务
只要坚持这样读,后面自己写论文时,思路会比单纯“抄模块”清楚很多。
附录
这是聊天记录,谨记于心!
