精华内容
下载资源
问答
  • BAT算法工程师的成长之路,超详细的学习路线

    万次阅读 多人点赞 2020-10-09 13:34:27
    算法学习路线,主要分为 4 个部分:数学基础、编程能力、算法基础、实战。

    我是如何成为算法工程师的,超详细的学习路线

    点赞再看,养成习惯,微信公众号搜索【JackCui-AI】关注这个爱发技术干货的程序员。本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

    一、前言

    各位十一过得如何?

    假期,我回了趟老家,文章停更了几天。

    写文章以来,被问到最多的问题就是「算法的学习路线」。

    今天,它来了。

    我会带着大家看看,我们需要学些啥,利用这个假期,我甚至还收集整理了配套视频和资料,暖男石锤啊,这期文章有用的话,别忘三连哦!

    二、学习路线

    主要分为 4 个部分:数学基础、编程能力、算法基础、实战。

    我是如何成为算法工程师的,超详细的学习路线

    1、数学基础

    在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数概率论

    这两也是大学的必修课了,如果知识早已还给老师,也没关系,哪里不会学补哪里

    线性代数研究的是线性空间的性质,数据通常会被表示为欧式空间中的点,而这些点经过一系列变换后会映射到另一个空间,在新的空间中隐藏在数据中的规律才得以显现。

    所以线性代数作为研究空间的一门科学,是入门机器学习的最要基础之一

    视频:推荐 MIT 的老教授 Gilbert Strang 的线性代数上课视频。

    没学过线代的同学会发现这门课程,讲得清晰而且直观,深入线代的精髓,完全不是那种理论堆砌的讲法,而且老教授幽默风趣,很有人格魅力。

    英文不好,也不用担心,字幕是中文的

    我是如何成为算法工程师的,超详细的学习路线

    教材:推荐《线性代数及其应用》,作者是 David C. Lay 。

    我是如何成为算法工程师的,超详细的学习路线

    喜欢看书的朋友,这本书一定不能错过。

    这本书详细地介绍了线性代数在几何学、计算机图形学、经济学、概率论、信号与系统、微分方程等领域的应用,给人以直观的认识。

    概率论是研究不确定性的一门科学,生活处处是概率。机器学习算法需要对现实情况建模,自然是少不了将概率论作为工具。

    这门课入门并不难,大家可以挑一本评分还可以的书开始学习。

    这里推荐陈希儒的《概率论与数理统计》,讲得很详细,如同听一个老者回忆自己的概率与统计心得,相信读者也会有所收获。

    我是如何成为算法工程师的,超详细的学习路线

     

    如果时间充裕,推荐先学好数学基础。如果时间不够,那就跳过数学基础部分,学算法的时候,哪里不会补哪里。

    2、编程能力

    编程语言,需要至少掌握两门, Python 和 C++。

    工作中,Python 主要用于处理数据算法调研模型训练的工作,而 C++ 则是负责工程落地

    算法工程师,需要针对落地场景,对算法的可靠性和实时性等方面进行优化,C++ 工程能力必不可少。

    Python 是一门非常友好的编程语言,不但易于入门而且功能强大,在进行机器学习算法开发的过程中会大量使用 Python。

    视频:我上学看的第一个视频,就是小甲鱼 Python 课程,风趣幽默,涉及Python 语法基础、网络爬虫、Pygame 飞机大战等内容,内容很丰富。

    我是如何成为算法工程师的,超详细的学习路线

    实战是最好的老师,学习 Python 的时候,可以找一个自己喜欢的方向,去实战。

    边实战,边学习。比如写爬虫、做小游戏、玩各种有趣的算法等。

    这里面,爬虫是最简单的,很容易有成就感,让你坚持学习下去,下载小说、下载漫画、下载音乐、下载电影、抢票等等小程序。

    这个推荐我的一个 Github star 量 11.4k+、fork 4.5k+的爬虫项目。

    我是如何成为算法工程师的,超详细的学习路线

    每个实战,都有对应的文章教程,代码开源

    项目地址:https://github.com/Jack-Cherish/python-spider

    教材:推荐《流畅的Python》,书看完有些难度,但是哪来当个手册用,很方便,哪些语法忘记了,翻阅一番,必能有所收获。

    我是如何成为算法工程师的,超详细的学习路线

    C++ 是一种面向对象的程序设计语言,无论你是做算法,还是做开发,亦或者是做测开。C++ 都应该掌握,它是一个基础的编程语言。学会了这门编程语言,再学其它,就会更得心应手。

    视频:这部分推荐慕课网的免费教程,很好的入门视频,老师讲得绘声绘色、形象生动、通熟易懂。

    一共分为 7 章,每章视频的时间是 2-3 个小时,半个月可以轻松刷完,学习顺序是:

    • C++远征之起航篇
    • C++远征之离港篇
    • C++远征之封装篇(上)
    • C++远征之封装篇(下)
    • C++远征之继承篇
    • C++远征之多态篇
    • C++远征之模板篇

    教材:推荐被誉为“圣经”的《C++ Primer》,经典巨著,非常棒的书。

    我是如何成为算法工程师的,超详细的学习路线

     

    编程语言基础学完了,接下来就是数据结构与算法。

    数据结构与算法是程序员的内功,每一个工程师的必修课。

    数据结构的学法,我推荐是直接看书,一边学习一边刷题,同时进行,这样学的速度快。

    就如同书名一样,这是一本像小说一样有趣的算法入门书,非常易懂,强烈推荐。

    我是如何成为算法工程师的,超详细的学习路线

    可以与这本书一同学习的,就是《剑指Offer》,里面讲解了 66 道+ 常见数据结构题,解析思路,简单易懂。

    两门书一起看,轻松入门数据结构与算法。

    不过《剑指Offer》讲解的代码都是 C/C++,没有 Python 版本,想看 Python 版本的,可以看我整理的教程,C++ 和 Python 都有实现和讲解,题目已按照类型划分好。

    我是如何成为算法工程师的,超详细的学习路线

    项目地址:https://github.com/Jack-Cherish/LeetCode

    两本书都看完,题也刷完了,那就算是入门了。

    想进阶,进一步学习,直接上 LeetCode。

    我是如何成为算法工程师的,超详细的学习路线

    力扣可以从 HOT 100 或 精选算法 200 题刷起,题目相对于《剑指Offer》要增加一些难度,但每道题目都有对应的解题思路和答案。

    坚持刷完 200 道,大多的面试轻松搞定,完全够用。

    当然要面试谷歌级别的大佬,Hard 题是不能放过的。

    刷题地址:https://leetcode-cn.com/

    Tip:刷一遍题,回头看还会忘,不要怀疑自己,要反复刷,反复练习。

    3、算法基础

    恭喜大家,在做了前面这么多基础工作之后,终于可以开始入门机器学习算法了。

    机器学习

    视频:推荐吴恩达老师的机器学习视频,吴恩达是整个领域的巨头之一,学术地位很高。同时,他出的视频也对新手非常友好,入门的不二之选。

    教材:还是那句话,光看不练是不行的。《机器学习实战》,理论结合实战,适合新手。

    我是如何成为算法工程师的,超详细的学习路线

    《机器学习实战》使用 Python2 实现,有些细节讲的不够细致,对此我进行了完善,使用 Python3 复现了一遍,并结合 sklearn 以及更多的好玩例子,进行讲解。

    全网阅读量 500w+:

    我是如何成为算法工程师的,超详细的学习路线

    对应的 Github 开源代码 Star 3.3k+,fork 3.1k+。

    我是如何成为算法工程师的,超详细的学习路线

    在线阅读地址:

    https://cuijiahua.com/blog/ml/

    我也将这个系列打包成了本地 pdf,喜欢离线看,也可以直接下载。

    深度学习

    深度学习是现在的算法工程师绕不开的一个子领域,是机器学习的子集。

    视频:还是推荐吴恩达老师的深度学习视频,也是对新手非常友好。

    教材:说实话,深度学习,我并没有看过书,都是视频+ Github 开源项目学习的,不过被誉为深度学习领域圣经的“花书”,可以备一本。

    我是如何成为算法工程师的,超详细的学习路线

    深度学习框架

    深度学习框架有很多,Tensorflow、Pytorch、Paddle、MXNet、Caffe等。

    我在工作过程中,用的最多的是 Pytorch,其次是 Tensorflow。

    新手上手,推荐先学 Pytorch,可以直接看 Yunjey Choi 大佬的 Github 教程,简单入门:

    项目地址:

    https://github.com/yunjey/pytorch-tutorial

    Pytorch 深度学习框架学习,也可以看我写的 Pytorch 深度学习实战系列教程,有垃圾分类、图像分割等结合实战的小项目。

    Github 开源代码 Star 400+,fork 250+。

    我是如何成为算法工程师的,超详细的学习路线

    项目地址:

    https://github.com/Jack-Cherish/Deep-Learning

    我也将这个系列打包成了本地 pdf,喜欢离线看,也可以直接下载。

    4、实战

    实战实战,文章反复提到了这么多次,仅仅这些还是远远不够的。

    因为更多时候,你是跟着视频 or 文章的思路去实战,这缺少了独立思考的过程。

    学了这么多,你并没有独立完成过一个项目,数据怎么处理,怎么分析问题,用什么算法解决问题,也没有独立思考过。

    算法工程师的岗位竞争也比较激烈的,为了在茫茫人海中脱颖而出,我们需要以团队个人的形式,独立完成一些项目,只有这样,你才能更具竞争力。

    对于学生党,做项目,最简单直接的方法就是参加竞赛

    推荐两个参加竞赛的地方,一个是国外的 Kaggle,另一个是国内的阿里云天池

    两个竞赛的奖金也都很丰富,根据自己的喜好,参赛即可。

    Kaggle:https://www.kaggle.com/

    我是如何成为算法工程师的,超详细的学习路线

    阿里天池:https://tianchi.aliyun.com/competition/gameList/activeList

    我是如何成为算法工程师的,超详细的学习路线

    既能打比赛,又能赢奖金,何乐而不为呢?

    三、资料打包

    本文提到的资料,我都打包了,可以直接全部打包带走。

    我是如何成为算法工程师的,超详细的学习路线

    这里都是我精心准备点的资料,但是都是外链,CSDN官方提醒这种分享方式也不太合适。

    所以大家,需要的话,可以在公众号后台回复【算法学习路线】获取下载地址。

    PS:有能力支持正版的,资料觉得不错,可以去购买支持一波正版。

    四、絮叨

    这篇文章整理的也是我的学习路线。

    要说需要学多久,那就看个人的学习动力了。

    如果你想去一家不错的公司,但是目前硬实力不过关,我觉得还是有必要去努力一下的,技术能力的高低决定你能走多远,平台的高低,决定你能飞多高。

    如果可以通过自己的努力,进入自己心仪的公司,一定不要松懈怠慢,职场成长和学习新技术一样,不进则退。

    你往往会发现,身边实力越强的人越努力,最高级的自律就是享受孤独

    创作不易本期硬核,各位的三连就是 Jack Cui 创作的最大动力,我们下次见!

    文章持续更新,可以微信公众号搜索【JackCui-AI】第一时间阅读,本文 GitHub https://github.com/Jack-Cherish/PythonPark 已经收录,有大厂面试完整考点,欢迎Star。

    展开全文
  • 算法工程师学习之路

    万次阅读 多人点赞 2017-12-10 21:48:14
    之前是通信行业工程师,作为流水线上的一颗螺丝钉N年,只是耕耘在自己熟悉的领域,视野比较窄。 兴趣是最好的老师,兴趣引我转向了这个行业。 最开始 我对数据分析比较感兴趣, 后来是数据挖掘,再是机器学习,深度...

     


    之前是通信行业工程师,作为流水线上的一颗螺丝钉N年,只是耕耘在自己熟悉的领域,视野比较窄。 兴趣是最好的老师,兴趣引我转向了这个行业。
    最开始 我对数据分析比较感兴趣, 后来是数据挖掘,再是机器学习,深度学习..  自然走在这条路上。本人资质也只是勉强够用,学习过程中也有觉得很难想放弃过,还好克服了走过了。分享学习道路如下吧 :)

    前些年读了一些关于大数据的文章,有初步的了解。后来在平时相关的运营支撑工作中接触了一个大数据的产品,学习了大数据分析挖掘的流程及初步了解一些算法知识。后来车品觉老师来(前)我司分享,参加后很是受用。
    如果没有类似条件也没关系,开始时为了培养对大数据这个行业的兴趣,推荐阅读车品觉老师的"决战大数据",书中数据运营运维的思想让我转到一个新世界。 "大数据时代"中译者周涛老师的序言比原文作者带给我的共鸣冲击更大。 从数据分析到数据挖掘,谭磊老师"大数据挖掘" 也让我冲出了那一步,知道数据挖掘也没我想象中那么难 :)

    一路上的第一个目标 转行成为数据分析师要做的:
    https://www.zhihu.com/question/29265587/answer/44010658
    我曾经去捯饬那些excel函数,VBA, 补看数据库教程,看powerBI、数据可视化等教程。那些日子虽然也只是今年上半年的事但觉得已远去但觉得没白过。。 


    正传了:

    一:最最基础要预备的:
    1) python      
    最开始本人看的菜鸟教程, 如果有其他语言基础,可以看廖雪峰老师的python教程;否则个人觉得类似菜鸟教程可能更适合一点。当然只是入门,如果想熟悉一门语言,需要投入大量的项目锻炼还需要看不止一本书/一套教程。 另外有个好消息:不用学习R语言啦,python就够用了,具体原因刘建平老师的文章里也有。
    2) 数学知识     高数/线代/概率和统计/ 离散数学    
        虽然数据挖掘/机器学习是统计学的范畴 现在感觉前两门相对更重要..
       
    关于高数:
        其实我也是看到公式就怕的人,直到现在。。palmface 对推导过程不太明白,但现在原理还是能理解一些。以前读书时数学也很一般,现在几乎是从头学起,嗯,对,从三角函数以及排列组合看起。。
        推荐"遇见数学"公众号, 里面有高数的专集。 里面的图解数学相当不错。底下很多人留言要是当年学习时有这样的指导就好了.. 本人看了台湾单维彰老师的视频专辑:大学微积分入门合集。看完后过了两周再又再看了一遍。 而当我花大概四五天看完一本纸质高数书时(图书馆任借一本高数教材即可,无推荐的好书),虽然当时也记了几十条看不懂的问题,但还是会回想,为啥大学要花一学期或是一学年来学高数呢...好像看一周应该能考 50/60分, 两周能考70分,一月能考8,90分吧,猜的..:)  链式求导,求偏导很重要,搞不懂的不能轻易放过。
    关于线代:
        我是从 知乎live课程: 线性代数入门:从方程到映射 开始的。我没加群拿到最新的胶片,live里的胶片有几处小错误让我很费解,不过整体还是不错的。 有很多是在知乎上找到答案的。除了"遇见数学"公众号,matongxue314 马同学看图学数学 应该也很不错   
    关于概率和统计:
        SSE, MSE, RMSE SSR SST 这些,卡方分布,T分布,F分布,各种检验等。p值 置信区间含义等。
    关于离散数学:
        有时间看离散数学,不吃亏。在好几份源码中,都有DAG的相关处理。
    可以听听知乎大神SimonS的课程 机器学习入门需要哪些数学基础  https://www.zhihu.com/lives/818124675715600384

     

     


    这里我还想分享一些锁碎的名词或概念,可以去单独去搜一搜。能搜到不同的文章,这样一篇没看明白时,可能再看看另一种讲解的风格就懂了,或者明白了后再多看另一种观点,又有不同的收获。  而且这些名词懂了以后,其他文章也好看一些,不明白的话有可能卡住。 我经常得在读文章时,跳出来去搜这些概念。

     

    全概率公式和贝叶斯公式 正态分布 高斯分布 二项分布 beta分布 共轭分布  Dirichlet分布  可以顺便了解Gamma分布,泊松分布  共轭分布 Dirichlet分布等在NLP中有使用,beta分布看到知乎这条解释(答主小杰)就比较容易理解了:https://www.zhihu.com/question/30269898
    频率派与贝叶斯派各自不同的思考方式:
    什么是无偏估计 有偏估计    概率和似然的区别
    ROC曲线,lift曲线 分别适合于什么场景等,搞清TPR,TFR,召回率和准确率等指标的含义。F1分数。有F2分数吗?
    什么是凸函数, 什么是对偶问题?  拉格朗日对偶问题  kkt条件
    机器学习常见的损失函数有哪几种。 对于0-1损失  平方损失  绝对值损失来度量损失是好理解的,而对数为什么能度量这个损失,要绕个弯从其他角度想想,我也绕了好一圈才习惯。
    什么是熵,什么是信息熵,基尼指数,基尼不纯度。 相对熵 交叉熵  条件熵 互信息(注意基尼指数常用来收入平衡状态,理想情况是要比较大即比较均匀。而数据挖掘机器学习里的基尼不纯度是要越小越好,两者是从不同的角度看问题!我刚开始搜索基尼时是糊涂的..  其实基尼相关的 目前应该不太重要,了解即可。主要是几种熵 很重要。 )
    为什么常用的损失函数是交叉熵 而不是均方差? 而VAE生成的图像,较GAN来说相对模糊,模糊的原因是?(第二个问题需要了解了 VAE/GAN之后再看 )
    生成模型和判别模型的区别是什么?

    什么是归一化(normalization),标准化(standardization)?  机器学习中更常用的是哪一种? 逻辑回归需要做吗?
    白化,这个在看完刘建平老师的PCA后,可继续了解。因为PCA后的目的可能就是要做白化,为数据进一步处理做准备。
    什么是范数  有助于处理。。情况?  什么是condition number
    搞清楚矩阵乘法是怎么乘的。
    矩阵的行列式,意义 (顺便了解下迹:行列式是特征值的乘积,迹是特征值的加和)
    特征值和特征向量  先从公式和计算上入手 A* V = λ * V   (A矩阵* V向量 =  λ常数 * V向量)  再了解在数据挖掘 机器学习中特征值和特征向量的意义,这个一搜就一大把了。
    关注数据挖掘的话还需要多去了解特征工程。
    矩阵对角化的意义。相似矩阵的意义。 矩阵左乘,变换基。逆矩阵。 这几个话题知乎上有很多很好的解答,令人茅塞顿开。
    什么是协方差,相关系数。协方差矩阵 格拉姆矩阵 的意义?
    雅可比矩阵 海森矩阵  牛顿法迭代求解
    各种距离 余弦相似度
    张量的含义和性质?
    什么是超参数 什么是batch_size epoch_size等。 batch_size大小对训练的影响?
    hadoop, map reduce方法,spark,hive,hbase,这些,以及大数据分析挖掘流程 也需要了解

     

    二:数据挖掘 机器学习 基本的常用算法  
       强烈推荐刘建平pinad老师的blog。这可以是机器学习的线索或目录。http://www.cnblogs.com/pinard/   我从第一篇文章看起的。从感知机 决策树 SVM开始一直讲到DNN,CNN。除了原理,还有运用的代码。(当然后期神经网络的那些,还有很多很好的文章可以看,仅看刘老师这一篇可能是不够的。) 隐马模型看完后,我心里觉得对算法工程师这个职位要做的事和方法 有个大概的谱了。 感谢刘老师的无私分享! (其实刘老师的分享我觉得要有一点数学基础的人看比较合适,如果看不懂时可再搜其他的文章,但其作为 学习的线索/目录肯定是很好的)
       在学习正则化,范数,EM算法时,包括后面的图像卷积时卷积核的含义和效果时 zouxy老师的blog也让我受益匪浅:http://blog.csdn.net/zouxy09/article/details/24971995
       在学习各种组合方法时,要了解bagging/boosting各适用于什么场景,谁的基模型为强模型及目标是降什么,谁的基模型为弱模型及目标是降什么。
       看刘老师的KNN算法时,仍是不能很好的理解。 关于KNN,这个很不错: https://zhuanlan.zhihu.com/p/22345658?refer=hgjjsms
       这些算法在学习时就边看边动手,后面可以去参加一下天池的新人离线赛,实际操作感受一下数据清洗/处理过程,寻找特征工程等数据挖掘的过程,熟悉dataframe的各种操作,熟悉sklearn等这些库的使用。

     

    三: 真正到深度学习了

       先大概有个分类吧, 深度学习大方向有三个: CV图像领域,NLP及时序数据,推荐。 个人对推荐兴趣相对小一点,后面的也主要是对图像和NLP而言的。图像的比较基础一些,主业图像的同学可能对时序数据NLP没那么熟悉,但主业NLP的同学应该对图像处理不陌生。


        有很多tensorflow的介绍入门文章。动手尝试。
        另外 opencv也可以了解 https://docs.opencv.org/3.3.0/index.html  (其实我没怎么看 这里要展开又是一大段了)
        对于图像:先了解什么是通道数。
        了解DeepID DeepID2  人脸识别/人脸比对的区别
        了解triplet loss,centor loss
        
        我看过几集莫烦的深度学习视频。其实还有很多视频推荐,还有很多英文的,吴恩达老师的应该也很好, 我觉得看视频比较费时间,打算后面再多看一点。
        刘建平老师的blog里中期就介绍了DNN,随之而来的CNN RNN LSTM。 只看刘建平老师的应该理解还不够,多看看其他文章。
        再去多搜搜CNN的卷积,多一点卷积意义上理解,而不是只了解到 卷积计算过程的GIF动图。
        多通道的多个卷积核过程。卷积核有通道的概念吗? 还是只是二维的? 使用1*1的卷积核为什么能达到降维的效果?
        Feature Map/输出通道/神经元/感受野/padding等概念
        卷积与全连接相比,是如何减小参数个数的?
        需要理解 卷积神经网络各层的参数和连接个数是多少?   http://blog.csdn.net/dcxhun3/article/details/46878999
        高斯卷积 高斯模糊。 模糊是怎么来的? 把清楚的照片(像素之间大差距) 缩小差距,使得数字从整体看更平均,照片就模糊了。
        不容错过的"YJango的卷积神经网络", yjango老师好多次让我茅塞顿开,非常感谢他无私用心的分享,受益非浅。
        全连接层的意义? 为什么cnn rnn的最后经常拼接一个dnn?
        http://blog.csdn.net/zouxy09/article/details/49080029
        这篇文章里提到了 时域上的卷积等于频域上的乘积,这样就需要了解傅里叶变换了。知乎上有很受欢迎的"掐死我"文章,我也是它的受益者。
        另外我看有一些文章里提到了人脸识别的haar特征,haar小波变换我也顺便看了一下,但暂时好像还没用上

        继续了解一下卷积网络架构的发展历史
        Inception v1 v2  v3  v4 模型
        NIN  (Network in Network)
        resnet网络
        有很多很好的文章,这里推荐几个:  比如上面的inception模型和残差网络,下面这篇文章就比较容易理解。
        https://zhuanlan.zhihu.com/p/27642620
        https://zhuanlan.zhihu.com/p/27857399
        我之前只知道调参时可以增加CNN层数和每层的神经元个数来,也看过很多的文章关于cnn的结构。但增加层数和神经元数意味着什么? 这篇文章让我通了很多。 http://www.eepw.com.cn/article/201706/360625.htm
        可以学习下SIFT算法,虽然现在不如CNN
        mtcnn:
        理解BN。顺带可以一起理解 Layer Normalization、Instance Normalization及Group Normalization 。https://blog.csdn.net/malefactor/article/details/82154224 张俊林老师写得相当好。
        这里有图像的知乎live,后面这个串讲了神经网络
        计算机视觉从入门到放肆  https://www.zhihu.com/lives/848170558016356352
        深度学习中的常见名词术语(图像方向) https://www.zhihu.com/lives/904295186979508224

        人脸识别的论文:
        FaceNet: A Unified Embedding for Face Recognition and Clustering
        Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
        Deep Residual Learning for Image Recognition
        Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
        Densely Connected Convolutional Networks

      
        
        时序数据ARIMA模型了解一下 不需要做为重点。 FBprophet也可动手试试。
        RNN的理解很重要,假如你看到三个从左到右排列展开的cell图,是代表网络图中有三个cell吗? 不是,它是同一个cell在不同时序的展开。
        RNN的结构图,应该这样画 才更清晰,对初学者更友好:  https://www.zhihu.com/question/68552209  Scofield的回答
        静态rnn 动态rnn区别是什么? 梯度消失 梯度爆炸是如何形成的?  如何解决?  RNN的梯度消失,跟DNN的一样吗?
        LSTM中几个门的作用是什么?
        理解embedding (知乎上word embedding和解答很多)
        怎么进行词嵌入呢?  word2vec是一种算法,它有两种训练模型CBOW skip-gram. 这个刘建平老师的blog中有介绍。但是在张俊林老师的分享中了解一下 这个发展的背影,理解起来更容易。不然可能会有很多疑问。
        word2vec, glove可以了解下。旁边还有gitem2vec, graph embedding 在等你
        除了基本的DNN CNN LSTM外, 还需了解attention模型,transformer模型,xlnet等。 深度学习枕边书(最近19年中啦)也在啃:https://blog.csdn.net/malefactor/article/details/82051716  这里面带你了解ELMO, GPT, BERT等。
        什么是语言模型/掩码语言模型/乱序语言模型?
        beam search原理?
        Transformer虽好,其缺点是什么?   GPT-3据说训练一次几百万美金,别说模型放在手机等边缘终端,一般的公司也无法使用。 从哪些方向/如何改进呢?
        Transformer是从NLP里发展起来的,图像上可以使用么?  想想如何用? 

     

        吴军老师的 数学之美 这本书,我听着这名字,原以为会是一系列的公式推到最后得到一个很简洁的结果,这才能体现数学之美嘛。没想到,这本书的目标 竟然是给非IT工作者的科普读物! 其实刘建平老师前面的那些BLOG读过了,有一点NLP的基础来看都OK的,不用害怕看不懂,讲得很好的。除了布隆过滤器是对我来说是完全全新的内 容,其他都是以前见过的。不过吴老师对于人工神经网络的分享,有点意外.. 呵呵

        对于强化学习,刘建平老师的blog更新了一系列的文章!
        对抗生成网络GAN,变分自编码器VAE, 以及他们的很多变体! CGAN WGAN GAN-GP info-gan... CVAE... 有一个开心的事 就是 GAN到CGAN VAE到CVAE代码改变动只需要一两行! GAN到WGAN理论有一些 代码只需改动几行!不过得搞清为啥要这样做。 还有GAN动物园 很多变种, 搜一下就知道。
        变分推断是什么?标准自编码器和变分自编码器的区别 是什么?VAE的两个损失是什么? VAE是假设p(z)先验分布为正态分布吗?(no)
        VAE/GAN的异同点主要是什么?两者能否结合?强化学习与GAN有没有类似的地方?
        知识图谱: 新世界的大门等着你。https://zhuanlan.zhihu.com/p/32122644
        其实如果你走到这一步了,要看什么心里应该早有方向了。 万事开头难, 后面。。也难。。不过会越来越好, 就是要多投时间。
    ......

     

    上面总结的东西难免有错误和遗漏,也有不太重要的,欢迎各位告知我修改补充,权当各位学习路上的小小的参考。

    上面列的东西,我也没有全部掌握,后面的论文也没看多少。书单还有一大串。。(最基本的有统计学习方法  西瓜书 花书等等...)
    路还挺长。曾有个朋友说:学习使我快乐。 我觉得这也是我心里的话。 如果没有这种快乐满足的感觉,挺难坚持的; 有的话,好像都不用用坚持这样的字眼。
    看到知乎上说 阿里后来面试都不太在乎在天池赛中取得的好名次了,想想熟悉了那些套路,解这些赛题应该也比较简单。我刚转行,很想在新领域中再成为这样的骨干,但这需要时间精力还要点机遇。  一年来潜水看了好多大侠的精彩分享,很少付费,不好意思,那我也来分享点浅薄的东西吧。(而且刚开始看时会很惊奇,世界上为什么有那么多人愿意无条件花时间来写这么多,还想法设法用着各式各样幽默的语言,搞笑的图片.. 非常感谢这样的陌生人!)

     

    展开全文
  • 算法工程师学习流程

    千次阅读 2018-05-21 15:13:45
    1.完成机器学习基础的学习机器学习方面的知识是算法工程师区别于普通程序员的核心。这部分知识重点掌握。1)学习资料:以林轩田的《机器学习基石》、《机器学习技巧》为主,以周志华的《机器学习》、李航的《统计...
    1.完成机器学习基础的学习
    机器学习方面的知识是算法工程师区别于普通程序员的核心。这部分知识要重点掌握。
    1)学习资料:以林轩田的《机器学习基石》、《机器学习技巧》为主,以周志华的《机器学习》、李航的《统计学习方法》为辅。
    2)学习目标:掌握机器学习相关的基础知识,并可以纸上推导LR/SVM/GBDT等模型。
    2.练习
    刷完《剑指Offer》,大概50题,最后可以手写代码,并进行一些基本的逻辑训练。
    1)学习资料:以《剑指Offer》、《大话数据结构》这两本书为主
    2)学习目标:最终能刷完《剑指Offer》上的50题,并能在白纸上写出重要的题目。
    3.完成基础语言的学习
    精通python
    4.计算机基础学习
    1)学习资料:《不周山之计算机系统导论》
    5.对于经典算法的学习,大体上分成几个阶段:
    1)第一阶段:对于某一具体的算法,首先要搞清楚这个算法解决的问题是什么,可能是实现一个具体的功能,也可能是在某些方面,比如时间复杂度或者空间复杂度方面很卓越,总之搞清楚这个算法被研究出来的目的是什么。
    2)第二阶段:然后就要弄清楚这个算法的生存环境了,也就是看看你此时研究的东西是不是对别的知识有依赖,应该把底层依赖的知识理解并掌握。这些问题都解决之后,就进入到算法本身的学习,理解一个算法是一件非常辛苦的事情,刚开始看必然会产生很多的困惑,比如经常会怀疑作者讲述的内容的重要性?这些内容和这个算法有什么联系呢?经常会有这种摸不着头脑的感觉,其实作者做的铺垫都是为了建立起描述算法主要内容的基础,只有接受和理解这些基础,才能逐渐触碰到算法的精髓,所以耐心是很重要的。
    3)第三阶段:算法的主要过程看完之后,往往还是会赶到困惑,主要是不知道这个过程好在哪里,就进入了下一个阶段,理解作者对这个过程在功能性或者效率卓越这件事上的理解和证明。这才真正触碰到算法最精髓的部分,也就是深度的理解算法的主要过程所带来的好处,这才是最锻炼人理解能力的地方。
    4)第四阶段:上面几点是算法学习阶段的过程了,接下来就是研究算法的代码实现,自己设计测试用例亲自跑一下代码,以及从代码运行时间的角度分析这个算法的优势,也就是加深对算法的理解的过程。
    5)第五阶段:最后是配合相应的题目练习,让自己通过题目练习的方式,会用、善用学习到的算法,并对这个算法产生一定的敏感程度,具体是指看到某些题目时,能够根据题目的特点,产生与该算法的对应,也就是具备举一反三的能力。
    6.知识网络
    1)机器学习理论
    1.1. 基础理论
    a. bias-variance tradeoff
    b. vc dimension
    c. 信息论
    d. 正则化
    e. 最优化理论
    1.2. 有监督学习
    a. knn
    b. naive bayes
    c. LR
    d. Decision Tree
    e. Boosting & gbdt
    f. bagging & Random forest
    g. 神经网络
    h. Factorization Machine
    1.3. 无监督学习
    a. kmeans
    b. Hierarchical Cluster Algorithm
    c. DBSCAN
    d. Gaussian Mixed Model
    e. LSA & LDA
    f. PCA
    g. SVD & NMF
    h. Word2Vec
    2)概率和统计基础
    a. 大数定律与中心极限定理
    b. 常用概率分布
    c. 假设检验理论
    d. 最大似然理论
    e. 最大后验理论
    f. EM算法
    g. 贝叶斯理论
    h. 最小错误率贝叶斯分类
    3)基础结构与算法
    a. 树与相关算法
    b. 图与相关算法
    c. 哈希表与相关算法
    d. 矩阵与相关算法
    4)开发语言
    a. python
    5)特征处理&工程
    a. 特征选择方法
    b. 特征规范化
    c. 特征离散化
    d. 特征交叉&综合
    6)基础开发能力
    a. 单元测试
    b. 逻辑复用
    c. 稳定性、性能、健壮性
    d. 代码整洁度、可读性和可维护性
    7)单机开发工具
    a. numpy
    b. sklearn
    c. pandas
    d. matplotlib
    e. libsvm
    f. xgboost
    8)大数据开发工具
    a. hadoop
    b. spark
    c. storm
    9)架构设计
    a. 数据仓库&数据流架构
    b. 机器学习相关服务架构
    7.技能
    1)基础开发能力
    所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。
    2)概率和统计基础
    概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。学会用概率的视角看待问题,用概率的语言描述问题,是深入理解和熟练运用机器学习技术的最重要基础之一。
    在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM 算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。这些分布贯穿着机器学习的各种模型之中,也存在于互联网和真实世界的各种数据之中,理解了数据的分布,才能知道该对它们做什么样的处理。
    3)开发语言和开发工具
    近年来 Python 可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如 LibSVM、Liblinear、XGBoost 等。大数据工具方面,目前离线计算的主流工具仍然是Hadoop和Spark,实时计算方面 Spark Streaming 和 Storm 也是比较主流的选择。
    4)机器学习理论(最重要)
    虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义:
    a.掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。只有在这个基础上才能够真正具备搭建一套机器学习系统的能力,并对其进行持续优化。否则只能算是机器学习搬砖工人,算不得合格的工程师。出了问题也不会解决,更谈不上对系统做优化。
    b.学习机器学习的基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是,这些基础理论里面体现的是一套思想和思维模式,其内涵包括概率性思维、矩阵化思维、最优化思维等多个子领域,这一套思维模式对于在当今这个大数据时代做数据的处理、分析和建模是非常有帮助的。如果你脑子里没有这套思维,面对大数据环境还在用老一套非概率的、标量式的思维去思考问题,那么思考的效率和深度都会非常受限。
    8.机器学习算法工程师学习资源推荐
    1)统计学习,基础理论方面,如VC维、正则化、bias-variance tradeoff、最优化方法、信息论等。推荐李航老师的《统计学习方法》,入门必读。
    2)有监督学习,如线性回归、logistic、决策树、knn、SVM、神经网络、朴素贝叶斯等。推荐周志华老师的西瓜书《机器学习》和《机器学习实战》,经典中的经典。
    3)无监督学习,如EM算法、聚类、竞争学习等,可以参考《机器学习》的部分章节
    4)深度学习,如CNN、RNN、LSTM等,推荐Goodfellow的《深度学习》,DL的圣经。
    5)强化学习,近年来比较火,AlphaGo的核心算法,推荐Richard Sutton的《强化学习》
    6)读书最好和视频教程结合着看。其中重点给大家推荐4个:
    6.1. Stanford Machine Learning by Andrew Ng:
    经典中的经典(http://cs229.stanford.edu/)
    6.2. NG在网易云课堂的深度学习课程:https://mooc.study.163.com/smartSpec/detail/1001319001.htm
    6.3. Neural Network for Machine Learning by Geoffrey Hinton:Hinton老先生开的唯一一门课,这门课程绝对是有纪念意义的:http://www.cs.toronto.edu/~tijmen/csc321/
    6.4. Coursera上的各种课程,包括微积分、线性代数、编程语言等等。
    展开全文
  • 5.4 算法工程师岗位能力要求 此处选取了京东集团算法工程师的招聘需求。 月薪30K-50K,经验要求5-10年,学历要求本科及以上。 职位要求: 对机器学习及深度学习等前沿问题的进行探索和研究,结合未来的实际应...

    北京地区平均月薪为¥ 31070/月。较 2016 年,增长 59%, 近30天 岗位需求指数为0.305,其中月薪30000-50000的人群达到了55.90%的比例。如图所示:
    在这里插入图片描述

    5.4 算法工程师岗位能力要求
    此处选取了京东集团算法工程师的招聘需求。

    月薪30K-50K,经验要求5-10年,学历要求本科及以上。

    职位要求:

    1. 对机器学习及深度学习等前沿问题的进行探索和研究,结合未来的实际应用场景,提供全面系统的技术解决方案。

    2. 对图像识别、语音识别、自然语言处理和等与业务相结合领域提供模型支持。

    3. 优化离线/实时大数据计算任务的性能。

    任职能力要求:

    1. 具备数学、统计学、概率统计知识,熟悉常见的机器学习算法(贝叶斯,聚类,逻辑回归,SVM,GBDT,RF等),熟悉主流机器学习框架如sktlearn/theano/tensorflow。

    2. 熟悉常用的图像处理算法和工具,包括但不限于CNN、RNN、OpenCV等,并有较强的动手实现能力。

    3. 熟悉NLP领域原理和一些开源的算法库,比如:tensorflow(keras),stanfordNLP,NLTK,ApacheOpenNLP,Kaldi,mahout,word2vec等。

    4. 熟悉hadoop/hive/hbase、stom/Spark等基础平台使用。

    人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    大数据时代,软件工程师渐退,算法工程师崛起
    http://www.duozhishidai.com/article-5102-1.html
    数据挖掘十大经典算法,具体是哪几个?
    http://www.duozhishidai.com/article-9689-1.html
    想了解下机器学习和数据算法,看哪些书比较好!
    http://www.duozhishidai.com/article-1111-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    展开全文
  • 最近前阿里的一位工程师开源了一份网页版的算法工程师学习手册,没有纸质版的图书,直接在线开源,小编去看看了一下,总结的非常到位,几乎涵盖的机器学习、深度学习相关的所有知识。 网页地址: ...
  • 一个公式告诉你为什么程序员算法工程师

    万次阅读 多人点赞 2017-06-11 18:20:23
    今天(2017年6月11日)爬了某招聘网站的十大城市的算法工程师职位。算法工程师这里的算法工程师包括比较广泛。有做数据科学的,有做图形的,有做信号处理的。之后会统计更细分的领域。十大城市以下按照算法工程师的...
  • 机器学习算法工程师在做什么? 机器学习不仅仅是模型 产生这个问题的原因就是所有人都以为机器学习的模型就是机器学习本身,以为对那些个算法理解了就是机器学习的大牛了,但实际上完全不是这样的。 模型是谁在...
  • 机器学习和运筹相关算法工程师资料,里面有下载地址以及课程网址
  • 算法工程师应该哪些

    千次阅读 2019-06-26 11:20:04
    算法工程师应该哪些 https://zhidao.baidu.com/question/1180243197582612339.html
  • NLP算法工程师学习和成长

    千次阅读 2019-03-08 15:59:29
    6.NLP算法工程师面试注意事项; 其中前两个小节主要大概讲述一下NLP这个学科它解决了什么问题,以及它算法发展的简要的历史,这样可以让大家对它先有一个整体上的认识;中间两节介绍一下在问答系统和对话系统中NLP...
  • 推荐算法工程师学习路线及工作指南

    千次阅读 多人点赞 2020-03-01 12:57:14
    推荐算法工程师学习路线及工作指南 以下文章来源于大数据与人工智能,作者gongyouliu 本文从我自己的学习成长经历、如何判断自己是否适合从事推荐算法、推荐算法工程师需要的知识储备、怎么找一份合适的推荐算法...
  • SLAM算法工程师学习方向

    千次阅读 2018-03-28 09:33:01
    https://www.cnblogs.com/xtl9/p/8053331.htmlhttps://zhuanlan.zhihu.com/p/285655631.编程基础...数据结构与算法。入门推荐 《数据结构(C++ 语言版)》刷题,leetcode和剑指offer。时间来不及推荐这个3.S...
  • 研一飘飘荡荡的在浪费了一年的时间没有找到自己的方向,直到2016年7开始决定从事计算机视觉的研究,...之后开始学习图像处理基本知识和机器学习一些算法,包含了深度学习的相关知识。虽然学习了半年多但是总感觉没有系
  • 算法工程师】机器学习面试问题总结

    万次阅读 多人点赞 2019-08-13 07:58:54
    为机器学习算法工程师而准备
  • 人工智能工程师学习路线/自然语言处理算法工程师

    千次阅读 多人点赞 2018-01-08 15:12:30
    人工智能工程师学习路线/自然语言处理算法工程师学习路径 人工智能工程师学习路线自然语言处理算法工程师学习路径 1入门级别 1 数据结构 2 算法重点 3python 2进阶阶段 1 机器学习算法 2深度学习算法 3深度学习...
  • 算法工程师

    2017-12-11 18:04:19
    图1 机器学习算法工程师技能树
  • 【转】算法工程师应该哪些

    千次阅读 多人点赞 2018-08-04 15:10:46
    音/视频算法工程师(通常统称为语音/视频/图形开发工程师)、图像处理算法工程师、计算机视觉算法工程师、通信基带算法工程师、信号算法工程师、射频/通信算法工程师、自然语言算法工程师、数据挖掘算法工程师、搜索...
  • 了解算法工程师需要掌握的技能,我觉得最直接有效的方式就是去看看各公司对于算法岗社招的要求。本篇只做一些简单的整理和罗列。 某大厂,推荐算法工程师的要求: 熟练掌握C/C++和python语言编程,熟悉linux...
  • 推荐算法工程师学习路线及工作指南 超全!!推荐算法工程师学习路线及工作指南Part 1 作者从零开始学习推荐系统的心路历程Part 2 如何判断自己是否适合从事推荐算法Part 3 推荐系统推荐算法工程师需要的知识储备01 ...
  • 深度学习slam算法工程师

    千次阅读 2017-09-28 21:13:13
    打算以后从事slam+深度学习方向的工作...1、50%配合深度学习算法工程师,集成现有的物体识别框架和贝叶斯方法,构建包含物体标签的地图,用于家用机器人的场景理解甚至辅助导航定位 2、50%在此基础上,对算法进行优化
  • 算法工程师的基本素质: 完全掌握的基本基本算法
  • 算法工程师面试

    千次阅读 2017-09-17 13:59:18
    首先说算法工程师有几个方向:NLP,推荐,CV,深度学习,然后结合公司业务做得内容各不相同 传统机器学习算法:感知机,SVM,LR,softmax,Kmeans,DBSCAN,决策树(CART,ID3,C45),GBDT,RF,Adaboost,xgboost...
  • 通往机器学习算法工程师的进阶之路是崎岖险阻的。《线性代数》 《统计学习方法》《机器学习》《模式识别》《深度学习》,以及《颈椎病康复指南》,这些书籍将长久地伴随着你的工作生涯。 除了拥有全面、有条理的...
  • 算法工程师岗位

    2021-01-03 21:42:16
    入学算法工程师的岗位技能
  • 算法工程师大致是做什么

    万次阅读 多人点赞 2021-01-25 22:37:39
    笔者在算法领域这些年遇到了不少做算法的同行,发现各自的差别还是很大的,工作侧重点甚至思维方式都不同。为了给刚入门的朋友介绍得清晰一些,这里就简单串一串我遇到的不同的算法算法与非算法的区别 一般来说,...
  • 写给想算法的同学,随着大数据时代的到来和崛起算法人才成为了各大厂商争抢的对象想成为算法大牛的朋友对于数据的把握能力必不可少So,华为云特别推出了【MySQL实战营】7天为算法工程师构建...
  • 机器人算法工程师

    2020-08-17 16:36:09
    机器人算法工程师岗位的相关资料 百度文库2015 大疆算法工程师笔试 移动机器人的 学习笔记之——路径规划 路径规划算法总结
  • 向AI转型的程序员都关注了这个号????????????大数据挖掘DT机器学习 公众号:datayx我们本次分享主要分为六个小节,分别为:1.NLP解决什么问题;其中前两个小节主要大概...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 152,190
精华内容 60,876
关键字:

算法工程师要学什么