菜单

机器学习大数据学习路线总结

八月 18, 2019 - 机器学习&大数据

前言

好久好久好久没有更新过博客的内容了,这次把前一段时间给浪潮俱乐部的新成员总结的机器学习和大数据学习路线总结放上来水一篇博客,不管怎么说也算是给其他人一个参考吧。如果你觉得这篇文档的内容有失偏颇,请联系BB酱进行修改。

写在前面

欢迎大家来到西电浪潮俱乐部,相信对于你们中的大多数同学来说,来到俱乐部是因为被人工智能,大数据的名头所吸引,想要学习相关技术,并且在未来能够有机会从事这些领域的研究或工作。那么,希望BB酱的这篇文章能够多少给你们起一些正面作用。

可能会有很多人觉得,人工智能看起来超厉害,超NB,学了人工智能就能统治世界!这话说的也不无道理,毕竟现在已经21世纪了,而且你们了解人工智能的渠道一般是媒体和网络,像前几年超级火爆的AlphaGo,最近新兴的自动驾驶,智能家居,类脑计算这些话题也总是在媒体上被大肆报道。说的玄乎一点,还有什么各类科幻电影,机器人什么的也少不了人工智能的影子。不管怎么说,你现在已经是或者即将成为西电浪潮俱乐部的一员了,那你就是上了我的贼船,没那么容易回头了。

但是任何事物的红火终归是有道理的,人工智能领域现在火的一塌糊涂,人工智能也已经从计算机领域的学科演变成了一个多学科、多领域混合的方向。那么对于我们而言,要选择合适的切入点是很重要的。我们俱乐部目前将方向大致划分成机器学习方向和大数据方向,从不同的角度诠释人工智能的基本组成部分。

可能你们属于不同的部门,有着不同的职责(B事),但是不管怎么说,我们都是一个以技术为主要驱动力的社团,因此对于我们的成员来说,学习技术也是最重要的一部分。不管是什么部门,我们的技术培训和讨论都是在一起进行的。

在这篇文章开始之前,我们希望你已经对于基础的C语言和基本的程序设计方法有了一个简单的了解,能够上手写一写简单的C语言上机题,如果你对算法和数据结构等知识有所了解,那么你对学习过程将会变得更加容易。

那么,接下来的这篇不短的文章,给出了我目前理解的针对大家当前学习情况的可能的一套学习方案。要是有什么不对的地方,还请指正,当然也可以直接过来找我,我们可以面对面进行深度♂讨论。

网络上的入门路线资源:

在开始之前,有兴趣的同学可以看一下网上大神总结的入门路线,可以和我写的这一篇一起作为一个参考,祝各位武运昌隆。
学习攻略 | 机器学习 学习路线图 https://zhuanlan.zhihu.com/p/27183621
如何用3个月零基础入门「机器学习」? https://zhuanlan.zhihu.com/p/29704017
大数据最佳学习路线总结 https://juejin.im/post/5b1a71c25188257d571f24a2
大数据学习路线攻略 https://blog.csdn.net/zzq900503/article/details/79346215

机器学习入门综述

针对浪潮俱乐部而言,我们的机器学习方向,就是学习机器学习、深度学习有关的算法、框架和应用的方向。
那么什么是机器学习呢?我们先来看看维基百科:

  • 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
  • 机器学习是对能通过经验自动改进的计算机算法的研究。
  • 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
  • A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

看起来很厉害,其实机器学习简单来说就是让机器按照和人一样的方法进行学习,通过经验来不短改正自身结构和方法,从而获得知识。也就是说,看上去很智能,其实本质上还是数学哦。

前置知识

这里我总结了一些机器学习领域相关的前置数学知识,这些知识在后面的学习中都会或多或少的用到,建议在系统学习机器学习前有所涉猎。
注意:
不一定非要看完所有的前置知识再开始你的学习!
不一定非要看完所有的前置知识再开始你的学习!
不一定非要看完所有的前置知识再开始你的学习!

高等数学:高数中的微积分部分是很重要的,无论是任何机器学习方法,最终都会归结于求某个式子的最小值的问题,微积分中的一些知识也被作为计算方法的一部分,我们至少需要掌握:

  1. 方向导数/梯度的概念
  2. 偏导数/求偏导数
  3. 求函数拐点和各种求最值方法
  1. 矩阵的基本概念&矩阵运算
  2. 特征值/特征向量
  3. 向量空间/范数
  4. 常用距离
  1. 条件概率/贝叶斯定理
  2. 期望/方差/协方差
  3. 分布函数
  4. 统计方法

前置知识的参考资料:

BB酱推荐线性代数入门书:线性代数及其应用 https://book.douban.com/subject/1425950/

各路博客参考资料(仅供参考)

机器学习理论篇1:机器学习的数学基础 https://zhuanlan.zhihu.com/p/25197792
机器学习算法数学基础之 —— 微积分篇(1) https://zhuanlan.zhihu.com/p/33794793
机器学习理论篇:机器学习的数学基础 https://www.cnblogs.com/jialin0421/p/8988824.html
掌握机器学习数学基础之概率统计 https://www.cnblogs.com/jialin0421/p/8988834.html
机器学习数学基础-线性代数 https://www.cnblogs.com/jialin0421/p/8988843.html

萌新阶段

在机器学习领域里,有这么几套课程,可以被看做机器学习领域入门的圣经,而这些经典的课程,也一定是我们无论如何也不能绕过的必经之路。

参考资料:

吴恩达机器学习:https://www.bilibili.com/video/av49445369
李宏毅机器学习:https://www.bilibili.com/video/av35932863
西瓜书:https://book.douban.com/subject/26708119/
《Python语言及其应用》:https://book.douban.com/subject/26675127/
《Python编程:从入门到实践》:https://book.douban.com/subject/26829016/

入门阶段

到了这个时候,你应该对机器学习有了一个大致的认知了,所以可以开始正式的入门工作了。在之前的课程中,你应该对于机器学习、深度学习这些东西有了一个比较清晰的轮廓,这也就意味着接下来的内容可能就很难绕过数学和代码过程了,也算是你真正掉进这个深坑了。

参考资料:

cs231n: https://www.bilibili.com/video/av16585576
《Keras深度学习实战》:https://book.douban.com/subject/27036791/
《PyTorch深度学习》:https://book.douban.com/subject/33408564/
《TensorFlow:实战Google深度学习框架(第2版)》:https://book.douban.com/subject/30137062/
Kaggle官网:https://www.kaggle.com/

进阶阶段

如果你在本科期间完成了上面的过程,那么恭喜你,你已经成为一个很强的同学了,你对于基本的模型和框架有所掌握,别人说什么概念你也都能回答个差不多。那么现在的你面临就是问题就是,你需要选择一个方向进行深入学习,现在西电老师做的主流的方向有两个,CV方向和NLP方向。

当你们学会了上面的大部分事情的时候,走到这里已经基本上没有什么成套的课程和书籍可以教给你了,现在你要做的是去读论文,了解现有的技术的发展情况,看看那些人把你之前学的东西用的多么出神入化,多么牛逼,你就知道自己之前的知识就是学了个P。看到这么一句话,目前中国还没有人能够胜任深度学习纯理论的研究,大部分都是在做深度学习应用领域的研究。事实上也确实如此,如果对这方面有兴趣的同学可以考虑出国深造。
视觉方向要掌握的最基础的网络模型有CNN,RNN,GAN这些东西。要读的论文不少,顺着这些文章读下去又能看到很多新的模型和网络。另外,老师会给你提供很大的帮助,有问题可以去联系老师,老师会给你更好也更新的论文让你学习,会很有收获。

现在这个阶段,你们做的事情,应该就是你们在进入浪潮俱乐部之前以为人工智能应该做的事情了,现在的你们大致上也应该对自己未来的发展有个掌握了,剩下的就是你们自己的努力了。

大数据入门综述


声明:BB酱能力有限,对大数据知之甚少,这一部分可能在未来会有极大的改动,还请同学们谅解,同时也欢迎同学们一起参与编写。

大数据不是某个专业或一门编程语言,实际上它是一系列技术的组合运用。有人在知乎上写了这么一个等式,我觉得还蛮有道理的:
大数据 = 编程技巧 + 数据结构和算法 + 分析能力 + 数据库技能 + 数学 + 机器学习 + NLP + OS + 密码学 + 并行编程
看起来是不是很高端的样子,实际上大数据做的事情,确实也就是这些事情的综合应用,可能不是那么追求原理,但是基本的方法和应用也应该熟练掌握。
大数据可以简单的分为:数据的采集与中间件、数据存储、数据分析和数据处理,而这些基础的方向都是基于现有的大数据平台和框架,入门难度 可能比较高,但是入门后的成长曲线比较平滑。

前置知识

说起学习大数据的前置知识,我觉得吧,其实最重要的是一套编程思想和计算机思维。从某种角度上讲,从事Web后端开发的同学可能会对这部分的知识有所涉猎,因为无论是集群还是并行计算,最基础的知识都离不开Web相关的应用。
Linux基本知识:当然,不只是针对大数据,任何同学都应该掌握基本的Linux知识。所谓的基本知识,其实就是常用的命令语句和一些简单的原理,《鸟哥的Linux私房菜》是本好书,可它太厚太重了,不太建议完全学完再开始做。边用边学应该是一种不错的手段。

