从课程项目到学术论文发表
本教程最初由 Leila Abdelrahman、Amil Khanzada、Cong Kevin Chen 和 Tom Jin 撰写,并由李飞飞教授与 Ranjay Krishna 教授指导。
将课程项目发布是一项具有挑战性但有益的努力。从 2020 年春季的 CS231n 开始,我们的团队花了七个月的数百个小时在 ACM 2020 国际多模态交互会议上发布了我们的项目!我们的目标是分享创建优秀项目的技巧以及如何通过发布将其提升到新的水平。
这是我们发表于 2020 年 ACM ICMI 会议的论文链接 📄及对应的 PDF。
本篇目录 📖
组建团队 🤝
尽管单独工作可能看起来更快、更舒适,但通常不建议这样做。参加课程的主要优势之一是通过花几个小时一起完成项目来与同学建立“密集网络”。此外,你的才华横溢的同学可能实际上是伪装的老师!如果做得正确,与团队合作会更有趣,并且可以通过不同的意见发挥更大的创造力和影响力。
花大量的时间来选择你的队友是至关重要的,因为他们将塑造你的思维,决定你的理智,加入你的终生网络,并最终决定你的项目的成功。尽早开始搜索(例如在课程开始之前),以便您有足够的时间考虑不同的想法并立即开始行动。
了解您想做什么以及想与谁一起工作。在 Piazza 上发布您的兴趣并评估其他人。加入您感兴趣的领域的 Slack 频道(例如#bio_healthcare)。通过项目头脑风暴视频通话采访人员。考虑他们在机器学习、动机和个性方面的经验。具体来说,在评估潜在团队成员的深度学习背景时,请考虑诸如之前的工作经验、项目/出版物以及与您的预期项目相关的主题的人工智能课程等因素。询问诸如他们将使用哪种网络来处理您的预期项目、他们将如何寻找数据源以及他们喜欢使用哪些工具(例如 Google Colab 或 AWS)等问题。您可以在 Workera.ai 上找到一份详细的深度学习面试问题列表。
最后,要灵活选择你的小组。永远记住,计划可能会改变,有些学生最终会放弃课程。在课程截止时间之前,保持开放的沟通,并留意小组中的意外变化。
选择导师
请注意,指导和支持对于确保您的成功至关重要。找到最适合指导你的助教、教授和/或行业导师并经常与他们会面。课程工作人员和导师通常有兴趣帮助您取得成功,甚至可能在将来给您写推荐信!
我们的做法
我们查看了所有助教的资料,然后就去答疑时间了。我们很幸运地找到了 Christina Yuan,她也做过类似的研究工作,很快就成为了我们的良师益友。 Ranjay Krishna 教授也非常友善地指导我们将项目发表。
确定项目方向 🎛
你所做的事情非常重要,因为它决定了你的乐趣并为你未来的研究奠定了基础。
CS231n 项目类别示例
过去的项目可以在课程网站上找到,包括以下类别:
- 图像分类
- 图像分割
- 视频处理
- 3D深度学习
- 情绪分析
- 物体检测
- 数据增强
- 使用 CNN 和频谱图图像进行音频分析
考虑智能目标
具体的
您到底想回答什么问题,或者您想深入探讨什么概念?具体的项目适合作为重点,但要确保它具有一定的普遍性。
好例子: 生成深度赝品
错误示例: 在肺部 CT 扫描上生成 Deep Fakes 以改善医学图像分割。
可测量的
确保有绩效指标、定性评估和其他可用来衡量工作是否成功的基准。示例包括测试数据集的准确性以及相对于人类的性能。
错误示例: 创建高保真图像重建。
好例子: 与原始图像相比,创建具有低均方误差差的高保真图像重建。
可达到的
您是否拥有完成项目任务所需的资源、工具和背景经验?选择遥不可及的宏大项目只会带来失望,现实一点。问问自己是否有计算能力(GPU、磁盘空间)、数据(是否开放访问、私有、是否必须自己管理)和带宽(是否要应付繁忙的学期/季度)。
如果您目前正在进行与简历相关的研究,您可以将其纳入您的项目中,并且您的主管可能愿意借给您数据或计算资源。如果没有,通常会有一个简短的教师资助项目清单来寻找学生。
错误示例:
从面部视频检测癌症。
这是不可能实现的,因为不太可能有足够大的开放访问数据集。
好例子: 可以利用开源存储库和 API 或使用预先训练或微调的深度学习模型的项目。
相关的
CS231n 要求您使用 CNN 处理某种形式的 2D 像素化数据。
与助教讨论您的想法有助于了解该项目与课程的相关程度。确保该项目也符合您的价值观和兴趣。长远思考,项目结束五年后问问自己,它是否丰富了您的兴趣和职业方向。
错误示例: 通过主成分分析进行线性调频脉冲分类。
好例子: 使用 CNN 进行物体识别。我们在项目中纳入了场景分析和图像描述等特征检测任务,用于视频中的情感识别。
及时
CS231n 只能持续 8-10 周。确保您可以按照课程时间表实现您的目标。为您的项目制定路线图,看看需要完成哪些工作以及何时完成!这或许是最关键的。
给自己 2-3 周的时间来寻找团队并制定提案,3-4 周的时间来收集/预处理数据并根据既定的基线(里程碑)训练您的第一个模型,剩下的时间来运行其他模型,调整超参数并格式化您的报告。
在 Overleaf 中记录所有内容并为最终提交重新调整里程碑的用途很有帮助,这样您就不会在过去几天里遇到所有事情。
错误示例: 该项目需要两年时间来收集、清理和组织原始数据。
好例子: 您可以使用现有数据集或花几周时间收集原始数据的项目。对于我们的 EmotiW 项目,我们提供了现有的数据集,因此我们能够将更多时间花在算法上。
李飞飞教授的建议
- 最大化学习:找到一个可以实现最大学习的项目。
- 可行性:确保它在本季度的短时间内是可执行的,特别是确保数据、评估指标和计算资源足以满足您想要做的事情。
- 长远考虑:无论主题如何,执行一个好的项目都会有利于您的工作申请。公司寻找具有扎实技术背景、执行力和团队合作能力的人才。我认为他们在具体的项目主题上不会非常狭隘。
开展项目 👷🏽
在开展项目时,请考虑这些技巧,以最大限度地发挥影响的潜力。
使用云端环境
将文档、代码、数据集和模型文件存储在 Google Drive、Dropbox 或 GitHub 等服务中。
该课程为您的项目提供 AWS 和 GCP 学分。考虑利用这些资源,尤其是在涉及繁重计算时。
如果您计划使用 Colab,请考虑将模型检查点直接保存到斯坦福 Google Drive 文件夹中,以避免丢失文件。 Colab 还非常适合并行化您的工作,因为您可以同时运行多个实验。小心不要让您的工作会话超时,否则您可能会失去进度!
协同开展工作
在 Google 表格和 Google 文档等实时编辑器上集思广益,以便其他人可以在同一工作区中工作。 Overleaf 非常适合作为团队完善最终报告。
与您的队友每周或每半周定期举行会议。这建立了节奏,有助于让每个人都走上正轨,即使没有取得任何进展。
完整记录工作过程
编写您的代码,就好像您将向不了解您的项目的人展示它一样。这对于使您的方法透明且可重复非常有用。
记录您运行的所有实验(例如,超参数调节),即使它们没有成功,因为您可以在报告中写下它们。
有条理地管理项目
创建干净的文件结构。为文件夹和脚本提供准确的名称。从长远来看,组织可以节省您的团队时间,甚至几天。
编写你的笔记本,以便它们可以从上到下执行。这样,如果您遭受灾难性的数据损失或发现代码中的错误,您可以顺利返回并复制整个设置。
展示成果 📽
沟通使项目令人难忘。想出一个有趣的标题,并确保以多种方式展示您的作品。除了书面报告之外,还可以创建幻灯片、录制视频,并练习与助教、教授和行业专家谈论您的工作。口头和视觉演示的表达技巧可确保观众记住您的作品!
在完成项目之前,请花点时间清理您的 GitHub 存储库,如果您还没有这样做的话,请创建一个。添加一个强大的 README.md 文件,其中包含对您的项目的清晰描述以及包含示例的“操作方法”指南。这样做可以使您的项目易于访问,并鼓励其他人在您的工作基础上继续发展。
如果您要向期刊或会议提交作品,请考虑将您的作品副本提交给预印本服务,例如 arXiv。 arXiv 不需要同行评审,计算机科学领域的研究人员通常使用它来传播他们的工作。发布预印本是添加到 Google 学术搜索出版物列表中的快速方法。您可能还需要花 5 分钟时间注册并获取 ORCID。
我们遇到的困难
由于四个人同时工作,我们的 Github 存储库自然变得有点难以导航,因为每个人都使用略有不同的命名方案。其他实验还留下了多个克隆笔记本。就我们而言,我们的目标始终是根据我们的结果提交一份宏伟的挑战论文,因此通过项目完成组织面向公众的存储库至关重要。
2020 年,许多会议完全是虚拟的,这使得精美的视频演示变得更加重要,因为这最终将成为会议进程的一部分。
我们的做法
我们确保 Github 存储库反映了我们的结果,并借此机会将多个图表嵌入到自述文件中,使其具有视觉吸引力且易于理解。
我们选择了一个有趣的标题“Fusical”,并创建了一个单图视觉效果来概括我们的工作。这使得人们可以在会议期间轻松参考我们的工作,使我们能够谈论我们的项目,而不会因不同的幻灯片而使与会者感到困惑。
完善成果,准备发表 📄
在为发表而进行优化时,问问自己:我要为新的对话带来什么?这可以来自新颖性或超越最先进的方法。在整个细化过程中强化这个问题对于成功发布至关重要。
下一步是找到合适的期刊或会议来发表。与大多数科学领域不同,计算机科学和人工智能倾向于重视会议提交而不是期刊提交,因为该领域的出版物周转时间和知名度更高。会议很有趣,可以让您与其他志同道合的人建立联系。
在计算机视觉中,您会发现各种规模的会议在一年中的不同时间举行。顶级会议包括CVPR、ICCV和ECCV,但由于它们的受欢迎程度,成功提交可能具有挑战性。由于许多学生选择进行基于应用程序的项目,因此请根据您的项目主题考虑召开利基会议。例如,开发模型来确定学生课堂参与度的团队可能会考虑提交给 AIED。与你的导师交谈也可能有助于缩小具体的出版方法或地点。请记住,斯坦福大学确实提供一些旅行补助。
迭代工作对于创建出版质量的工作至关重要。改进写作、优化代码和制作高质量的图形是需要考虑的关键点。参考专家的工作并寻求建议。 博士。 Juan Carlos Niebles 的出版物页面 就是一个很好的例子。
发表是一个漫长的过程,部分原因是同行评审。检查您提交的内容是否存在可能含糊不清的地方或未经证实的主张。确保您清楚自己的实验参数,并请团队之外的人审阅论文。
为同行评审的期刊或会议记录撰写文章与准备项目报告有很大不同,但该项目有助于指导最终论文的内容。
我们遇到的困难
虽然我们在 CS231n 课程中取得了进展,但我们认为我们的模型还不够新颖,不足以发表。根据导师的指导,我们寻找机会使我们的工作与众不同。由于我们的项目是 EmotiW 重大挑战的一部分,因此激励因素之一是在提交截止时间之前继续探索其他方法来提高我们的验证性能。
我们的做法
根据文献检索,我们发现了其他群体用于情感分类的模式(例如音频、姿势)的常见模式。因此,我们专注于探索两种我们认为有价值的新颖模式:图像描述(寻找与特定程度的情绪相关的某些对象或场景,例如抗议)和笑声检测(因为音频剪辑中存在笑声通常表明积极的情绪)。使用修改后的显着性图和消融研究,我们试图证明所有这些模式的有用性,以获得更有说服力的论据。
总体而言,我们的测试准确率约为 64%。由于没有公共排行榜,最初我们与其他群体相比的表现存在不确定性,但我们对我们的方法充满信心,因为它大大超过了基线。尽管我们最终排名低于前三名,但由于我们的新颖发现,我们仍然能够在会议上发表我们的工作,这表明测试数据性能只是发表的许多标准中的一个。
课程项目与发表论文的区别
课程项目
- 更注重错误分析和出错的实验。
- 倾向于实验方法,因为课程时间对于预训练和辅助数据来说太短。
- 大量时间花费在项目基础设施(预处理、API 和整体主干)的“隐形”设置工作上。
- 您可以在此处找到我们提交的原始 CS231n 原始项目。
出版论文
如果您没有得到想要的结果,无论如何也不要害怕提交 - 最糟糕的审稿人能做的就是拒绝,而来自该领域专家的反馈总是很有价值的!
扩大成果影响力 🙌
您的项目具有价值和影响力。在全球会议上发表演讲(我们在 2020 年 ICMI 上发表演讲)是与其他学术和行业专家分享您的成果和发现的好方法,但还有其他选择。您认为您的想法可以付诸实践吗?斯坦福大学拥有帮助学生继续追求自己的想法的资源和机会,包括创业车库(一门基于项目的实践课程,用于开发和测试新的商业概念)以及视觉实验室。
如果您的想法更注重研究,请寻找可能在该领域工作的教授并向他们推销您的想法。您可能有机会将您的项目作为独立研究项目继续进行,或者将您的想法应用到更广泛和更重要的数据集中,或者转向类似的研究领域。
结语
这很辛苦,也很有趣,因为我们有一支优秀的团队!我们希望大家喜欢这些关于项目从集思广益到有影响力的演示和出版物的过程的建议。这些技巧是可扩展的,我们希望您也可以在其他工作中使用它们!
