light999 发表于 2024-7-15 17:53

算法工程师在未来成长情况如何?

算法工程师在未来成长情况如何?

む阿喀琉斯ざ 发表于 2024-7-15 17:54

蚂蚁金服从神坛跌落,京东在2021年第三季度利润由盈转亏,一批顶尖算法科学家离开了商业战场,其中包括阿里巴巴首席数据科学家、蚂蚁金服副总裁漆远,以及IEEE Fellow、京东副总裁、京东人工智能研究院院长周伯文。这些学术明星和知名学者的离开再次引发了新一轮挑战,那么算法工程师的道路又将何去何从呢?

学术明星们无法激发业务增长
过去,曾有不少学术明星如字节跳动的马维英和李磊、腾讯人工智能实验室的张潼、百度的吴恩达、谷歌的李飞飞等纷纷投身企业,但他们大多未能度过“七年之痒”,最终又回归学术。这是否意味着算法工程师已经失去了市场需求呢?

许多互联网公司已经完成了算法的第一波大规模基础设施建设,比如电商和搜索引擎的搜索推荐、新闻媒体的多媒体内容推荐、互联网广告的实时竞价系统、客户服务的AI语音外呼和智能应答系统等。随着这些基础机器学习算法模块在不同业态的深入应用,算法所服务的功能模块已经基本完成,它们带来的功能上的提升和成本效益已经初见成效。然而,随着算法迭代对业务增长的天花板的出现,曾经的学术明星们很难再凭借算法或技术优势为业务带来指数级增长。这也就意味着,随着第一轮算法红利的结束,科学家们在企业立足面临前所未有的挑战。

中台算法工程师与业务算法工程师将展开竞争
一旦建立起算法的基础设施,要再次借助算法推动业务增长就会变得更加困难,也更为缓慢。特别是对于技术中台的算法工程师团队来说,他们远离业务,研发周期长,很难适应国内互联网公司短平快的节奏,从而与业务渐行渐远。
随着业务线上数据化运营能力的不断提升,对商业分析师、数据科学家、策略运营人员的算法要求也逐渐提上日程。在新业务线上,擅长Excel和PPT商业布局的人才,同时又能使用Python和Spark编写算法的数据科学家或业务算法工程师,备受青睐。尽管他们在技术开发和机器学习理论方面可能略逊一筹,但能够编写代码并理解业务KPI的算法工程师无疑是大受欢迎的。算法研究可能交给高校去做,而企业更看重的是成果转化。算法的好坏直接关系到业务绩效,这已经成为一种趋势。
与此同时,中台算法工程师们在技术方面功力深厚,精通C++和Python,掌握最新的深度学习算法,但却未必能够左右公司业务的增长。在这种情况下,重视技术还是注重业务,对于每个公司而言都有不同的答案。对于算法工程师的职业发展而言,技术出色的团队很难找到业务突破口,而晋升可能就只能从编码到发表论文,全方位内卷。而业务算法团队更靠近业务,也更靠近预算,晋升的机会更多。毕竟,在企业亏损的时候,研发部门的业绩产出往往成为首要裁员对象。与之相对,一线产品销售或与公司现金流挂钩的人,往往是企业最后依靠的人才。
在互联网行业发展逐渐放缓的今天,资本市场对业绩的要求愈发严格,中台算法工程师与业务算法工程师之间的内卷和冲突日益突显。对于算法工程师个人而言,哪条路才是职业发展的快车道,还需因人而异。
算法工程人才市场需求接近上限
自从阿里巴巴发起了“拆中台”运动以来,各大互联网公司开始重新审视数据中台、算法中台、技术中台等一系列中台在当前业务发展阶段下的意义。
那些曾经拥有几百人甚至上千人规模的中台技术团队已经完成了历史使命,帮助业务从零到一迈出了关键一步。在商业竞争进入下半场之际,业务将成为主导,中台则需要反哺业务线,通过小步快跑的方式完成更多新业务的开拓。否则,成百上千的技术人才和巨额人力资源成本终将成为业务增长的累赘。
从人才需求的角度来看,算法工程师仍然是互联网公司竞相争夺的热门人才,但每年新增算法工程师岗位的速度正在减缓。头部的人才仍然可以在各大头部企业立足,而中下游的人才则率先感受到“内卷”和“供大于求”所带来的求职压力。
总的来说,算法红利已经接近边际效应的瓶颈,学术大佬无法通过技术重塑企业业务实现指数型增长。在上升期,他们打造学术声誉;在红利期,他们投身业界;而在衰退期,他们则重新回归科研。算法人才需求的降速必将导致未来纯算法工程人才的内卷。π型人才可能在新一轮的竞争中脱颖而出,但这终究不是每个算法工程师的必由之路。
最后,我强烈安利你一份算法工程师的面试题汇总,几乎是全网最全的面试,大概有500多道,掌握后基本可以cover所有的算法工程师面试。