参考资料

由于我对大数据知识了解有限,给出的参考资料可能不是很好,因此请大家仅供参考
廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/896043488029600
MongoDB菜鸟教程:https://www.runoob.com/mongodb/mongodb-tutorial.html
Redis菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html
《鸟哥的Linux私房菜》: https://book.douban.com/subject/4889838/
《数据库系统概论》: https://book.douban.com/subject/26317662/

萌新阶段

现在的你有了基本的数据库基础,并且对Linux放下了戒心,那么你就可以开始学习一下程序设计的技巧了。除了学校教的C和C++之外,Java也是必不可少的一环,所以当你初一萌新阶段的时候,应该大致了解一下如何利用程序设计语言完成数据库的设计和操作。

参考资料:

《第一行代码 Java》:https://book.douban.com/subject/27034265/

入门阶段

有了Java和Scala,你有了程序设计利器和面向对象的方法,现在你已经有资格接触大数据的框架和项目实战了。当然,像Hadoop这种东西,如果你单纯的想要搭建一个环境,可能对于Java的要求不是那么高,但是如果你会Java并且能够弄懂你搭建环境时敲的每一个命令,你就会有一个长足的进步。
– Hadoop:Hadoop是一个使用java编写的Apache开放源代码框架,它允许使用简单的编程模型跨大型计算机的大型数据集进行分布式处理。Hadoop是一个大而全的平台,提供了一个分布式的大环境。从安装学起,会收获很多。

参考资料

《Hadoop大数据实战权威指南》:https://book.douban.com/subject/30126096/
《Hadoop实战》https://book.douban.com/subject/6859710/
Spark入门指南 https://www.jianshu.com/p/dd28b5c41f7a
一篇不错的知乎回答 https://www.zhihu.com/question/27974418/answer/38965760

进阶阶段

我是真的不知道怎么进阶了,希望你们中的强者补全这份文档。

写在最后

前面说了这么一大堆东西,我估计也没几个人能把它看完。这份文档可能也不是那么适合所有人,也许对于0基础的同学读起来还有一点困难,不过这都不要紧,现在看不懂,以后总会有看懂的时候。到那个时候你就会发现,这篇文档写的有多么的简陋和主观。

针对大一的同学们来说,最重要的还是好好学习。打好基础。有能力的同学可以尝试一些Web项目或者各类比赛,锻炼一下自己的思维能力和代码能力。毕竟你们大多和计算机专业有关,代码能力对你们来说是极其重要的一环。记得一定要规范自己的代码风格,因为你的代码不只给你一个人看。

最后,不管你最后有没有选择我们西电浪潮俱乐部,我们都祝你在人工智能的领域有所建树,有所发展。

来自学长のTips

最后的最后,我汇总了一些学长们提供给你们的小Tips,也希望能对你们有所帮助。
1. 学会使用搜索引擎。说具体一点,学会使用Google
2. 学会使用GitHub存代码,不仅可以方便自己方便同学复制代码,还可以找到很多需要的脚本,工具,甚至问答纲要,比如深度学习500问。
3. 学会拥有一个博客,不管是自己搭建还是在博客园或者CSDN这些现有平台申请,总应该有一个记录自己学习历程和心路历程的地方,不仅用来备忘,也能加深你的印象,是一个很有用的东西。
4. 好好学习,打好基础,无论是工作还是上研,成绩都是很重要的一部分,也会成为很重要的参考因素,BB酱现在就正在因为均分不高而感到苦恼。
5. 当然也不能只看分数,技术也得好好学,不然看着技术大佬什么都会的样子,你只会感到很无助QAQ。换句话说,小孩子才做选择,成年人我全都要。
6. 尽自己所能多参加竞赛,哪怕没有什么奖项,混个奖学金也是不错的选择。
7. 建议每个月看两本书,不是技术方面的,是陶冶情操的,要做一个有内涵的码农。
8. 学会放松自己,劳逸结合,浪潮俱乐部从来不缺游戏爱好者哦,欢迎一起开黑。
9. 学会职业规划,尽早确定自己以后的方向,明白自己以后想干什么。当你确定不了的时候,就做一些通用的有意义的事情,比如学Python,学Java之类的
8. 建议加入浪潮俱乐部,和我们一起嗨皮。

机器学习大数据学习路线总结》有2个想法

杨谢隼

太牛了,给跪了orz

回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注