来源:CSDN、AI科技大本营
编辑:Fynlch王培
本文多图,建议阅读10分钟。
本文为你解析入门AI的方法,及AI技术人才成长路线。
前不久,CSDN副总裁孟岩重磅发布了AI技术职业升级指南——《AI技术人才成长路线图》(V1.0)。该路线图基于10多位专家的切身经验,提炼出入门AI的两大方式与进阶AI的10大路线,以期能为开发者进阶AI作出一些有益参考。
(点击放大查看高清图)
今年是我工作的第四年,一路走来磕磕绊绊,想把自己的学习和工作路径做一份总结,也希望这份总结能够帮助那些想成为算法工程师的同学。
这一次不是21天,也不是3个月速成班,而是需要三年! 我是以一个一线互联网公司对算法工程师的要求写的这份总结和指南,如果你只是想浑水摸鱼,急功近利,那么我写的东西肯定是不适合你的。 在这三年里,我面试了大大小小互联网公司15家左右,收割了包括bat在内的大部分offer。当然,有几份offer是面试多次才获取的,比如百度,阿里等。 刚毕业的时候去面试死的很惨,到后期能力提升上来了,面试也就容易了,也形成了一套自己的面试套路:刷题!
因此这篇文章皆在表达以下几个目的:
自我总结。对过去三年求学和求工作经历的总结,不断反思,共同探讨
学习路径规划。我会根据自己的理解推荐三年左右的学习规划
面试指南。结合自身的面试经历,总结出一些可用实践方案
需要说明的是:文章表达的只是我个人的理解,如果你的理解与我的有出入,那么纯属“不巧合”,以我为准(捂脸🤦♀️)! 同时,我是假设你与我一样的基础:没有数学和计算机基础,但是至少有本科学历 这样的前提条件下来写的。 此处我不想针对学历做任何讨论,现实的世界就是没有学历你将寸步难行,找工作尤为明显。
我规划的学习路线并不是严格按照我当初自学的方法来进行的,因为我当初走了很多弯路,踩了很多坑。在阅读这份总结前需要一点备注信息:
我假设每周能学习10个小时左右,具体怎么分配可习性安排。但是学习要有连贯性,有保证有大块整段时间来学习!每次学20分钟这种所谓的零碎时间学习就拉倒吧,你将一事无成
坚持坚持坚持!最难人可贵的不是知识本身而是你的毅力和坚持!智商上的差距真的不是很大,大的是每个人的毅力与野心
不存在所谓的速成班,算法更是如此!也不存在所谓的业务爱好,走马观花搞一搞,算法不是你想搞,想搞就能搞!既然要学,就做好拼尽全力的准备。否则就是在浪费时间,真的!!
我们把整个学习路径分为三部分:
夯实基础
机器学习
算法工程师
一、夯实基础
算法工程师两把斧,一把是数学,一把是计算机知识。所谓的算法无非就是应用计算机工具将数学知识应用到业务中。 但数学和计算机的知识包罗万象,普通人即使终其一生也不可能学完或者学精整个学科。 对于算法工程师来说,我们只挑选最核心的知识来学习即可!下面直击要害
数学
统计概率
微积分
线性代数
机器学习入门
计算机
C/C++语言
数据结构和算法
PYTHON编程语言
JAVA编程语言
英文
至少要是大学六级的水平,雅思6.5分,阅读小分6.5才算合格
我先来说英文,据我所观察,英文是区分一个程序员是否优秀的重要标志。你英文好不一定就能成为优秀的程序员,但是英文不好很大概率上你不可能成为优秀的程序员。 算法这个行业发展太快速了,日新月异,大部分资料都是英文的,发表的paper也肯定都是英文的。中文的翻译书籍往往还没出版,英文的版本就已经迭代好几次了。英文不好,你上不了Google,上不了github,上不了stackoverflow,上不了这个星球上任何优秀的程序员网站。 很大程度上,英文能力会对你的学习工作视野产生决定性影响。说到这,很多同学都寒心了,“我就是英文不好,咋办”。 其实大部分城学员英文都“不好”,包括那些你看到的优秀程序员! 但是有一点他们肯定很厉害,就是英文阅读的能力。没错,对于大部分程序员来说,只要阅读过关,英文就够用了,如果听力还过关,那基本上足够用了,如果写作业过关,那就很厉害了,如果口语也过关,那就忽略我写的这一段,你将会体验英文给你带来的巨大优势!
数学
数学是算法的“灵魂”! 数学学不好会比英文还糟糕,英文是锦上添花,数学是你能力的上限!其实发展到今天,机器学习等知识涉及到是数学知识实在是太多了,我自身也没有完全搞清楚或者说将全部的知识弄明白,只能结合自己学习过的以及身边一些案例来给大家做一个推荐
统计概率
统计学和概率论经常被放在一起使用,直到现在还有很多人在区分机器学习和统计学,有所谓的“统计派”和“计算机派”(参考吴恩达以及他的恩师乔丹,不是打篮球的那个)。 统计学涉及的回归分析是机器学习里最简单的线性模型,概率论里面的概率分布和概率计算是机器学习演算的一个核心。机器学习模型对样本进行预测的都是给出一个概率值,表达不确定性!
如果你是文科生,数学又很弱的话,我推荐你学习《商务与经济统计》。这本书浅显易懂,不会像国内教材那样枯燥乏味,每一章节都会含有一个具体的商业案例,大量的习题(虽然习题很弱)。每天学习1-1.5个小时,差不多30天能学完。最难的章节属于假设检验以及线性回归那里,单也仅仅是相对的难而已,比起机器学习,它毛都不算!
如果你是理科生或者数学功底不错的话,我推荐你学习陈希孺的《概率论与数理统计》。很传统很经典的中国式教材,但是写的内容实在是好,前后衔接的恰到好处,由浅入深,概念解释的直白明了,涵盖了以后机器学习所需要的几乎全部概率知识。缺点就是纯教科书班的书籍,读起来略微枯燥。
推荐星级
《商务与经济统计》 五星
《概率论与数理统计》 四星
建议学习周期:40天
微积分
我只推荐一本书《普林斯顿微积分读本》和一门简单的课程《微积分的本质》。我看过很多微积分的教材,包括同济的《微积分》以及《托马斯微积分》,但是都没有《普林斯顿微积分读本》更能吸引我的注意力。这本书浅显易懂,书籍看起来很厚,但是学习起来并不费力,作者的写作观点很友好,风格较为轻松却又不失严谨。建议如果基础较差的同学可以“重头来过”,好好的跟学一遍!我对泰勒展开式那一章节尤为记忆深刻,作者先是引入了一个及简单的案列,接着就此案列进行了深入的讲解,一目了然。
《微积分的本质》是三蓝一棕出品的简短视频,通过酷炫的动态PPT演示了微积分的过程。但是真的仅仅是入门级别的视频,就当做课外“读物”学一学吧
推荐星级
《普林斯顿微积分读本》 四星
《微积分的本质》 四星
建议学习周期:60天
线性代数
线性代数到底怎么学,我真的一直没有找到很好的方法。我看过很多的书籍和视频,包括同济的那一本很薄的书,我一度以为那是本很好的教材,直到我在网易云课堂上学习了MIT的线性代数课程,像是打开了新世界的大门,原来线性代数背后的理论并不是凭空记忆而来的。后来又学习了《线性代数的本质》这套课程,那令人震惊的动画演示线性变换至今令我记忆犹新!
推荐星级
《MIT线性代数》 五星
《线性代数的本质》 五星
建议学习周期:20天
计算机技能
PYTHON
如果你想入门计算机,首先应该先学一门语言,它会是你使用最多的一个工具。而PYTHON几乎是最简单的最适合新手学习的一门语言。我个人认为学习PYTHON需要包含以下几个方面:
PYTHON的基础语法
使用PYTHON掌握基础的计算机编程思路
PYTHON用于数据处理和数据分析
任何一门语言的学习都离不开语法本身,Python也不列外,但相对于其他语言,Python语法就简洁明了。我看过很多PYTHON入门的书籍,要说好的我就只推荐两个,一本是《LEARN PYTHON THE HERD WAY》,另一本是《PYTHON编程:从入门到实践》。如果你每天抽出两个小时来学习,一般两个星期就能搞定PYTHON语法。
接下来我推荐学习的可能与你在其他地方看到的不一样,我希望你能学习一些计算编程思维,再直白一点就是学习一点数据结构和算法。 随着我自己工作经历的增长,越来越发现编程思维(数据结构和算法)对于工作以及思考问题的重要性,所以直到现在我仍然在不断的恶补之前落下的数据结构和算法。因此你不妨在一开始学习阶段就来弥补一些!
我给你推荐的是一本书以及这本书配套的课程,这是我看过的最好的教程: 《PYTHON编程导论》以及EDX上开设的专门的对应视频课程。这套教程除了讲解PYTHON基础知识外,还会讲解常用的编程算法,包括查找,排序,搜索等等,可以说是相当好的入门计算机课程。
PYTHON是一门非常综合的语言,被发明出来也不是为数据挖掘或者数据分析专用的。PYTHON能够成为“AI第一语言”得益于它众多的第三方库,因此我们还需要学习一下专门用来进行数据处理的第三方库:pandas、numpy、matplotlib。唯一推荐的书籍就是pandas作者写的《利用PYTHON进行数据分析》,这本书介绍了几乎三个库主流的用法,相当实用。唯一的缺点就是编排比较乱,学的很零散,所以需要你自己好好的总结一番!
推荐星级
《PYTHON编程:从入门到实践》 四星
《PYTHON编程导论》 五星
《利用PYTHON进行数据分析》4星
建议学习周期:30天
机器学习
我们宗旨是成为一名算法工程师,现代意义上算法工程师一般就是指机器学习工程师。在第一年的夯实基础阶段,我们并不能完全深入的学习完机器学习的知识,但是入门还是一定要具备的。机器学习数学基础三板斧:微积分、线性代数、统计概率! 所以你可以看出来,为什么我花了很大篇幅和你讲要认真学习这三门课!
那么入门阶段该怎么做呢? 很简单,一门课一本书。
一门课
吴恩达《MACHINE LEARNING》公开课
这真的是地球上最好的机器学习入门课程了!我无法用文字来推荐它,总之你就记得学习机器学习看着门课程就绝对错不了。网上一大堆关于这门课的资料、评价、笔记等等,数不胜数!
一本书
《Introduction to Data Mining》(数据挖掘导论)
很遗憾,我并没有推荐周老师的书,也没有推荐韩老师的书(如果你不认识两位老师,那就忽略这句话)。 数据挖掘导论是我学习过的最好的入门级别的教材,与其它一上来就开始讲解模型的书籍相比,这本书会从最开始的数据准备,数据处理讲解,给与新手最好的入门方式。其内容板块安排的又是相当的合理,尤其是决策树和异常检测这两章,我觉得是相当的精彩,手把手教你推导一个决策树!有一个章节我觉得可以不学,就是关联分析,似乎可能好像仿佛大约已经没人使用这种技术了,虽然我当初仔细的学习过,而且这本书写的也相当的好,但是真的没应用过,都快忘记的差不多了。请君自行判断
文:小明
转自:SOTON数据分析
翻译:卢苗苗、梁傅淇;校对:吕艳芹;作者:Matthew Mayo
原文链接:http://www.kdnuggets.com/2017/02/5-career-paths-data-science-big-data-explained.html
本文为你提供如何切实参与到数据科学和/或大数据职业道路的建议。
最近有许多人联系我(大部分都是通过领英)寻求着手数据科学和/或大数据的建议。这些人普遍对切入这个“领域”感兴趣,并且需要些关于如何切入方面的指导。
然而,我怀着极大的尊重来说这个话,这些请求的中心含义体现出请求者对自己所要求的事情其实并不理解。是的,不论在学习什么,每个人都需要从某个地方开始。我不会再一个个去回答这些相似的问题,这篇文章会列出和数据科学和/或大数据职业道路相关的一些基本的概念,并且,很希望提供一点如何切实参与到这个复杂领域的建议。
预备阅读
▼
在我们继续深入之前,读一读这些文章。我是说真的,读,这些,文章。
解析数据科学谜题
(http://www.kdnuggets.com/2016/03/data-science-puzzle-explained.html)
再析数据科学谜题
(http://www.kdnuggets.com/2017/01/data-science-puzzle-revisited.html)
解析数据科学和大数据
(http://www.kdnuggets.com/2016/11/big-data-data-science-explained.html)
预测性科学 VS 数据科学
(http://www.kdnuggets.com/2016/11/predictive-science-vs-data-science.html)
第一篇文章概览数据科学中一些最主要的概念,而第二篇文章则是今年早些时候对这些概念的更新。第三篇文章更深入地解析了数据科学和大数据之中的概念。最后一篇文章对比了一些其他术语,对“数据科学”这个术语的复杂性和微妙性进行了简短的探讨。
我将众多的职业可能性拆分成五条能够轻松掌控的道路。虽然可能有很多人强烈反对这种角色划分并且因此感到恐慌,但它确实对技能和职业责任进行了高度的分类。因此,我相信接下来的内容能有效地帮助新来者在这个专业领域中所存在的令人混淆和迷惑的无数机会之中确认方向。
分析性职业的粗略分析(点击图片放大)
数据管理专员
这本质上是一个IT职业,类似于数据库管理员。数据管理专员被认为和管理数据以及支持数据管理的设施有关。这个职位和数据分析只有很少关联,也类似Python和R语言的使用也不是很必要。可能会用到SQL语言,以及和Hadoop相关的查询语言,比如Hive和Pig。
关键技术以及需要关注的技能:
Apache Hadoop和它的生态系统
Apache Spark和它的生态系统
SQL以及关系数据库
NoSQL数据库
延伸阅读:
解析大数据关键术语
(http://www.kdnuggets.com/2016/08/big-data-key-terms-explained.html)
解析数据库关键术
(http://www.kdnuggets.com/2016/07/database-key-terms-explained.html)
解析Hadoop关键术语
(http://www.kdnuggets.com/2016/05/hadoop-key-terms-explained.html)
解析Apache Spark关键术语
(http://www.kdnuggets.com/2016/06/spark-key-terms-explained.html)
解析云计算关键术语
(http://www.kdnuggets.com/2016/06/cloud-computing-key-terms-explained.html)
七步理解NoSQL数据库(http://www.kdnuggets.com/2016/07/seven-steps-understanding-nosql-databases.html)
七步掌握数据科学所需的SQL
(http://www.kdnuggets.com/2016/06/seven-steps-mastering-sql-data-science.html)
数据工程师
这是一条非分析大数据职业道路。记得在刚刚的职业道路之中提到的数据设施吗?是的,它们需要被设计和执行,数据工程师就承担了这部分工作。如果说数据管理专员是汽车修理师,那么数据工程师就是汽车工程师。不过不要搞错了,这两个角色都对你的汽车的行驶和持续工作至关重要,对你从A点驾驶到B点同样重要。
说句实话,数据工程师和数据管理专员所需要的技术和技能是相似的,然而,他们各自在不同的层次理解和使用同样的概念。我不会重复之前一种职业中所提到的那些信息(所有这些信息对数据工程师都很重要),但我会专门给数据工程师补充延伸阅读的清单。
延伸阅读:
顶级NoSQL数据库引擎
(http://www.kdnuggets.com/2016/06/top-nosql-database-engines.html)
顶级大数据处理框架
(http://www.kdnuggets.com/2016/03/top-big-data-processing-frameworks.html)
顶级Spark系统环境项
(http://www.kdnuggets.com/2016/03/top-spark-ecosystem-projects.html)
Hadoop和大数据:对于前六大问题的回答
(http://www.kdnuggets.com/2016/01/hadoop-and-big-data-questions.html)
为什么数据科学家和数据工程师需要理解云中的虚拟化
(http://www.kdnuggets.com/2017/01/data-scientist-engineer-understand-virtualization-cloud.html)
商业分析师
在本文里,商业分析师指的是与数据分析和数据呈现紧密相关的角色。包括报告,仪表板和任何被称为“商业智能”的东西。 这种角色通常要求与关系数据库和非关系数据库以及大数据框架的交互(或查询)。
虽然前两种角色与设计基础设施来管理数据以及实际管理数据有关,但商业分析师主要关注从那些或多或少存在的数据中提取信息。 这与以下两个角色(机器学习研究者/从业者和以数据为导向的专业人员)形成对比,两者都侧重于从数据或数据以外已知的一些表面信息中获得洞察力。 因此,商业分析师需要在所呈现的这些角色中具有独特的技能。
关键技术以及需要关注的技能:
SQL和关系型数据库
NoSQL数据库
经常会用到商业报告和仪表盘封装技术
报告从本质来讲是没有固定模式的,快速掌握工具的使用是关键
数据仓库
延伸阅读:
2016年人工智能的10大趋势
(http://www.kdnuggets.com/2015/12/10-business-intelligence-trends-2016.html)
嵌入式分析:人工智能的未来
(http://www.kdnuggets.com/2016/09/embedded-analytics-future-business-intelligence.html)
自建还是购买–分析表盘(可视化分析)
(http://www.kdnuggets.com/2016/07/build-buy-analytics-dashboards.html)
机器学习研究员/从业者
机器学习研究人员和从业者指的是那些制作和使用预测和相关工具进行数据利用的人。 机器学习算法允许以较高的速度应用统计分析,并且那些操作这些算法的人不满足于让数据以其当前形式呈现出来。 数据询问是机器学习爱好者的工作方式,但是具有足够的统计理解才能知道何时推进的足够远,以及什么时候提供的答案不可信。
统计和编程是机器学习研究者和实践者最大的财富。
关键技术以及需要关注的技能:
统计学!
代数与演算(从业者的中级水平,研究员的高级水平)
编程技能:Python,C ++或其他一些通用语言
学习理论(从业者的中级,研究员的高级水平)
理解机器学习算法的内部工作原理(算法越多越好,理解越深越好!)
延伸阅读:
机器学习与统计学
(http://www.kdnuggets.com/2016/11/machine-learning-vs-statistics.html)
解析机器学习关键术语(http://www.kdnuggets.com/2016/05/machine-learning-key-terms-explained.html)
用Python7步掌握机器学习
(http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html)
进入机器学习生涯之前必读的5本书
(http://www.kdnuggets.com/2016/10/5-free-ebooks-machine-learning-career.html)
机器学习算法:简短技术概述
(https://www.linkedin.com/pulse/machine-learning-algorithms-concise-technical-overview-matthew-mayo)
机器学习工程师需要知道的10中算法
(http://www.kdnuggets.com/2016/08/10-algorithms-machine-learning-engineers.html)
算法教程综述
(http://www.kdnuggets.com/2016/09/great-algorithm-tutorial-roundup.html)
10种数据挖掘算法
(http://www.kdnuggets.com/2015/05/top-10-data-mining-algorithms-explained.html)
数据科学的15堂数学慕课
(http://www.kdnuggets.com/2015/09/15-math-mooc-data-science.html)
数据导向专业人员
对于可以被称为“真正的”数据科学家,这是我可以想出的最好的描述。你知道,独角兽。除了,没有独角兽,说不同的话的人都是在撒谎。
数据管理专业人员和数据工程师关注数据的基础设施。商业分析人员关注从数据中提取事实。机器学习研究者和从业者关注推进和使用相关工具,以利用数据来进行预测和相关分析。这两种角色都是基于算法(开发或利用或两者兼具)。数据导向的专业人员主要关注数据本身以及它可以告诉的事实,并不涉及执行任务时所需要的技术或工具。
面向数据的专业人员可能使用上面任何角色中列出的任何技术,这取决于他们的具体职责。这是与“数据科学”有关的最大的问题之一;该术语并没有什么具体的实际意义,但在整体上又包括了一切。这个角色是就像是数据世界的万金油:(可能)知道如何让一个Hadoop生态系统建立和运行;如何对存储在其中的数据执行查询;如何抽取数据,并且载入到非关系型数据库;如何获取非关系型数据并将其提取到平面文件( flat file);如何在R或Python语言中辨别这个数据;如何在进行初步探索性描述分析后设计特征;如何选择适当的机器学习算法来对数据进行预测分析;如何统计分析所述预测任务的结果;如何将结果可视化,以方便非技术人员使用;如何用刚刚描述的数据处理流水线的最终结果告诉管理人员一个令人信服的事实。
这只是数据科学家可能拥有的一些技能。然而,无论如何,这个角色的重点是数据,以及从数据中可以得到什么。同时,在这一个角色中,专业知识占很大的分量,这显然不是这里可以教授的。
关键技术以及需要关注的技能:
统计学
编程语言:Python, R, SQL
数据可视化
沟通能力
延伸阅读:
R语言学习路线:7步教你从菜鸟到专家
(http://www.kdnuggets.com/2016/03/datacamp-r-learning-path-7-steps.html)
数据科学入门:讲给初学者的基本概念
(https://www.linkedin.com/pulse/data-science-primer-basic-concepts-beginners-matthew-mayo)
数据科学统计101
(http://www.kdnuggets.com/2016/07/data-science-statistics-101.html)
要在数据科学中做到卓越需要什么样的统计话题?
(http://www.kdnuggets.com/2016/08/statistics-topics-needed-excelling-data-science.html)
数据科学家使用的顶尖算法和方法
(http://www.kdnuggets.com/2016/09/poll-algorithms-used-data-scientists.html)
作为一篇介绍性文章,我有意地忽略了物联网。原因有以下两个:第一,我不想为试图吸取所有这些新信息的人增加困惑;第二,物联网只是一个特殊的数据情况。可能进行一些改进,这些角色都可以适用于物联网数据。但本质来讲还是一样的。
我希望这个介绍能够对那些想要从事“数据科学”或“大数据”行业但不知从哪里或者怎样开始的人们有所帮助。 请记住,对于文章中所提到的任何角色。这里的介绍都不能包罗万象。 但是,对于对数据专业了解不多的人来讲,这是一个很好的起点。
如果你对这个话题的不同看法感兴趣,可以读一读Zachary Lipton的Will the Real Data Scientists Please Stand Up(http://www.kdnuggets.com/2015/05/data-science-machine-learning-scientist-definition-jargon.html)?
END
卢苗苗:北京语言大学英语专业在读。一个带有理科思维的文科生。 爱思考善分析,脑洞大想法多,喜欢在复杂事物中发现潜在联系。既喜欢仰望星空,也喜欢脚踏实地。作为数据派的活跃分子,希望能同各位大们好好学习。
梁傅淇:软件工程本科在读,主修大数据分析,喜好搜索、收集各类信息。希望能在THU数据派平台认识更多对数据分析感兴趣的朋友,一起研究如何从数据挖掘出有用的模型和信息。
本文转自:数据派THU 公众号
工业互联网操作系统
产业智能官 AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业工业互联网操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
长按上方二维码关注微信公众号: AI-CPS
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!
版权声明:由产业智能官(公众号ID:AI-CPS)推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com