Soft_Job 板


LINE

之前在本板分享过我在 2021 年的数据分析求职经历 我当时也找了机器学习演算法应用相关的工作 由於准备方法与数据分析领域大不相同,所以另外写了这篇文章与大家分享经验 尤其有很多资源是我在 Soft_Job 板找到的,也希望给这里一点回馈 以下文章为了 PTT 排版有稍微精简内容 部落格完整好读版在此: https://haosquare.com/machine-learning-2021-job-interview/ 这篇文章是写给跟我一样「不是」资工或统计系背景的人,我将分享我从商管学士跨领域 ,应徵机器学习工作投了 10 家公司的履历、经历了 6 场面试、最终拿到 1 家录取的历 程,我也写下我遇到的机器学习面试题、以及准备方法与学习资源,希望为同样跨领域挑 战的读者增加信心:非本科系是有机会拿到机器学习工作录取的! 本文分享的工作类型,将以机器学习演算法应用为主,不包含资料分析师(Data Analyst )、软体工程师(Software Engineer)、或者机器学习工程师(Machine Learning Engineer)。 --- ## 求职背景与结果 我在此用条列的方式简介自己 2021 年求职时的背景: - 商管学院学士学历,在校修过一些资工相关的课但是成绩不佳,有修过机器学习相关专 题课 - 在手机游戏公司担任资料科学家两年半,工作中机器学习的专案不多 - 曾在中研院担任一年的研究助理,负责金融业的深度学习与推荐系统产学合作专案,没 发过 Paper - 会打机器学习竞赛,都是国内赛事、没有 Kaggle 成绩 机器学习领域我投了海内外共 10 间公司的履历,其中日本的 Mercari (实习)、新加坡的 腾讯、台湾的 Garena 三间公司有进入面试,最後拿到 Garena 的 Data Scientist 录取 ,以下文章都是基於这几间的 9 场面试经验所撰写。 --- ## 面试经验与建议 ### 程式能力 既然是机器学习工作,写程式的能力当然是必考的,不只考程式语言特性、也考资料结构 与演算法。但是跨领域求职者也不用太担心,有个几乎所有工程师都知道的练习秘诀: LeetCode!到这个网站拼命练习题目就对了。 在我的面试经验中,机器学习工作对演算法程式题的难度要求,比软体工程师稍微低一点 点,以 LeetCode 的难度标准来说,我面试只有遇过 Easy 跟 Medium 难度的题目,Hard 等级的考题从没有遇到过。 对於程式题练习,我想分享最重要的技巧是:分类。演算法跟资料结构的题型,可以有很 多种分类法,包括 Linked List、Graph、Dynamic Programming 等等,练习的时候,如果 没有分类、只是随机选题来练,可能会变成每个分类只练习一、两题,结果上了战场遇到 某分类的变化题,实力却不足以应对,练习不就白费了吗? 因此,我的策略是在各个分类都挑出数题重要题目、有条理地练习。具体来说,我参考了 SoftJob 板友 AH Tech 在 YouTube 影片中分享的 LeetCode 分类方法与表格,在每个分 类中,我会把 Easy 到 Medium 难度而且免费的题目全部练习过,Hard 的题目则是最多只 写一题。并且,我会帮自己设定日历、在隔一周後复习刚练过的那个分类,因为,只要是 不熟悉的题型,即使练习过一遍,下次看到一模一样的题目,还是有可能写不出来!所以 请别忘了安排复习行程,如果面试题(好运地)出现看过的题目,务必要追求 100% 拿分 ! AH Tech 的分享: https://www.youtube.com/watch?v=ucTL2ZdcyOs
我使用这些练习方法,总共只练习了约 100 题,相对於软体工程师、的确题目数量算是少 的,我主观认为够用了。我通过的四场 Python 程式面试、总共近 20 题的题目中,至少 一半题目是我在这 100 题中看过的,我可以稳妥地拿分;另外一半则是用这 100 题练习 过的技巧稍微变形就能过关。我猜想,或许大家不会拿聘用资深软体工程师的难度标准来 刁难资料科学家应徵者吧。 除了 AH Tech 的分享,我也推荐以下两个 YouTube 频道: 花花酱的 LeetCode 解题: https://www.youtube.com/channel/UC5xDNEcvb1vgw3lE21Ack2Q 安妮在本板的解题技巧分享: https://www.youtube.com/watch?v=fyf-GRH1Ceo
--- ### 机器学习技术问题 机器学习领域的专业知识问题,范围超级广,从 20 世纪就提出的模型、到前两个月刚发 表的新论文,都有可能是面试会问到的。为了更有效率地准备,我蒐集了许多人的面试经 验、也整理自己的面试经历後,总结出最重要的准备要点是:"Why A, not B?" 资料科学家会用到机器学习模型的时机,是针对一个定义好的商业问题,选择一个适合的 模型。因此,面试中会考验应徵者,是否了解模型的特性、以及不同模型选择可能造成的 差异。 举例来说,常见的面试题像是: - L1 与 L2 Regularization 有什麽不同? - DenseNet 与 VGGNet 有什麽差别? - 为何你在履历中的专案经验使用 Random Forest 而不用 XGBoost? - Trasformer 在近年几乎是显学,它在任何场景都比 RNN 好用吗? - 深度学习的 Optimizer 怎麽选择?你为什麽用 Adam? - 遇到不平衡资料该怎麽处理,不同的处理策略之间有什麽优劣差异? 回答或介绍某个模型时,如果你把每个模型的每个元件都详细地介绍一遍,想必要花不少 时间、面试官大概会听到打呵欠,因此笔者认为专注回答模型的「特色」、并提出为何你 会为某场景使用 A 模型而不用 B 模型,会是其中一种有效的面试策略。 例如,当我被问到「DenseNet 与 VGGNet 的区别」,我会为每个模型只挑出几个重要特性 来讲、而不是钜细靡遗地描述: - VGGNet 的特色 - VGGNet 的架构与 AlexNet 相似,但是用到更少参数、且引入更多卷积层来增加非 线性关系 - 例如一层 7 乘 7 的卷积用三层 3 乘 3 卷积取代,卷积层涵盖的图片大小相同, 但是参数量从 49 减少到 27 - 也引入 1 乘 1 的卷积,用来增强模型对特徵非线性关系的表述 - DenseNet 的特色 - 准确度近似於 ResNet 但是参数量更少、计算效率较高 - DenseBlock 设计让深层网路也可以看到所有浅层网路所看到的内容,在原始特徵特 别重要的场景会有更好的效果 - 在我参加过的音讯分析竞赛,原始特徵对於音讯表示特别重要,所以 DenseNet 比 起其他影像辨识 CNN 模型有较好的效果 像这样,只选几个特色来讲、每个模型都只浓缩成几句话,两分钟内就可以回答完一个貌 似范围超广的问题。我认为,不要让面试官听到不耐烦、比回答的完备性重要。 --- 机器学习面试问题,具体该要如何准备?任何人问我这项问题,我都会给他这个毫无创意 的回答: > 疯狂蒐集题目、然後背答案! 机器学习有太多重要但是容易忘记的细节,求职前没有复习的话,上了面试战场肯定会十 分慌张,例如: - Vanishing gradient 是什麽意思?怎麽解决? - 决策树是怎麽建立的(要解释 Information gain 与 Gini impurity) - 随机森林实际上是指什麽东西随机? - 请解释 Precision 与 Recall 两个 Metrics - Batch / Layer / Group / Instance Normalization 之间的差别 - 什麽是 Bagging (Bootstrap + Aggregating) - 请介绍深度学习会遇到的 Underflow 与 Overflow 以及建模过程怎麽看出这两个问题 我会地毯式地到处搜索蒐集题目,记下不会的地方,整理在自己的笔记本里,时时复习, 资源包括: Sroy20 的 GitHub: https://github.com/Sroy20/machine-learning-interview-questions 板上 DrTech 大大分享的 NLP 面试经验超实用: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1565495594.A.94B.html 我得强调,上述的「背答案」策略只是为了找工作采取的不得已手段,它并不是研读机器 学习的好方法。机器学习模型背後的数学原理毫无疑问地非常重要,资料科学家需要了解 这些数学知识才能正确使用模型,但是,面对现实吧,如果你未来两个月内就要开始面试 ,根本来不及研读所有数学公式与细节! 那就先拼命背答案,等到找完工作,再为自己规 划更扎实的学习方法。 --- ### 专案经历 非本科系、或者跨领域转职找机器学习工作常有的困境,是相关作品不足,或者专案在工 作中没有太多实际成果。而在我的面试经验中: > 有机器学习相关实战成果很好,但是就算成果不多,面试官也会重视你遇到什麽困难以 及如何找出问题点并解决 我会在履历中列出参加机器学习竞赛的经验,但是名次从没拿过最亮眼的前三名,参加比 赛也都是国内举办的、不是知名的 Kaggle 国际竞赛,即使如此,只要有事先梳理内容, 小型或者名次不是顶尖的比赛也非常值得在面试中分享。为了引起面试官兴趣,我在整理 经历时,会为我的比赛作品强调以下两点: - 比赛的困难点:资料型态哪里复杂、遇到过的「脏资料」、过拟合问题 - 与众不同的做法:特殊的特徵工程、或者超参数调整策略等等,就算不是第 1 名,也可 以分享自己如何从最後一名进步到前 20 名 资料科学竞赛类型的作品经历,强调的不只是建立最复杂的机器学习模型,资料观察与清 理能力、还有为分析流程找出错误的 Debug 能力,也都是资料科学家所重视的,有竞赛经 验的读者,可以透过介绍困难点、以及与众不同做法的方式,向面试官展现出自己在不同 分析流程的实力。 --- ## 非本科系到底能不能应徵机器学习工作? 在此,笔者试着回答太多人都想知道的问题: > 不是资工系或统计系,也能做机器学习工作吗? 我投了 10 家公司,只有 3 间履历过关、进入面试,最後只有 1 间拿到录取。根据这个 经验,我会回答:可以,但是请先整理自己的心态、并且分析自己的弱点。 首先,没有资工系学历,找机器学习工作时就该整理好心态。就如前面分享的求职结果, 我投的台湾公司机器学习职缺,全都没办法进入面试关卡,我个人主观猜想,在台湾要是 没有资工背景、或者没有硕士学历,找机器学习工作时,履历特别容易被忽略。因此我认 为,非本科系的毕业生、或者从业人员,要准备好正确心态,在台湾跨领域求职不顺利的 话,不要太难过!而是该尽快练练英文能力,鼓起勇气往新加坡、日本、澳洲、或者中国 投递履历,海外的职缺对硕士学历的硬性要求相对较低,而且海外的职位总数也比台湾多 得多,履历多一些机会被看见。 其次,虽然现在网路上开源的学习资源超多,有热情的资料科学家们即使不是本科系也能 积极自学,但是,非本科难以自学练成的最大弱点会是:机器学习实务经验。以笔者自己 的经验出发,可以举例两个方面,第一是 MLOps,包括了後端 API 开发与串接、模型大小 与准确度之间的权衡、串流资料的 Incremental learning、还有平行化运算等等议题,在 校没有做过大型专题、或者没有机器学习领域的工作经验,就很难讲出 MLOps 要解决的痛 点、也不容易扎实累积 MLOps 的知识,我面试的每家公司都有问我 MLOps 相关经验,我 也感觉得出来自己对此回答较薄弱,总会让面试官眉头一皱。如果你距离开始求职还有时 间,请记得为自己补充点 MLOps 知识,至少不要上了面试战场完全讲不出一个字。 第二个值得提的非本科系弱点是完整的专案开发经验,看书与上课自学、或者透过 Kaggle 竞赛练习,通常只会学到资料科学流程的建模与特徵工程,而一开始怎麽把模糊的商业问 题定义成机器学习能解决的问题、如何选择好的训练资料、以及模型上线後如何验证成效 等等,都需要从头到尾参与过一项机器学习专案开发,才能在面试中讲出有见地的回答。 我有通过面试的两间公司,都被问到「我们发现使用者有某种滥用 APP 的行为,请问你如 何用机器学习来捕捉这项行为?」或者「我们公司的主要产品是有某某特色的影像串流, 请问你会怎麽设计推荐系统来改进使用者体验?」这类开放式系统设计问题。不害臊地说 ,我运气好在这两间公司提问的领域有一些些相关经验才能面试过关,因此,建议非本科 系又有志於机器学习工作的朋友,请在钻研酷炫机器学习与深度学习模型以外,规划时间 研究一些如上述举例的实务议题,并且为你有兴趣的公司蒐集领域知识,对此,我非常推 荐你到 PyData 的 YouTube 频道 向全世界的高手学习他们在实战中遇到过的问题。 ## 结语 不是资工系能找到机器学习工作吗?可以!但是,即使我自认本业外的时间花了很多力气 钻研机器学习与深度学习、最後也的确拿到一封机器学习工作的录取信,我还是认为自己 还有太多资料科学知识需要加强才能跟上业界标准,拿到录取大概是运气与实力的成分各 占一半,成功换了工作後也依然不敢懈怠下班後的进修。所以,对於非本科系的毕业生或 已经在工作的朋友,既然要跨领域挑战机器学习工作,就要比一般人投入两倍以上的努力 、好好准备!希望这篇文章分享可以给大家跨领域的准备方向与启发。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.160.183.213 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1646066584.A.403.html
1F:推 yifor: 推 好文 03/01 01:08
2F:推 MS006872: 强者... 03/01 02:57
3F:推 yyyyyyyv: 推 03/01 03:20
4F:推 netburst: 03/01 03:44
5F:推 CRPKT: 推 03/01 09:49
6F:推 ntpuisbest: 推 03/01 10:16
※ 编辑: AgileSeptor (1.160.183.213 台湾), 03/01/2022 10:22:50
7F:推 ManOfSteel: 推 03/01 10:31
8F:推 kyrie77: 推 03/01 11:50
9F:推 azzc1031: 干这行的 学习能力真的超重要 推 03/01 12:08
10F:推 qa8520tw: 推 03/01 12:22
11F:推 smooth000: 推 03/01 13:02
12F:推 yiche: 推 03/01 13:45
13F:推 Lomerhaer: 推 03/01 16:01
14F:推 bug2: 谢谢分享实用的心得 :) 03/01 18:12
15F:推 gl4rmp4: 感谢分享 03/01 18:58
16F:推 BIGBBBTW: 推 03/01 22:46
17F:推 cmelo1515: 推 03/02 18:21
18F:推 iam637: 推 谢谢分享 03/02 19:32
19F:推 iamyugachang: 用心推 03/02 21:35
20F:→ weiyuhsi: 推,身为统计硕的看到这篇有点惭愧XD 03/03 15:35







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP