往期回顾:
之前我总结过数据科学家必备的技能,而在我今年经历过实习后,逐步对工业界,实际应用有一定了解后,我决定重新总结一下作为算法工程师所必要的技能,大家可以根据这个list查漏补缺,技能完善,你将所向披靡。 不完全,又补充欢迎参考。
算法应该是做算法工程师的基操,然而算法何为高级,何为一般,其实应该有一个分界线。
机器学习算法,市面上这种书非常多,来来去去都会讲的,那就是基本操作。
有关理论,现在首推还是李航的《统计学习方法》,这是理解算法的根本,入门啃这本书是非常好的。
有关实现,基本的机器学习方法和上下游的数据处理与评估,python的sklearn基本就能够实现,推荐塞巴斯蒂安的《python机器学习》,讲的很全面。
周志华的《机器学习》具有很强的广度,大家可以通过这本书拓宽自己的知识面,但是仅靠这本书不够,自己多去查文献和博客,这本书做提纲不错,但是光靠这本书远远不够(举个例子,隐马尔可夫书里只讲了3个关键问题,没说怎么实现!!)。
另外推荐一本可能很多人知道但是可能没很多人看,就是ping的《数据挖掘导论》,建议大家看看,当时机器学习还是刀耕火种的时代,这本书带着我入门,至今仍觉得受益匪浅,例如关联规则,DBSCAN都是从这里知道的。
深度学习这块,BP、CNN、RNN等理解后,多去看看论文和前沿的技术。
数据的处理能力。预处理、清洗、抽取等,这里面的学问远比前面的高得多而且深得多,而且上游的数据好坏直接决定了后续用模型的结果,大概是:数据的好坏决定结果的上限,模型的好坏决定结果的上限,数据质量高低。
异常值、缺失值等。
特征抽取、转化,PCA,SVD等等。
数学能力。并非自己是数学系出身所以这么建议,是在现实场景有过一些体验才有这种感受。主要是指下面几个方面吧。
建模能力。对新的问题,无论是从无到有,还是迭代更新的数学建模能力。用公式模型对现实进行表达,能知道什么时候可以假设简化,什么时候设置参数等,需要很强的能力。当然,侧面体现的是自己查阅文献、了解问题背景的能力。
高数、线代、概率、统计。optimizer的计算来源于梯度,前向传播来源于线代,概率和统计就更不用说了(在这里强调一下,概率和统计虽然经常放在一块,但是不是一个东西!),如果要深入理解一些算法,这些就是基操,还给老师是肯定不行的。
公式的推导能力。这会体现在你的创新性中,某些模型的迭代,就需要进行合理性等方面的评估,这些就需要更多的公式推导。
推荐一本书,应该是下半年出的,《百面机器学习》,非常优秀,建议和《统计学习方法》一样的人手一本。
紧跟发展进程。大量现行的算法其实都是比较经典的算法,但是要令自己的算法更加符合问题,需要进行不断的迭代,之后不断的读文献,把我发展进程,才能有更加好的结果。注意,这里我说的不是潮流,作为一名做技术、做问题的人,不应该去追潮流,而是追前沿。
数据分析和监控能力。俗称数据的敏感性,作为算法工程师,你的世界很大部分都是数据,如何从海量的数据中发现问题,这是非常重要的,也是你必须具备的。
论文阅读能力。快速从文章中找出自己需要的内容,快速看懂。
了解算法是后的重现能力。这点看起来很简单,但是做起来其实很难,在要求高效的现在,快速重现结果,尤其是最新的模型,其实很难。
算法工程师,需要具备工程能力,由于非计算机出身,所以本身能力相对薄弱,但是被逼着还是掌握了很多新的内容,也发现了很多需要掌握的东西。
python、Java最为常见,c++偶尔也会遇到。R做开发其实并不多。
SQL。取数据的基本操作,非常重要!!!!,主要集中在查询,多表联查,聚合函数等
git。代码协作工具。
机器学习有关的框架和包。sklearn,tensorflow,keras最好都会,另外最新的pytorch可以关注一下,势头很猛。
业务能力,认识问题,剖析问题,讨论问题的能力。
一些大数据技术,spark、storm、hadoop等,另外还有linux的基本操作(会写shell脚本,然后是新建文件夹之类的)
写的很笼统,是自己基本的一个总结,自己也有很多的内容也需要进一步学习,希望大家一起好好学习。
这篇作为今年最后一篇,在此祝大家新的一年,事事顺利,身体健康!
下期预告:推荐系统具体问题与评价指标
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方"AINLP",进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
推荐阅读
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧🙏