与其宅在家里无聊,不如利用网络免费资源丰富一下自己的知识储备。这里我总结了一下大数据和AI相关领域的免费资源,这些书籍和资料都是我个人阅读过,一些阅读经验也和大家分享一下。鉴于当前形势,购买书籍不太方便,我已经将这些书籍的电子版打包整理好,文末有下载方式。
机器学习
机器学习
入门机器学习有两本必读的中文书:周志华的《机器学习》和李航的《统计学习方法》。这两本书主要介绍机器学习的统计学原理,深入浅出,是机器学习必不可少的好书。其中,周志华的《机器学习》封面是一个西瓜,内容中大量使用了瓜来举例,因此被称为西瓜书。我认为,对于零基础的朋友,周志华的这本西瓜书入门机器学习更合适。《统计学习方法》适合面试算法工程师前快速地回顾和梳理知识。我建议在有一定的《机器学习》阅读基础后,再学习《统计学习方法》。
深度学习
深度学习领域很多人推荐Ian Goodfellow和Yoshua Bengio等大牛的《Deep Learning》,因其封面是一幅花的油画,被称为花书。中文本由北大张志华老师团队翻译。我自己读过中文版,读了两三章放弃了,因为整本书主要介绍深度学习背后的各种数学推导,即使有一定数学基础的朋友也可能需要花费大量精力啃明白书中的各种数学符号,因此这本书更适合深度学习相关的博士生和研发人员。有英文基础的朋友可以直接在线阅读:http://www.deeplearningbook.org/。
相对而言我建议一些有代码示例的课程,比如Keras之父的《Python深度学习》和亚马逊李沐的《动手学深度学习》。学好这两本书中的任意一本基本就能对深度学习有更全面的理解了。
我认为《Python深度学习》是初学者入门深度学习的最佳书籍之一。书中使用了大量的案例,包括计算机视觉和自然语言处理等,而且主要使用Keras实现,代码简洁、可读性强。作者将书中的代码放到了github(https://github.com/fchollet/deep-learning-with-python-notebooks)上开源了。
李沐的《动手学深度学习》也是一本一边学原理一边动手练习的入门书籍。该书目前已经在网络上开源,地址为:https://zh.d2l.ai/ 。这本书也是伯克利的深度学习课程教材,相关在线教学视频已经放到了B站上:https://www.bilibili.com/video/av41702832。这本书有一个小缺点,就是代码主要使用亚马逊主推的MXNet框架,与当前主流的TensorFlow和PyTorch肯定略有不同。不过,有人已经将书里面的相关代码用PyTorch翻译了一遍:https://github.com/dsgiitr/d2l-pytorch。所以相比《Python深度学习》而言,MXNet可能是它的一个小缺点吧。
如果将上面这些书都弄明白,你已经是一名机器学习高手了。说实话,机器学习的有些问题我也没有100%搞懂。
大数据
这年头,算法工程师竞争越来越激烈了,只懂深度学习可能已经没那么吃香了,找到一份好的算法工程师工作还需要一些大数据的背景,毕竟各大公司都是在大数据上做深度学习的。大数据各家公司的技术栈不太一样,但主要依赖几个工具:Hadoop、SQL、Spark、Flink。接下来分别推荐一些资料。
Hadoop
Hadoop是大数据生态中的基石,这头大象已经十几岁了,尽管有人认为Hadoop太老了,但它仍然是很多公司首选的大数据基础架构。这里重磅推荐《Hadoop权威指南》这本书。这本书不仅仅讲解了Hadoop这项技术,更是对Hadoop生态中的核心组件做了全面的介绍,包括HDFS、MapReduce、YARN、Hive、HBase、Spark等,这些技术目前被广泛应用在各大公司。因此,我认为这是一本非常好的入门Hadoop和大数据的书籍。可惜的是,这本书我没找到中文第四版PDF。
SQL
SQL是很多公司经常使用的数据分析工具,比如基于Hive来写SQL。对SQL还不太熟悉的朋友可以通过这个网站学习SQL基本语法:https://www.runoob.com/sql/sql-tutorial.html。
Hive的语法与SQL很像,它与Hadoop生态联系更紧密。这里推荐《Hive编程指南》来学习Hive编程。
Spark
Spark已经是大数据批处理领域绝对的王者。Scala是Spark的主要开发语言,也是官方推荐的最佳API语言。我认为学习Spark最大的难点可能是Scala这门编程语言了,因为Scala太灵活了,太过灵活以至于初学者容易找不到方向。这里推荐几个Scala的在线学习网站:
- Twitter的Scala课堂(中文):https://twitter.github.io/scala_school/zh_cn/index.html
- Scala教程:https://www.runoob.com/scala/scala-tutorial.html
至于Spark,说实话我没有看过任何书籍,一方面主要是因为Spark的迭代很快,很多书已经有些落伍了,另一方面Spark的官方文档(http://spark.apache.org/docs/latest/index.html)也比较详细,可以用来入门Spark。
Flink
Flink现在是大数据领域的新星,在流处理领域有绝对的优势,相比而言比Spark更难掌握一些。目前市面上好的书籍有Flink主要开发人员编写的《Stream Processing with Apache Flink》。这本书对Flink的原理和架构有比较详细的描述,美中不足的是英文原版,有英文基础的朋友可以阅读一下。目前中文领域我认为还没有特别好的书籍来推荐,我的专栏里有大量对Flink的介绍,是在阅读Flink源码以及英文资料基础上完成的,有兴趣的朋友可以阅读一下。
下载方式
大家关注我的公众号:ai-xingqiu,回复“资料”二字来获取下载链接。
这些电子版都是我从网络中收集到的,当然还是建议大家购买和支持正版书籍。资料分享就到这里了,感兴趣的朋友可以关注我的专栏,留言说出你想学习和了解的技术和领域。
来源:CSDN
作者:皮皮鲁同学
链接:https://blog.csdn.net/qq_42596142/article/details/104105905