研一“叛逃”记:从3D医学图像分割到类增量学习,一场为了毕业的自救
大家好我是你们的朋友一个正在为毕业和前途焦虑的普通研究生。今天想和大家聊聊我研一下学期做的一个重大决定——换方向。从一个听起来很“硬核”的3D医学图像分割跳到了一个相对“冷门”但似乎更“实际”的类增量学习Class-Incremental Learning, CIL。为什么要换一场关于现实与理想的博弈说实话当初选3D医学图像分割也是觉得这个方向很有前景既能做科研又能造福人类听起来就很有意义。但真正扎进去之后我才发现理想很丰满现实……有点骨感。首先算力是个大问题。3D图像的数据量巨大跑个模型动辄几天而我所在的课题组……嗯显卡资源基本靠抢或者干脆没有。每次看到别人用多卡A100跑实验我只能对着自己笔记本上可怜的GPU默默流泪。没算力再好的idea也跑不出来这感觉就像有枪没子弹。其次校外导师的“放养”政策。我的导师是校外的工作很忙基本上属于“没人管”的状态。遇到难题了问师兄师姐大家也都在忙自己的课题能给的指导有限。这种环境下选择一个需要大量试错、不断调整模型结构的方向风险太高了。万一卡在一个地方几个月没进展毕业可能就悬了。最后也是最现实的我想快些达到毕业要求。研究生时间宝贵我不想把太多精力耗在一个不确定性太高的方向上。我需要找到一个既能满足毕业要求又能为我以后去“四喜”积累一些有用技能的方向。于是我开始寻找新的出路。为什么是类增量学习CIL在查阅了大量文献和与一些学长学姐交流后我把目光锁定在了类增量学习上。原因很简单痛点明确故事好讲CIL要解决的核心问题是“灾难性遗忘”Catastrophic Forgetting即模型在学习新知识时会忘记旧知识。这在很多实际应用场景中都非常重要比如医疗诊断系统需要不断学习新的疾病类型但不能忘了旧的自动驾驶需要识别新的交通标志但不能不认识以前的。这个故事逻辑清晰容易写出有说服力的论文。创新点相对好找相比于那些已经卷成红海的领域比如纯粹的图像分割精度提升CIL作为一个相对新兴的方向还有很多可以挖掘的点。比如如何更好地平衡模型的“稳定性”记住旧知识和“可塑性”学习新知识如何在没有旧数据的情况下进行增量学习这些都是很好的切入点。对算力要求相对较低虽然CIL也需要训练模型但很多时候是在已有预训练模型的基础上进行微调或者设计一些巧妙的损失函数、网络结构。相比于从头训练一个庞大的3D分割网络对算力的需求会小很多。与我背景有一定关联我之前做医学图像分割对医学图像的特点和处理流程有一定了解。而CIL在医学图像分析领域也有广泛应用比如不断出现新的疾病种类需要模型持续学习。这样我之前的经验不至于完全浪费。当然我也知道CIL不是万能药它也有很多挑战比如内存限制、新旧类别不平衡等问题。但至少对我来说它是一个更有可能快速产出成果的方向。给研0和研一学弟学妹的一些“血泪”建议走到今天这一步也算是踩了不少坑。如果时光能倒流我一定会对刚入学的自己说尽早明确目标不要盲目跟风你是想读博深造还是硕士毕业找工作目标不同选择的方向和投入的精力也会完全不同。如果想尽快毕业找工作就不要一头扎进那些理论深奥、周期长、不确定性高的“天坑”方向。充分了解导师和资源在选择方向和导师之前一定要尽可能多地了解情况。导师的指导风格如何课题组的算力资源怎么样师兄师姐的毕业情况如何这些信息至关重要有时候甚至比你自己的努力更重要。像我这样选了个“放养型”校外导师就要做好自力更生的准备。多读论文尤其是顶会顶刊不要等到开题了才开始看论文。从研一开始就要养成阅读文献的习惯特别是CVPR、ICCV、ECCV、MICCAI等顶级会议和期刊。看看大佬们都在研究什么热点是什么这样才能找到有价值的研究方向避免闭门造车。我当初就是论文看得太少才会在3D分割里钻牛角尖。动手实践克服代码恐惧光看不练假把式。看到一个有意思的idea就尝试着去复现一下。不要害怕写代码这是研究生的基本功。只有自己动手实现了才能真正理解其中的细节和问题。网上有很多开源代码是很好的学习资源。学会“抱大腿”但更要靠自己可以多和师兄师姐、同学交流但不要把希望完全寄托在别人身上。最终能帮到你的还是你自己。遇到问题先自己思考、查资料实在解决不了再去请教别人这样效率更高也能学到更多。保持信息畅通多关注前沿动态除了读论文也可以关注一些相关的博客、论坛、公众号参加一些学术报告。了解领域的最新动态有助于你及时调整方向抓住机遇。总之研究生生涯是一场马拉松而不是百米冲刺。选择合适的方向制定合理的计划保持积极的心态相信你一定能顺利毕业实现自己的目标希望我的经历能给大家一点启发。共勉