超级干货!知名大厂推荐算法岗面试题都在这里了!

cn521 发表于 2024-7-15 17:54

感谢邀请,下面分享的是诸葛越老师的一些心得体会。
分享主题|关于工业界算法工程师和研究员职业发展的一点思考
分享嘉宾|诸葛越 Hulu
<hr/>导读

近年来人工智能技术取得了巨大的突破,应用到工业界的场景也越来越多,吸引了大量的人才涌进算法研究领域。我认识的很多朋友也投身其中,在学术界做研究的有,在工业界搞应用研究的也有。同时因为工作的原因,我也接触了很多算法方向的候选人,有些是学生,有些是来自于工业界的其他公司。更深的接触则是来自于与Hulu内部算法团队的同事们,不论是日常的研究还是人员晋升时让我有机会和大家有很多深入的交流讨论,其中就包括了算法工程师/研究员在工业界职业发展的问题。算法工程师/研究员作为一个比较新的职业,还没有成熟的职业发展路径做参考,所以我在这个领域的很多朋友、同事都会遇到这个问题:"接下来,我该怎么办?我的出路有哪些?"
我今天的分享不会给大家指出具体的路径,因为每个人和每个公司都不一样,但希望通过提出一些具体的问题,引发算法工程师/研究员群体对未来职业发展的思考,最终找到一条适合自己的职业发展路径。
我今天的分享会分为三部分:

[*]公司组织架构
[*]人才模型
[*]值得思考的问题
<hr/>公司组织架构

很多人可能会有疑问,聊个人职业发展为什么要先介绍公司的组织架构?它和职业发展有什么关系呢?我想说不仅有关系,关系还挺大。首先,每个公司的组织架构都不同,不同的架构决定了不同的晋升通道,第二,职业路径规划是为了在职场上走的更高更远,所以脱离实际的晋升通道谈规划是不实际的。你在做职业路径规划时,首先就要了解所处公司的架构情况,明确可能的职业路径有哪些,然后才能确立目标并为之计划和执行。
接下来我就简单介绍下三种常见的组织架构:




第一种是AI LAB。这种模式在大公司很常见,老牌的有以MSRA为代表的外企研究机构,国内的如百度的深度学习研究院、阿里达摩院、头条的AI LAB等。AI Lab可以算是工业界中顶级的人工智能研究机构,汇聚了众多的业界大牛和顶尖人才,做出很多根植于工业界的研究贡献。在这样的结构下,你向上走需要具备的技能和产出、能达到的高度肯定与在研发线的同学是不一样的。




第二种的AI团队是在研发线,位于CTO下面,支持不同产品线和公司级别的AI需求。对这个架构下的AI团队,公司希望它提供的是一种通用的类似于中台的能力。




第三种的AI团队位于不同的产品线上,这种结构在大公司常见。产品线比较丰富,且用户量较大,因此需要有专门的AI团队进行支持。比如在现场与我沟通的一个小朋友,他是腾讯看一看团队的算法实习生,听他介绍了解到腾讯里面团队分工很细致,算法团队和工程团队是分开的,算法团队又分为独立的召回团队和排序团队,每个团队在自己的方向上做的很精细。




以上三种结构是比较普遍的,大家可以对照想一想你们团队在哪个架构下面,你又在团队的什么位置上。两三年后你肯定是想往上晋升的,那在现有的晋升通道下需要具备什么样的技能和产出呢?在向上呢,还需要怎么做?继续向上又如何呢?这些都是需要大家提前思考的。
<hr/>人才模型





接下来给大家介绍一下人才模型,在给定了公司架构后,你要怎么做呢?大家可以看这个图,一个大写的字母“T”。这是我经常给Hulu的同事讲的,我们要想象我们的技能就像一个“T-shaped”。也可以比喻为大家熟识的“wide&deep”算法,就是你要走多宽,你要走多深。




