作者:梦里风林
原文:https://zhuanlan.zhihu.com/p/54161673

之前在知乎发过实习和秋招的面经。见【2019秋招算法面经】,许多同学私信我,表达了他们初入研究生期间的迷茫,希望了解我研究生期间的成长路线。虽然说没有适合每个人的方法,因为每个人的特点和所处的环境都不一样,但有个参考总是好的,所以我在这悄悄把自己研究生三年的经历写一下,前面可能会写的详细一点,希望能对这些同学有所帮助。

1.  大四上学期(2016.1~2016.3)

大三暑假的时候去QQ邮箱实习,一直实习到了2015年12月,回到学校正是2016年的元旦,跟现在差不多的季节,开始跟导师讨论毕业设计的思路,并动手实现。

主线任务:毕设

毕业设计做的是一个多模态行人检索系统里的Java后端,跟班里两个同学做的前端和硬件采集端合为一个大的系统。导师刚评上副教授,带的研究生只有两个人(后来又多了一个计创的师弟),虽然还有很多本科生,但是对我们的指导时间很多,是那种实干型的导师,会一边给你理思路一边给你准备资源。

拿到几个大华的摄像头、NVR和SDK之后,在B3五楼会议室里调C代码读写数据,并且从Servlet裸写Java后端(虽然实习写Android把Java写得很熟了,但是当时不熟悉Java后端框架,所以就直接Servlet)。写了差不多两个星期就写完了。然后开始写论文初稿,到一月底,毕设就基本完工,虽然后边又各种调整,但基本的工作在这个时候都做完了。在这个Java后端里,把在QQ邮箱实习的时候熏陶的设计模式全都实践了一把,感觉写的挺优雅,但是好像有点过度封装,不过也还好,这个系统就一直沿用下来。

在后边研究生几年里这个系统又被部署到超算虚拟机上,经过离线化等等变更。合作的两个同学毕业后他们的Hadoop后端和JS前端,路由器硬件都变成我维护了(:з」∠)不过因为没有特别大的改动所以还能Hold得住,一直到现在还在运行着。

支线任务1:自学

写完之后就回家放寒假,因为有大把时间,所以开始刷GitHub,熟悉Git,Markdown,Gitbook,期间翻译了一个当时Github上Star上万的工程,大概讲的是程序员的自我修养之类的东西,收货了几百个Star,后来因为在邮箱期间遇到的Webview问题没彻底解决,心存执念,又开始翻译Chromium的文档,因为当时国内也没有Chromium的中文文档,所以就动手翻译,也从中学到了许多架构设计方面的东西,虽然因为内容太多没有最终翻译完。

支线任务2:物资管理系统

毕设这套系统更偏向工程,还没有一些计算机视觉的东西,当时导师就跟我讨论就想是不是可以往这方面发展做点研究,于是开始学Python,因为我之前在学校学工办勤工助学,实习的时候就跑路了,准备大四下回去在挣一点生活费,毕竟奖学金只够学费,吃饭还是得自己想办法(当时没想到导师每个月给我们发的钱完全够吃饭了),所以就用Python+Django写了一个物资管理系统,当做回归的见面礼,顺便也是试手Python。这套系统从2016年3月一直用到2018年12月,因为之后我要毕业不在学校,办公室那边的同学维护不了,所以及时过渡到了以前的Excel工作模式。我感觉这套系统做得还挺好看的,实践了一把当时比较推崇的Material Design。

支线任务3:羽毛球

每周1个半小时的羽毛球,一直打到现在,学校的体育馆还是可以的。

2.  大四下学期(2016.3~2016.9)

主线任务1:毕设

这学期主线任务还是改毕设啦,改格式很烦(:з」∠)

主线任务2:入门机器学习

导师之前其实也不做机器学习,我也是自己摸索,当时TensorFlow,Caffe各种框架百花齐放,因为之前做Android比较喜欢Google,所以在TensorFlow还只是0.8版本的时候开始自学,看的是Google在Udacity上发的教程,一边学一边整理笔记,放到GitHub上又刷了几百个Star。差不多5月的时候,导师也开始跟我们讨论当前机器学习的一些进展和研究方向,因为发现调参很麻烦,所以想做一个自动调参的东西,用神经网络来给神经网络调参,然而当时我只有CPU,整天在Acer笔记本上呼呼呼地跑实验,一直到暑假快结束了实验效果也不好。后来发现Google用N多块GPU做出了AutoML…后来差不多到研一导师才开始重视设备,所以这段时间更多的只是学TensorFlow和机器学习的一些基础知识,也开始学会了做实验,当然因为没有设备这个方向在开学之后还是放弃了。

支线任务1:校园活动管理系统

因为回到了学工办,受到当时双创的影响,被那边的老师抓去组了一个小小的创业团队,准备写一个校园活动管理系统。所以大四下也花了一些时间在这件事情上,带着不同学院的几个同学一起做东西,又写Python又写JS,虽然最后也没搞成,但还是挺有意思的一段时光,遇到许多不错的小伙伴。

支线任务2:博客

大概是到这个时候博客才开始放到Gitbook上,大多数是一些琐碎的知识,后来也渐渐把论文解读和一些工程实践也放进去,还在一直写着。

3.  研一上(2016.9-2017.2)

主线任务1:上课

研究生的课大部分没什么卵用,我觉得我学到最大的技能就是读论文,做PPT还有汇报…当然还是有几门有用的课的:

  • 视觉计算:传统图像处理的各种套路

  • 模式识别:机器学习基础

  • 最优化计算:机器学习数学基础,还顺便学了一波LaTeX

主线任务2:行人重识别入门,确定研究方向

遭遇了自动调参任务的失败之后,10月老师开始让我调整方向,感觉导师在方向上的把握一直都很敏锐而正确。老师希望我还是关注回毕设做的视频行人检索任务上,于是开始看顶会上的各种行人重识别论文,不知道为啥当时老师follow郑宇大佬的工作,关注多模态,所以我们整个实验室大方向是多模态数据融合,我是行人重识别这个小方向,在毕设的系统里,发现基于Wi-Fi的时空信息能够有效筛选行人之后,也想在行人重识别数据集上做相关的研究。

一开始看论文其实没什么经验,看到公式基本都觉得不懂,学了最优化计算之后才感觉看懂了,此外还有一个机遇是老师带着我们去了一趟南京大学参加MLA,听了各路大佬的论文解读和方向指引,期间也看了大量的论文,开始对机器学习这个领域有一个整体的把握,之后看论文就得心应手了。

回到研究上,看论文之后再去调研数据集,才能知道从哪里下手。可视化是一个很重要的手段,一边各种数据分析加可视化,一边跟导师讨论(老师经常半夜十一二点跟我QQ讨论进展)我们才将目标剥离为无监督时空+视觉这个干净的方向,差不多就到11月了;在这个学期主要是尝试构造时空模型,并想办法和视觉模型做融合。当时Re-id还没有那么多方便的Baseline,我用的是郑哲东的MATLAB baseline,用了MatConvNet这个框架,也是走了一点弯路,一边准备考试一边做实验,差不多到要寒假才把视觉模型的训练和测试都理顺跑通。寒假期间开始把时空模型和视觉模型结合起来,有了一点初步成果,这部分是用Python写的,所以这期间一直在Python和MATLAB之间反复横跳。

这个期间拿着老师给的5W买了一台三卡机,三张TITANX,总算有显卡可以用了…代码也开始放到服务器上跑,这个方向设备真的还是很重要的,我觉得至少要有一张11G的卡吧…

支线任务:PS

因为在学工办兼职,需要做一些海报之类的,本科的时候在学院的宣传部做过,就扛起了学工办所有的海报设计…虽然水平不高,但至少能用。

2016年就这样过去啦:


4.  研一下(2017.3-2017.8)

主线任务:推进实验进展

放假回来还是继续做多模态融合,思路还是从实验里找,各种可视化,摸索出可以建模噪音这样的思路。差不多5月的时候实验基本能保证有效了,导师想投NIPS,开始写了一点点论文初稿,但是因为时间太赶,实验还不完备,就拖着没投,继续完善实验,进一步想用Learning to Rank来改进模型,从调研到选路线到推实验。期间因为支线任务1学了Keras,所以把代码都改成了Keras实现,代码写起来非常清爽,也都整合到Python里了,并且用各种技巧把视觉模型baseline复现到郑哲东他们TOMM的水平,暑假也一直在调Learning to Rank,直到效果满意。

支线任务:百度宠物狗分类比赛

发现了这样一个比赛,然后加了比赛群,听各路大佬吹牛(里边有很多大佬在知乎哈哈),学到了很多套路的东西,包括调参技巧,刷分技巧之类的。这些东西虽然不是必须的,但有了之后会事半功倍。同时也学了Keras,加了Keras群,先试水宠物狗分类,把Keras套路用回ReID。虽然这个比赛没刷上去,但开阔了视野,我们不仅有实验室,同学这样的来自学校的力量,还有来自社区的力量可以汲取。

5.  研二上(2017.9-2018.2)

主线任务:CVPR论文

9月把实验都整理好,老师开始写论文,我也一边写实验的部分,虽然后来基本上还是都被导师重写了,毕竟老师写起来确实比我写的好很多。各种画图,各种修改。直到十月底投出去,老师还在学院楼睡了一晚,真的很辛苦。好像是到1月的时候CVPR review,然后写Rebuttal,应reviewer要求补了很多实验来rebuttal。过完春节,某天好像听说出结果了,然后发现已经AC了。

