自学python要看哪些书籍-学习机器学习应该看哪些书籍?

我也给一个自己的路线图。

首先为了打好自己的数学基础。其中重点涉及到三门学科:微积分(数学分析)、线性代数(高等代数)、概率论与数理统计(概率统计与随机过程)。

数学基础

其中,微积分里的多元微积分是推导一些重要公式的理论基础,如反向传播公式。学好多元微积分也能更好地理解神经网络模型的优化过程。

线性代数是理解矩阵运算的基础。数据挖掘算法里的非负矩阵分解、奇异值分解,以及神经网络里的矩阵运算,都需要一定的线性代数知识。

概率论与数理统计是最为重要的一门数学课。目前使用最广泛的交叉熵损失函数,源于统计中的极大似然估计;概率论中的贝叶斯公式衍生出了贝叶斯学派;正态分布及其性质影响了VAE等模型的构建;大数定律则是很多主观实验的理论依据之一。

为了理解一些数据结构和算法,离散数学是不可以少的。

编程基础

为了落实机器学习理论,快速尝试我们的想法,以及学习community中的新算法,有两门语言需要进行学习。

第一门是Python。目前Python已经成为了机器学习界最通用的编程语言,特点是学习起来简单,第三方库灵活,便于快速实现自己的想法。根据我本科期间带微软学生俱乐部的经验,下面这本书是新手接触Python的最佳教材:

Python在工程上的提高可以看这本书。这本书提到了一些Python的高级特性和技巧。

Python在工程上面的代码规范可以看下面的文档:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/​zh-google-styleguide.readthedocs.io

第二门是C++。C++在少数情况下能帮助你完成机器学习工作,但是C++是计算机科学体系中的重要一环。研究算法、数据结构、操作系统、体系结构、编译原理等课程时,都需要用到这门语言作为人机交互接口。

如果没有学习过C/C++,推荐从下面这本书开始。

不推荐轮子哥的那本《C++ Primer》。就个人体验而言,这本书会更加新人友好一些。

计算机科学课程

一般来说,机器学习相关的书籍不会涉及基本计算机概念,因为他们默认你已经懂了。我推荐还是了解一下下面的课程:

第一门是数据结构与算法。这门课程可以帮助你理解基本的数据结构,以便在合适的时候选择。如果你以后接触非线性结构的数据,如图或者树的数据,那么这将会在很大程度上帮助你。

机器学习理论

和激进的部分答主不大一样,我推荐机器学习理论书籍还是总体遵循由浅入深,不追求一步到位。

首先是传统机器学习算法和一些机器学习思想。在很多领域的研究中,传统算法仍然得到关注,比如k-means聚类,奇异值分解,主成分分析(PCA),非负矩阵分解(用于信号处理);以及一些概率模型理论,如隐马尔科夫模型(HMM),混合高斯模型(GMM),相关算法,如Gibbs采样。上面这些算法我都在计算机音乐研究中打过交道。

推荐下面这本经典书籍,目前出到第二版,好评满满:

当然,周志华的西瓜书也是很经典的。但是要提醒一句,这本西瓜书是教材,并且内容跨度很大,并不适合新手自学。

深度学习的理论,只推荐一本书:《深度学习》,也就是花书。这本书和中文翻译是开源的,GitHub地址为:https://github.com/exacity/deeplearningbook-chinese​github.com

实体书略贵,不建议买:

机器学习代码

机器学习模型一般会使用sklearn库。当然,Python很多di三方库都大有用处,但是都没有sklearn这么被广泛地应用。

利用sklearn库,使用Python编写机器学习代码,这本书最为合适:

不是O'Reilly的动物书,就是这一本。

而深度学习代码,目前学术界更多地是在用PyTorch。不建议使用keras和TensorFlow,主要原因是API混乱。PyTorch作为主流深度学习框架,功能强大,API统一,代码风格简明。不建议使用任何实体书进行学习,请直接阅读PyTorch提供的tutorial。

当然,你可以参考GitHub上大神提供的示例项目。https://pytorch.org/tutorials/​pytorch.org

……然后就足够了。

用PyTorch搭模型实际上有一套通用的范式,大同小异,并不需要很多笔墨。

更进一步的学习

如果你的目标是奋战在一线,那么书籍是没有办法满足你的。你需要和学术界的各个有趣的思想发生碰撞,这样才能诞生出真正有趣的idea。

从科研的角度来说,要注意三点:看文献的顺序最好是,从综述和tutorial看起,自顶向下地看各个领域,最后细分到子领域,阅读领域的顶会论文。直接一上来读论文会使得你的知识缺少体系概念。

各个领域有自己的Python库,如NLP的nltk库,计算机音乐的librosa,pretty-midi库,都有对应的document去阅读。

如果不知道代码如何开始,不如去阅读顶会论文提供的开源代码吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值