有一类人,尤其是我们今天的受众,应该是倾向于偏深的,从而成为一个专家型人才。比如有一个人,他想成为一个专家,我们对话如下:
我问:5年之后你想干什么?
他答:我想做一个专家;
我问:那10年之后呢?
他答:更专的专家。想成为专家很好,但只说专家是不够的,假如说要成为Machine Learning的专家,好像有点太泛了。所以接下来还要问自己另外一个问题,那就是我要“专”什么?对于技术同学来讲,大概有三个维度上的专家:
第一,某一项技术的专家。比如说我是强化学习方向的专家,我对强化学习演进的历史特别清楚,过往的技术点有哪些,未来可能的研究趋势有哪些,更重要的是我还为这项技术的发展做出过某些重要的贡献。那我就算是强化学习的专家了,这是一个很确定的。
第二,某一技术领域的专家。比如说CV是一个技术领域,这个领域里有很多特定的算法,虽然我不是某一特定算法的专家,但是我都了解,更关键的是我可以利用这些成熟的算法解决特定的业务问题,这也是一类专家;例如推荐系统也是一个领域,也可以成为这个领域的专家。
第三,某一商业领域的技术专家。比如说拿商业广告来说,它包含了一整套的技术,例如说怎么优化网上广告的配型,比如说怎么做广告的个性化推荐等,你不仅都知道还可以带领团队搞定整个系统的问题,所以你也可以成为这一商业领域的算法专家。
如果你想成为一个专家,那到底是你想成为上述三种的哪一种呢?有过思考吗?




我们接下来说第二类,与专家相对应的是偏宽度,简称为“杂家”吧,也有三个维度:
第一,全能型算法工程师;这类工程师的学习能力特别强,给他任何一个问题,都能通过快速学习掌握相关知识点,然后把问题解决;再抛给他另一个完全不同的问题,依然可以快速解决。其实在某些类型的企业或者某些阶段的企业,给算法工程师营造的工作学习环境就是这样的,你没有办法决定精专一个方向,因为每天都要面对各种层出不穷的问题,且都需要你尽快解决。但是大家可以想象在这种环境长期发展下去的话,对算法工程师长期发展会造成什么影响;
第二,可能不完全包含算法工程师,在特定的领域内,你对数据全流程都了解,对数据怎么从头到尾应用到机器学习领域都了解,有点数据科学家的意思。
第三类,在大厂或者大平台有过丰富的经验,用同样的算法解决不同量级的问题;相较于其他没有相关经历的算法工程师,你知道怎么去处理更大的问题面对更大的挑战,这是很重要的优势。
总结来说,即使说你什么都能干,也要想一想是在一个什么样的框架下处理什么样的问题。




再说第三类,还有些人在特定阶段要走向管理,转向管理需要具备的技能与前两类又不一样。
其实当你已经是一个领域的专家后,大家都会在继续走专家线还是走向管理线间有过思考和摇摆。但是不管你最终走向何方,一定要知道适合的才是最好的。怎么判断自己更适合哪个呢?那就需要把专家线和管理线对人才模型的要求搞清楚。专家线前面已经说过,我们在介绍下管理人才需要具备的技能。
第一点,“学而优则仕”。怎么理解呢?只有那些已经成为技术专家的人,才有选择的机会。转管理是有门槛的,发展路径会一般是技术专家-技术leader-管理。;
第二点,需要学习相应的软技能。这个涵盖的范围还挺大,简单列举些:如何招人、如何用人、如何保人,领导力,沟通能力,项目管理能等等。
如果你未来想要走向管理岗,在技术上一定要有建树,还要提前学习和储备相应的软技能,而不是转过之后在补充。
<hr/>值得思考的问题



这次分享不是为了给大家具体的答案,而是希望能够引发大家对于算法工程师/研究员职业发展问题的思考。人无远虑必有近忧,想清楚后早做相应的规划和准备。接下来会给大家提出几个问题:
1. Deep and wide, which domain?

这个问题在之前讨论过,大家可以回顾下。希望你在平时对这个问题就有深入的思考,不要到三五年之后被问到的时候回答“我还没有想好”。找不到方向时,往哪个方向走都是错误的。
2. How much do i want to work with people? And how good am i?