支线任务1:树莓派系统

因为老师想要以后把工作重点放在行人重识别上,所以需要搭一套实验平台,包括采数据的终端和存数据,检索的后端。以前那套系统基于Hadoop太笨重了,所以我重新写了一套系统。买了一堆树莓派、摄像头和无线网卡,在树莓派上跑行人检测,把数据存到MongoDB,用Spring boot来写后端。感觉写工程开始变得很容易,Spring boot也就简单看了几天视频教程就用起来了。只要把一些难点攻克了,之后写起来就很流畅。这个事情做了一个月,然后交给几个大二的本科生接手了,但师弟们之前只学C++和数据结构和算法,不太推得动,有烂尾的趋势,估计我研三下还得把这个东西自己拿过来推进。

支线任务2:动物计数横向

跟一个创业公司合作,做一个数牛的项目,主要还是用树莓派和目标检测那堆东西,加一点物理知识做计数,做出来效果还行。技术上难度不大,但是跟甲方讨论还是一件挺费时间的事情,需要及时推进和协调。

支线任务3:目标检测

寒假期间看了目标检测方面的经典论文,为下学期找实习做准备,虽然我是做行人重识别,但是重点其实还是在多模态上,对计算机视觉方面的东西还是停留在课程里学的东西上,以及Re-id一些论文。其实应该把分割和人脸方面的一些论文也都看一看的。

2017年就这样过去啦:


6.  研二下(2018.3-2018.8)

主线任务1:论文

首先是把CVPR的论文整理成camera ready,然后是继续改进,想得到进一步的提升去投期刊。试了很多技巧,感觉创新点够了,但是效果还是没太大提升,所以一直没投出去。

主线任务2:实习面试

投了几家公司的实习,面试,一边刷牛客网上的题,因为我不是专业的ACMer,而且也有别的任务要做,没法把题都刷完,所以刷题只是找找感觉,基础知识也只是看蓝皮书和西瓜书,大部分面试都是裸考。好在还是找到实习了,具体经历在知乎上答过:传送门

主线任务3:鹅厂实习

到AI Lab实习主要还是研究类的工作,感觉在这期间填补了之前在CV上欠缺的一些认识,发现原来网络结构啥的可以玩出这么多的花。具体不便多说,保密哈。

主线任务4:秋招

我的2019秋招算法面经

支线任务1:实验室基础设施建设

跟师弟一起搭了实验室的Git平台,还有网站和博客,所以2018年在GitHub上提交的代码可能少一点点。

7.  研三上(2018.9-2019.1)

主线任务1:期刊论文

读了18年的一些顶会论文,获得了启发,找到有效的提升方法,现在实验做完了,效果很好,希望能在春节前把论文投出去。BTW,回来给实验室买了两台GPU服务器,实验室目前有3张TITANX和12张1080ti,还有若干1060,师弟们都转Reid了,卡要多一点才够用。

主线任务2:毕业论文

SCUT总能时不时坑你一把,去年论文是研三下才送审,今年就变成1月送审了,于是生死时速开始写论文,现在写好了,等导师给修改意见就准备去查重送审了。

2018年就这样过去啦


8.  研三下(2019.2-2019.4)

待续

小结

稍微写几点体会吧:

  • 读研期间有一个好的导师真的很幸运

  • 要尽快确定一个还有研究空间的方向,前期要多读论文,多总结,开阔视野

  • CV方向至少要有一块卡,实验室没有的话,尽量自己买一块吧

  • 确定方向之后多做实验,多做分析,多跟他人尤其是导师沟通

  • 工作的事情是水到渠成的,在学校能出成果最重要,尽量在研二上把论文投出去

  • 现在环境比我们当时好了很多,框架成熟,baseline开源代码到处都有,大多数实验室也都意识到设备重要性,所以都有设备了,但是竞争也更激烈了,大家要加油呀

扫码?回复 1024 获取超值礼包


周末不打卡了,好好休息放松,不知道会不会一如既往加鸡腿鸭哈哈

