查看: 9882| 回复: 40
跳转到指定楼层
上一主题 下一主题
收起左侧

机械Phd 转 deep learning, CV 方向

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 scu_aaa 于 2020-4-28 12:31 编辑

小弟,纯小白一枚,本科硕士都是化工,phd 是机械,老板发现机械就业太差了,发善心带着我转machine learning 方向,开始做一些 CNN 卷积,不过数据质量真的好差。刚开始入坑,就会跑一些模型(tensorflow),处理点图片,学的Python。
我Phd学校也比较一般,本人也不算很厉害,但学术能力还是有一些的,文章也发过几篇,刚入门用Pyhon编点代码也还行,所以想请教之后该学点什么,为了找工作该做些什么,这条路是否走的通,感觉刚入门整个人都很焦虑........

老板还是很厉害的,有CS的master学位,但是也不了解machine learning,所以基本上还是要靠自学。

上一篇:一文搞清楚 Confusion Matrix, ROC-AUC (ML,数据分析最基础的概念!!!)
下一篇:各位大佬看过来
全局:
入门的话建议看一下csn231,写一遍这门课的作业(他们家作业经常会被当作面试题)然后fast ai的网课也很好,是从engineering的角度出发。
以上两门课是千千万万转行学子都刷过的。
入门之后,建议选一个方,然后开始刷paper,做项目积累经验
泼个小冷水:
个人觉得,现在deep learning 对转行的不是特别友好,只会写个pipeline,试各种optimizer,scheduler,augmentation,调个别人的pre-train model(所谓的DL调参侠。。)拿offer有点难。楼主有老板带的话,如果可以发paper,还是有优势的,不过还是建议楼主认真考虑希望找什么样的DL工作,有方向的进行准备。
DL的东西很多,很杂。在漆黑的森林里走路很容易迷失了自己。我曾不知天高地厚学了一年多DL,刷完了各个网课,看完了Ian的书,读了好多paper,这期间阶段性的自大,一度觉得自己已经是林中猛兽了,后来发现自己做的东西在别人眼里都是toy。。。。

一般DL有三个track(cv,我不懂nlp):
- DL research: 前沿DL研究,主要是实现,优化state of the art,一般企业会prefer发过文章/会议论文的,或者做过一些跟他们产品比较相关,深层次的项目的。DL researcher基本都是各大学校的cs phd,所以bar比较高,面试你然后蔑视你,哈哈哈哈。
- DL engineer:实现底层的一些模块,对GPU编程有要求。大多数DL的模块是用cuda进行优化的。比如:你可以用numpy写一个conv layer(常见面试题。。),但是pytorch里的conv之类的模块,都是用cuda写的。
- DL software engineer:写一些deep learning的high level训练框架,data pipeline,visualization等,本质上算是个SWE with basic DL/ML knowledge,面试基本就是SWE coding难度+基础ML/DL问答





我觉的,DL是有“鄙视链”的(个人观点,勿喷),建议楼主在学习过程中要经常自省。

- 底层: 只会写个pipeline,做的项目用到的东西全是pytorch里已经写好的,model从torchvision里拿现成的,从没train from scratch过,只会classification network。(一个例子是:明白skip connection是什么,但不明白shape不同的layer间是怎么connect的)
- 入门:理解模型细节,尝试过修改和优化模型架构。尝试过除classification之外的task,比如说detection,segmentation,GAN之类的。

- 进阶:发过paper,特别擅长某个方向,尝试过beat state-of-the-art。有必杀技:比如你会cuda,看完别人写的模块,摇摇头,然后用cuda把它优化到飞起。或者你用detectron2用的贼溜,明白这个包的细节。给你任务,你能快速上手设置然后训练各种模型。

另外,根据个人观察,cv方向:
- detection,segmentation network 比较吃香(generally)
- 这一两年很多人搞3D detection(水深浅不了解)
- 最好弄懂一些传统的cv技术harris corner,SIFT什么的
- DL会cuda是大大的加分项
- 学个高级一点的包:比如detectron2。
- 多看一些sota的repo,看看别人是怎么实现的(有些paper,虽然技术很简单,但是人家也是把在各个public dataset上训练了个遍然后才得出的结论)

最后,建议楼主用一个不是那么可靠的量化指标来记录自己的进程:GPU hours

加油!

评分

参与人数 11大米 +11 收起 理由
whut123 + 1 很有用的信息!
limiu + 1 给你点个赞!
没头脑不高兴噶 + 1 很有用的信息!
243372140 + 1 赞一个
wanduzile + 1 赞一个

查看全部评分

回复

使用道具 举报

全局:
本帖最后由 BIUBIUBIUBIU 于 2020-4-29 07:48 编辑

都phd了, 还是CV方向, 就别整什么cs学位都了, 你又不去quit转码 (当然我建议直接转码). 你要是想读下去这个phd, 我给你指条明路吧.
第一, 别做二维CV了, 这两年越来越难做了, 连你的导师都不了解ml, 你们是玩不过Google Facebook的.
第二, 我不懂机械, 盲猜你可能几何与物理不错, 建议直接上手三维CV和用神经网络做动态系统预测. 前者业界学术界皆可, 现在的明星话题, paper没多少, 更关键的是目前还没有ResNet和YOLO这种二维CV里面打遍天下无敌手的算法. 后者业界目测10年内没啥用, 但是水起paper来不要太爽, ml的人写的paper一看就是物理渣, 物理那帮人写的paper感觉看起来连CNN都还没完全搞懂, 你用点心哪怕从零入门两三个月直接sota了.