大部分人都有转管理的想法,但是你一定要清楚做研发与做管理是很不一样的。简单提醒几点:
第一,何时选择转管理?如何从技术专家过渡到管理岗位?这是需要面对的第一个问题;
第二,如何获取团队的信任?是不是只要你的技术足够强,就可以获取团队成员的认可和尊敬,就可以把老板交代的任务都干好。是不是真的是这样子的?
第三,如何尽快进入管理角色?你要充分意识到管理工作更多是和人打交道,包括上级老板、一起配合的兄弟团队以及你所带领的团队成员,涉及到很多与人沟通的细节,你该如何应对。
3. How to balance engineering skills vs research skills?

这个问题是算法工程师群体们普遍都会遇到的,算法研究能力or工程能力。您在其中一个方向上成为专家是没有问题,企业都会有合适的位置给到你。但如果你想走到更高的职级,就需要不断拓宽与现有工作相关的技术栈。大家可以回到开头讲的团队架构图,你会发现在组织的特定层级的特定位置,算法研究和工程能力会结合起来,这就要求位于这个位置的人必须兼顾两个方向,两个方向都要通,否则很难做到把两个方向的团队带好。
随着近两年算法岗位的成熟,有一种说法重新被大家认同,那就是“算法工程师首先是一名工程师”,可见对算法工程师工程能力的重视已经是普遍的观点了。
4. How to balance working on the real problems vs exploring advanced tech?

对于这点,它不是一边好于另外一边的问题,更多的是环境塑造或者个人偏好。尤其近几年,企业对算法应用的需求激增,但偏偏人才供给短期内又很难被满足,导致很多算法同学一个项目接一个项目的做下去,解决了一个又一个的实际问题,在这个过程中自然积攒了大量的实际经验;但是另外一些身在Ai Lab的算法同学就不一样了,顶会paper一篇接一篇的发,保持着对新技术新发现的持续跟进。你很难说一个好过另外一个,需要认清个人更喜欢哪类工作,以及在特定的环境下做符合预期的事情。
5. How to develop methodology over time so you can solve larger and more complex problems?

最后是关于发展个人方法论的问题,这个问题我在内部也经常提起。拿我们团队举例子,你是团队的一个reasearcher,业界一些前沿的技术成果都跟上了,那你如何才能在此基础上做的更好呢?
大家可以思考这样一个问题,工作经验分别为1年、5年、10年的三个工程师在解决同一个问题时的差别是什么呢?结果可能都一样,那就是问题都被解决了,但真正的差别在于大家看问题的角度和维度不一样。作为工作经验久的工程师,你看到的不应该仅仅是问题的表面,更要看到问题的前因后果,以及其他与此相关的事情。为什么会这样呢?因为通过多年的工作积累,资深的工程师已经有了解决问题的框架,可以把问题放在框架下拆解分析,最后找到解决问题的方法。
随着工作年限的增加,大家一定要总结并提炼出与工龄相匹配的方法论,否则你是无法对“后浪”形成竞争优势。形成了自己的方法论后,不仅可以更高效的应对老问题,还能从容的面对新问题。为什么会呢?因为老问题可以直接套用现有解决方案,效率肯定提高;面对新问题时,将问题放在现有的方法论下进行拆解,很快也会找到方案。你一定要知道,随着职级增加的不仅是收入,还有需要处理问题的数量。如果没有积累,你在应付激增的问题时会显得很吃力。
今天的分享就到这里,希望通过这些问题引发你对职业发展的思考,早日找到适合自己的发展路径,谢谢大家~

kino 发表于 2024-7-15 17:55

我觉得不仅仅是算法工程师,对于算法程序员都应该为自己之后做好准备,算法开发两边下注,不停的提高自己核心竞争能力。
算法工程师这块,感觉一个是往深了做,对于某个领域能够钻研深了,一个是往广度上扩,多学点别的领域,比如你是做CV的,也学习点推荐系统的东西。
这样其实能够有一些差异性。
对于现在的校招算法工程师来说,三个方面:论文,竞赛,实习,任选其一,找到一个还不错的算法岗offer就没太大问题。
三个皆有那是大佬!!
除了这三个,深度学习方面的基础知识还是要懂得。
我根据自己的入门和工作经验,用八千字,总结了一份超详细的保姆级深度学习从零入门路线图,分享给大家;
整个思维导图的路线图分为六个部分:

[*]基础知识;
[*]机器学习理论入门;
[*]机器学习竞赛实战;
[*]深度学习理论入门;
[*]深度学习竞赛实战;
[*]深度学习面试题汇总;
整个路线图的思维导图如下,我把对应的视频和github链接全部放在了思维导图备注里面;
也可以搭配着视频观看:获取思维导图的方式大家可以看视频简介:【20220301注解:因为资料被某些人倒卖,所以需要加我之后我简单判别下非培训机构人员,手动发你】
三个月从零入门深度学习,保姆级学习路线图_哔哩哔哩_bilibili
http://picx.zhimg.com/v2-d2175e149992cf82b65438e7fe9725ca_r.jpg?source=1def8aca

针对这六个部分,我们一个个的来看:
1.基础知识学习

首先,我们来看基础知识部分;
你需要掌握两个方面;第一个是数学,第二个是Python面向对象编程的基础;
首先对于数学来讲,我想很多搜索入门路线图的朋友,都会被推荐很多数学方面的大部头的书籍和视频和科目,比如说:微积分、线性代数、概率论、复变函数、数值计算等等;
我觉得如果当前的任务是入门,而不是做一些开创性的研究,这些并不全是没有必要;
从的建议来说,首先掌握线性代数里面的:向量、矩阵、运算、范数、特征向量和特征值;
我这里推荐一个中文视频,【两个小时快速复习线性代数】;链接看我思维导图思维导图的对应位置;
在复习的时候,不需要你完全记住,但是需要你用笔记画一个大致脉络图出来,把各个细节写上去,在以后需要用到的这个时候,像查字典一样能够查到就可以;
其次对于高数来说,需要掌握的主要就是4个:导数,梯度,泰勒公式,和概率论;概率论快速的过一遍就可以,了解一些基本概念,比如说条件概率,最大似然估计等等,我这里推荐一个视频,【1个小时快速复习概率论】;链接看我思维导图思维导图的对应位置;
有了这些数据基础,对于入门深度学习就够了;之后,如果遇到不懂的,在这个之外,我们再去学来得及;
第二个基础知识是Python;
Python是一种编程语言,是我们后面机器学习和深度学习中数据处理,实现模型的主力语言;
对于Python而言,不需要你很精通,只需要有一定的Python 面向对象编程的的基础就可以;
在这里,理论方面,我推荐廖雪峰的Python课程,这个课程没有必要都看,地址在思维导图备注
这个视频里面的目录,并不是都去学习,我们只需要从第一个简介开始,学习到常用的第三方模块;之后,有了一定的Python基础,就可以不用学习了;
之后需要提升的你的实战能力,我给你大家推荐一本书,学起来也很快,叫做【用Python做数据分析】;
这本书的中文翻译版链接在这里:见思维导图备注
这本书,不用全都看,看重点章节就可以;当然全看了,也很快,因为这本书本身学习起来就很简单;
我为什么推荐这本书呢?首先第一点,这本书确实看起来很简单,入门门槛极低,第二,这本书的内容,在我们往后的机器学习和深度学习关系很密切,因为我们在构建模型之前,需要很多操作去处理数据,用到这本书介绍的这两个api包;
看完廖雪峰的教程和这本书,你会掌握两个东西,一个python基础知识,一个是究竟怎么用Python实战去处理数据;
2.机器学习理论入门

第二个部分,我来重点介绍机器学习理论入门路线图;
对于机器学习理论算法,我推荐一本书籍和一个博客和一个Python包
书籍是:李航的统计学习,主要,不是全都看,我一会会告诉你看哪几个章节;
博客是刘建平老师的博客,Python包是sklearn;
我们先来看这个统计学习,我谈三个准则:
三个准则是:
第一,作为入门选手,不要每章都去看;
第二,不要用python从零去造轮子去实现这本书里面的算法,千万不要这样做,太浪费时间;
第三个,对于重点章节算法必须能做到手推公式,重点算法其实不多,一会说;
这本书一共是分为了11章,你只需要去看其中的六章内容,分别是:1,2,4,5,6,8
我带大家看一下这本书目录:
第一章是统计学习概论;这章是在学习整个机器学习的一些基础概念,比如说什么是回归问题,什么是分类问题;什么是正则化,什么是交叉验证,什么是过拟合等等基础概念;必须掌握,没有商量的余地;
第二章是感知机,是最简单机器学习模型,也和后面的神经网络有关系,必须掌握
第三章是K近邻算法,这个你现在不需要看,跳过它;
第四章是朴素贝叶斯算法,这个非常重要,里面的概念比如说后验概率,极大似然估计之类的,必须掌握
第五章是决策树:这很简单,就是如何特征选择,两个决策树算法;也要掌握
第六章是逻辑回归和最大熵;要看
第七章支持向量机,我说一下我的观念哈,我认为这章不需要看;为什们呢?首先在我自己的工作中,几乎没用过支持向量机;而且现在,在今天,如果你在面试深度学习岗位的时候,有的面试官还在让你手推SVM公式的话,我认为这个面试官是不合格的,这个公司可能未必是你很好的一个选择;
第八章提升树,必看,这个提升树算法非常重要;
第九章第十章第十一章,都不需要看;对于隐马尔科夫和条件随机场,之后你如果想深入学NLP,再来看;对于EM算法,入门之后你碰到的时候再去看;
我刚才谈到,对于重点算法必须能够手推公式,哪几个重要呢?不多,逻辑回归,朴素贝叶斯,以及提升树里的xgboost算法;别的算法,你能够自己复述一遍讲出来,就够了;
在看的过程中,如果有不懂的怎么办?就是我刚才推荐一个刘建平老师的博客;
在这里:见思维导图备注
这个博客很好,有对应理论介绍,也有使用sklearn实现代码;
我刚才还谈到一个准则,是不要去从零造论文实现算法,因为sklearn可以很好的帮助你;
在这个过程中,你要去搞清楚这个算法输入数据,输出数据,每个参数的含义是什么;可以自己自己调一下参数,看看不同参数下最终效果有什么不同;但是在这里不要花费太大精力在调参上,因为你现在代码实现的是一个demo,数据量很小,调参没什么意义;什么调参呢?我一会会讲到;
整个机器学习理论部分,如果你真的认真去学习,三周时间,你肯定能搞定;你想啊,总共看6章,每章你看四天,这四天,你期中三天看理论部分,一天用代码跑一遍熟悉一下感觉;
其实代码这块要跑起来,很快,都不需要一天,两三个小时就可以;四天搞定一章,三周看完一点问题没有;
3.机器学习竞赛实战

然后重点来了,理论部分看完了,也用sklearn做简单的代码实践了,接下来做什么呢?要把这些算法用到实践中去;
也就是我要谈的机器学习竞赛代码实战:在这里,我只推荐一本书,叫做:
阿里云天池大赛赛题解析——机器学习篇;
记住啊,是机器学习篇,不是深度学习篇;
我先说这本书要不要买:首先我自己是买了这本书,但是我发现书很厚,但是有大量的代码占据了很大篇幅;后来发现代码在天池上已经开源了,所以买完之后有一点点后悔;不过就全当为知识付费了;
拿你们要不要买呢?我觉得没啥必要,反正代码是开源的,一会我告诉链接;不过要想支持一下书的作者的话,可以买一本支持一下;就不要下次一定了;
天池是一个竞赛平台,这本书里面它包含了四个实战型的任务:
工业蒸汽预测
天猫用户重复购买预测
O2O优惠券预测
阿里云安全恶意程序检测
我来告诉大家怎么看这本书:
有四个任务是吧,你挑其中的一个或者两个,不需要都看,没必要;
怎么确定把这一个或者两个任务吃透呢?
七个步骤:赛题理解、数据探索、特征工程、模型训练、模型验证、特征优化、模型融合7个步骤
开源代码的链接我放在了思维导图的备注;
就像我说的,四个任务中挑一个或者两个,在一周,七天,三天看一个,七天看两个,或者七天你就看一个,比如第一个,把它吃透就够了;
看完之后,你会对之前学习的统计学习书籍里面机器学习算法有一个非常清楚的认识;
所以整个机器学习的理论和代码时间,花费时间为1个月;
4.深度学习理论学习

我把深度学习的入门仿照机器学习,也分为两个部分,先学理论,再实战打比赛;
其实说心里话,深度学习入门比机器学习入门要简单的多;
在网上很多朋友在推荐深度学习入门路线的时候,会谈到李沐老师【动手深度学习】;我自己也在跟着学习这个课程,我也学到了很多;
但是讲心里话,如果是带入一个初学者的角度去看这门课程,可能会有听不懂的情况;所以这门课程可以先放一放,我给大家推荐两个视频和一本书;
我们都知道深度这块主要就是分为NLP和CV;
NLP任务上大概可以分为四种:文本分类 文本匹配 序列标注 文本生成,
CV任务大致也可以分为图像理解和生成:理解这块大致可以分为:分类、检测、分割、追踪; 生成这块基本就是GAN模型
对于入门来说,我们不用学这么多,我们只需要学籍基础的神经网络,然后通过文本分类和图片分类任务去熟悉掌握整个徐娜林和预测流程,比如数据处理,模型搭建等呢吧;
所以我推荐的这两门课程也是很出名的:
就是大家常说的cs231n 和CS224n;
我来告诉大家怎么看这两个视频,同样不是全部都看;