我的研究生这三年(含腾讯AI Lab实习、CVPR发表经验)相关推荐

  1. 腾讯AI Lab解析2017 NIPS三大研究方向,启动教授及学生合作项目

    来源: 腾讯AI实验室 概要:腾讯AI Lab去年4月成立,今年第二次参加NIPS,共有8篇文章被录取,含一篇口头报告(Oral).在所有国内研究机构和高校中,录取论文数仅次于清华大学. NIPS被誉 ...

  2. 腾讯AI Lab招聘基础研究实习生

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 腾讯AI Lab招聘基础研究实习生(深圳) [岗位职责] 1. 参与AI Lab 视觉相关项目的研究,并最终 ...

  3. CVPR 2022 | 腾讯AI Lab入选论文解读,关注图像理解、生成、建模及可信AI

    感谢阅读腾讯AI Lab微信号第147篇文章.本文介绍腾讯 AI Lab 被 CVPR 2022 收录的研究成果. CVPR(Conference on Computer Vision and Pat ...

  4. 再三年!腾讯AI「绝艺」与中国国家围棋队续约

    感谢阅读腾讯AI Lab微信号第94篇文章.本文将介绍「绝艺」与中国国家围棋队续约的情况. 腾讯AI Lab研发的围棋AI「绝艺」昨日与中国国家围棋队续约.在过去的两年里陪伴国手们横扫棋坛的世界顶级围 ...

  5. NeurIPS 2019|腾讯AI Lab详解入选论文,含模仿学习、强化学习、自动机器学习等主题...

    感谢阅读腾讯 AI Lab 微信号第 89 篇文章.本文将解读腾讯 AI Lab 入选 NeurIPS 2019 的 14 篇论文. 第 33 届神经信息处理系统大会(NeurIPS 2019)将于当 ...

  6. 腾讯 AI Lab 2019 年度回顾

    前 言 农历庚子年(鼠年)新年即将到来,我们也已经进入了 21 世纪 20 年代,正是辞旧迎新,总结过去一年发展历程的好时候.在过去的 2019 年里,腾讯 AI Lab 在 2018 年的发展基础上 ...

  7. 腾讯AI Lab招聘动作生成方向实习生

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->[AI求职]微信技术交流群 腾讯AI Lab招聘动作生成方向实习生 参与动作预训练模型或语 ...

  8. 腾讯首位17级杰出科学家诞生:腾讯AI Lab负责人张正友

    2021年1月8日腾讯宣布,腾讯Robotics X实验室及腾讯AI Lab负责人张正友博士成为腾讯首位17级研究员/杰出科学家,17级是腾讯历史上最高的专业职级. 腾讯AI Lab及腾讯Roboti ...

  9. ACL 2021 | 腾讯AI Lab、港中文杰出论文:用单语记忆实现高性能NMT

    来源:机器之心本文约3200字,建议阅读7分钟 在 ACL 2021 的一篇杰出论文中,研究者提出了一种基于单语数据的模型,性能却优于使用双语 TM 的「TM-augmented NMT」基线方法. ...

最新文章

  1. LeetCode 1114. Print in Order--Java解法--并发问题
  2. phpstudy如何安装景安ssl证书 window下apache服务器网站https访问
  3. Spring Cloud 采用Consul做配置中心
  4. 云服务器ECS使用限制概览,让你的上云少走一些坑
  5. Activiti5第七弹,自己实现一个ProcessEngineConfiguration同时自定义拦截器
  6. WindowsAPI----AttachThreadInput使用
  7. Maven使用注解配置SQL映射器(@Select,@Insert,@Update,@Delete)
  8. Makefile、.mk、.bp、Blueprint、Soong、kati工具链的关系
  9. Linux设置命令别名alias
  10. 【网络安全】物理层(网线、接口、信号、MB/s和Mb/s)
  11. 2017年区块链技术与加密货币市场:回顾与展望
  12. h5破解网站图片防盗链
  13. arcgis发布服务后符号字体丢失解决办法
  14. 什么是 Transactions Paper ?
  15. gz是什么意思饭圈_网上看不懂的字母缩写!知道Xs是什么意思吗?不是尺寸!...
  16. 计算机网络——模拟信号(四)
  17. 2018-04-24-c-gluttonous-snake 财务同比环比、SSH和SSM
  18. JPEG简易文档V2.11
  19. python按日期爬取b站弹幕 2.0版
  20. mysql 公历变农历_经过完整测试的农历-公历相互转换

热门文章

  1. PHP用支付宝沙箱账号测试支付功能
  2. Linux之CentOS防火墙及端口操作
  3. java序列化_Java序列化详解
  4. php如何在mysql数据库里创建表_php创建mysql数据库以及数据表
  5. conda deactivate python3_python3的配置解决
  6. 工控机的io开发_Amazing!从树莓派4B主板到嵌入式无风扇工控机,只需三步!
  7. 无线循环里面 string = “i”会内存溢出吗?_记一次公司JVM堆溢出抽茧剥丝定位的过程...
  8. diagram怎么记忆_UML20以上14图的解释、分类记忆方法及类之间6种关系
  9. 桌面图标计算机的意义,关于电脑桌面图标的3个古老问题,答对一个都是高手,你会几个?...
  10. 安装VMware Tools 灰色解决办法