评分

参与人数 2大米 +2 收起 理由
yanliangwu + 1 赞一个
scu_aaa + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

全局:
bigyeet 发表于 2020-4-30 06:13
说的好,我现在是你说的入门级别,上fast ai 课对我来说会很有帮助吗? 学cuda应该先懂c++还是可以同时学 ...

如果你有时间的话,还是很推荐看一遍fast ai的课。这门课非常多的detail。不过实话讲,这门课对内功会很有帮助,但对应付面试帮助有限,内容太过detail(除非你的面试官也看过这个然后面试你这门课的东西,哈哈哈)。。。
  • 从engineering角度来说,这门课我最大的收获是学会了很多用Python和PyTorch的小技巧(比如说Python class里的各种内置function,一些numpy的trick(eigensum之类的),还有PyTorch里hook之类的用法),一些stable computation tricks,和一些Deep Learning OODesign的思路。这些技巧可以帮助你写出漂亮的Module Class。
  • 从知识点的角度来说,如果你刷了csn和ian的书,看过一些比较火的sota paper,这门课不会给你太多新东西和观点。
  • 另外一点,这门课包括cv,nlp,tabular data,recommendation system的例子,是个不错的review


我对cuda了解的不多,以前只学过一点皮毛(还是用的python...)。个人观点供参考:cuda需要学GPU编程的算法,和一些关于cuda架构的知识。语言是实现算法的工具。c++对cuda支持的非常好,业界也基本都在用c++。虽说如果学会c++和cuda对找工作很有帮助,但学这两个需要投入的精力很大,learning curve也不是很友好,谨慎入坑,cuda学不精跟不学没什么区别。Python也可以通过numba进行cuda编程但感觉在业界没什么群众基础(job qualifications里几乎没见过numba),而且python numba对cuda的支持没有c++好(numba大概就是把你的python翻译成c++)。不过我发现,现在也有一些researcher在用numba写东西。NVIDIA有个numba的入门课程,github上应该有免费的notebook资源,可以先尝试一下试试水(我个人觉得cuda编程很枯燥。。。),如果决定go deep再认真学c++和cuda。




评分

参与人数 3大米 +3 收起 理由
limiu + 1 给你点个赞!
scu_aaa + 1 很有用的信息!
yanliangwu + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
 楼主| scu_aaa 2020-4-28 12:31:01 | 只看该作者
全局:
本帖最后由 scu_aaa 于 2020-4-28 12:33 编辑

希望大神能给点意见了,周围就我一个人,我连CS或者统计专业的人一个都不认识........
回复

使用道具 举报

全局:
认识一个这样的 拿了google的offer
回复

使用道具 举报

🔗
 楼主| scu_aaa 2020-4-28 12:37:00 | 只看该作者
全局:
alinaling2012 发表于 2020-4-28 12:32
认识一个这样的 拿了google的offer

您能详细说下他的经历和情况吗,还有是什么时候的事情。
回复

使用道具 举报

全局:
不知道能不能在你们学校minor一个硕士学位,如果不行的话,也可以上online master
回复

使用道具 举报

🔗
 楼主| scu_aaa 2020-4-28 13:09:12 | 只看该作者
全局:
brenda2233 发表于 2020-4-28 13:05
不知道能不能在你们学校minor一个硕士学位,如果不行的话,也可以上online master

我也想问问导师能不能读一个学校的CS master, 但第一年肯定要考,Qulify 考试,压力巨大,只能看第二年可不可以。
回复

使用道具 举报

全局:
scu_aaa 发表于 2020/04/28 13:09:12
我也想问问导师能不能读一个学校的CS master, 但第一年肯定要考,Qulify 考试,压力巨大,只能看第二年可不可...
嗯嗯 加油哦
回复

使用道具 举报

🔗
 楼主| scu_aaa 2020-4-28 13:20:13 | 只看该作者
全局:

好的,谢谢您了
回复

使用道具 举报

全局:
还有带头转方向的的导师 真是良心啊
回复

使用道具 举报

🔗
bigyeet 2020-4-29 03:12:58 | 只看该作者
全局:
导师不懂的话一定一定一定要寻找ML厉害的人,其他教授或者做过的同学。我是ME专业但是我的课题围绕着deep learning,刚开始走了好多弯路因为基本的东西不太懂我就去盲写代码了。后来才想起当时犯的一堆错误。

也看你是什么样的人吧,我是hands on learner所以没什么耐心吧书看了一大半才开始动手,我自己搞来搞去也学到不少,但是效率绝对不高。

想提高你对网络原理的理解的话,我建议试试pytorch。写一个训练脚本是一步一步来的,网络里面真正发生了什么你都要写出来,很有帮助。google一下“what is torch.nn really?", 这是一个从零开始的tutorial,不长,非常完整

评分

参与人数 2大米 +2 收起 理由
scu_aaa + 1 很有用的信息!
mengmeng4263 + 1 赞一个

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表