[*]推荐的视频cs231n;
B站视频链接见思维导图;
整个视频在B站是分为了33讲,作为入门来说,主要是学习p1-p22;
也就是从第一讲课程介绍-计算机视觉概述到循环神经网络;
我们来打开看一眼:
然后这个视频不是让你一直看,看完一部分之后,去完成对应作业;
它的作业有三个,我把实现代码链接放在这里:见思维导图备注
你去做前两个,实现图像分类任务,实现卷积神经网络:bn,dropout,cnn 都要看一下;
第三个作业比较复杂,大家不用去看,只需要做前两个;
注意,不需要自己从零去做这个作业,直接看给的代码仓库,去看人家怎么实现的,当然你如果有自信而且想要锻炼自己,没问题,可以从零去实现。但是对于大部分人,你去对照着代码一行行的看,去理解为什么这儿写,输出输入是什么;
在这个过程,就会涉及到一点,就是框架的学习,我推荐大家使用Pytorch;
框架框架学习,我这里我后面会讲到,我先在这里插一句,就是大家可以去看B站刘二大人,地址在这里:见思维导图备注
它这个pytorch学习曲线比较平滑,大家在在看计算机视觉视频之后,完成代码的部分,如果有不懂的地方,穿插着去看这个刘二大人的视频;
因为刘二大人这个视频会涉及到CNN和RNN,所以如果你一开始就看,可能会有点费劲;
我举个例子吧,比如说你看完CNN网络,然后你去完成第二个作业,突然你发现里面有些不懂,不知道为什么这么弄,然后你去看刘二大人对应的视频讲CNN代码的;是这么个顺序啊;
整个计算机市局视频和代码学习完之后,你必须要掌握到什么程度呢?
必须要把下面这些完全掌握:
反向传播梯度回传,损失函数,优化算法,多层感知机,卷积神经网络,普通的循环神经网络,以及一些dropout和BN掌握住;
2. 自然语言处理:
推荐一个视频,非常经典的 CS224n:
链接:见思维导图备注
这个课程不是需要都看,要有选择的看:
在B站的官方主页,它包含了18讲的内容;在入门阶段,你只需要看P1-P5和P8,P9,P11;
通过看这个视频你要能够达到什么地步呢?
其实这个视频和cs231n在基础部分是重叠的,对于基础部分,大家可以都看,两者兼学会更好
必须熟悉的掌握:反向传播,词向量,RNN,GRU,Lstm,Seq2Seq以及attention机制;初步了解卷积神经网络;
有作业,一定要认真做,自己写不出来,仿照着别人的写:见思维导图备注
作业也不是都写:重点看a1,a2,a4,a5;其实a5这个不做的话,也没问题,把前面给的这个三个一定自己走一遍;
作业涉及到词向量和机器翻译;
有的朋友常常会和我反应,不知道att这种细节是如何实现的,其实这些都是最基础的东西,一定要从零看代码,有余力的话,可以自己实现一遍,非常有帮助;
在学习这两个视频的过程中,视频是英文的,而且涉及到的一些经典概念,不太容易理解,那么必须要看这本书:
邱锡鹏
代码的学习过程中,不用去过度的关注调参之类的,而是关注代码是怎么写的;因为调参这块tricks后面我会有专门的部分提升;
3.Pytorch框架学习
pytorch框架的学习:其实这个pytorch学习应该是融合在上面这个计算机视觉学习中的;可以在看完视频只有,写作业之前,先刷一遍这个Pytorch教学视频;
B站的刘二大人:《PyTorch深度学习实践》完结合集 https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=1631997590037031874&spm_id_from=333.337.0.0
但是它好像没有源代码,评论区有小伙伴手敲了代码,地址在这:https://blog.csdn.net/bit452/category_10569531.html
5.深度学习竞赛实战:

重点来了,上面谈到的这些深度学习的东西,都是在给你打基础;
但是要记住,我们学习深度学习是为了实战:我给大家准备了两个学习曲线非常平滑的实战项目;
一个是新闻分类项目,一个是街景字符识别,也就是图片分类项目,有的人可能会认为这两个项目非常简单,但是我认为千万不要小瞧这两个项目,扎扎实实做完这两个项目,对你的帮助绝对比你想象的要大;
先说NLP的新闻文本分类任务;地址在这里:见思维导图备注
就像我所说的,这个任务是一个NLP中一个基础任务-文本分类任务;这也是绝大部分从业的业务型NLP工程师日常工作最常见的工作需求;所以掌握好这个任务非常关键;
那么怎么掌握呢?在天池上,有开源的赛题解析,我挑选几个我认为很好的notebook给到大家;
task1:赛题理解:
jupyter notebook 链接,见思维导图备注
就是仿照你工作的时候,运营人员怎么给你提的需求,你听完需求要去分析它是什么问题,是个分类问题,回归问题,NLP问题,CV问题,多模态问题?
task2:分析数据:去看字符分布,最大长度,链接思维导图备注
task3:基于机器学习的文本分类任务:先做一个baseline出来,不是先搞大模型复杂东西出来;
链接见思维导图备注
task4:不同深度学习模型:
fastext:它是一种词向量,也是一种文本分类模型:对应的论文链接在这里:对应的我的博客解读,在这里,链接见思维导图备注
w2C:在视频有介绍对应的论文链接对应的我的博客解读在这里
textcnn:也就是用CNN模型来做,链接见思维导图备注
textrnn:使用RNN做,链接见思维导图备注
之前深度学习视频学了,CNN,RNN等基础网络,这里你就去实战这些模型;
bert;这个可以先不看,等你入了深度学习的门,认为自己想搞NLP这个方向了,你再去看相关的论文;我把链接放在这里吧:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.24.6406111aE3Lglg&postId=118259

第二个任务是CV任务:图片分类任务: 街景字符编码识别
链接:见思维导图备注
task1 赛题理解
链接见思维导图备注
task数据读取与数据扩增
链接见思维导图备注
task3构建
链接思维导图备注
task4模型的训练,链接思维导图备注
task4模型的集成:
链接见思维导图备注
做完这个任务,你会对在CV领域,如果加载自己的图片数据集,如何构建CV模型,增强数据,模型验证都有一个很清晰的了解;
在这两个任务实施的时候,大家可以尽情的调参,尝试各种各样的tricks提升自己的成绩;
整个深度学习
面试题:
百面机器学习;视频最后面我会提供给大家这本书非常好,真的非常好;

bluejelly 发表于 2024-7-15 17:55

两极分化严重,其实现在也已经有苗头了。
科研大牛、工程巨佬、对于领域知识深入了解的工程师会持续吃香供不应求。
闭眼调参员目测在可预见的未来会被标准工具包和自动机器学习逐渐取代。
顺便说一句算法工程师的重点还是在于强大的系统设计和工程实践能力。真要说算法本身照着现有成熟算法/论文/git repo复现一通真差不到哪里去。这两年产业界叫得出名头的大模型都是靠着底层的海量数据和可怕的工程能力堆出来的。
要不然给你个paper你也复现不出来呀。

sblei 发表于 2024-7-15 17:56

聪明的算法工程师会两边下注。算法工程师大多有硕士以上学历+发表论文。如果有硕士以上学历,而且论文citation有100左右,可以申EB2NIW绿卡,花费大约1万美元+2周时间,排期大约6年。26岁硕士毕业工作,27岁申绿卡,33岁绿卡排期current。在中国申请,在中国拿卡。
如果在中国大厂干得好,职位高,没有被“优化”的风险,就好好干下去,到P9、甚至P10,走向财务自由,忽略自己的绿卡排期。如果有35岁被优化的风险,就交绿卡I-485调整身份,半年左右拿到绿卡,去Google应该能到L4或更高,或者去微软当个senior SDE躺平养老。
美国技术烂得一逼的算法工程师遍地都是,他们的薪资比中国的算法大牛还高。两者的唯一区别就是一张H1B签证。中国技术牛人拿着绿卡,去美国取代那些水货,享受他们的高薪和大house。
我在教你们入关学,你们去谢入关学创始人。不要谢我,我是活雷锋。
页: [1]
查看完整版本: 算法工程师在未来成长情况如何?