关于机器学习,非数学/统计专业的人都会有这些疑问:

到底要把数学学到什么程度才能够无障碍地推导机器学习算法?实变、复变、泛函、矩阵论到底要不要全都学会?入门机器学习到底要看什么书?除了机器学习,真正的事情中还哪些必要技巧?如何入门深度学习?如何动手开始进行数据挖掘项目?

下面,我会对以上问题逐个进行细致分解,结合自己的学习及事情经历为你逐一解答,并给你提出适宜建议。

数学要到什么程度?

从最根本的来说,微积分、线性代数与概率论是学习机器学习的必会内容。
相信大家看到这个答案会很失落望,但是放心,这绝对不像你想象的那么难。
在本科期间,我们学习数学的目的实在是为了期末考试,须要做很多习题。
而在机器学习中,利用到的仅仅是这些他们的特性,而不须要用他们来解题,以是只要知道他们的定义就可以。

比如线性代数,我们仅仅须要理解向量、矩阵和逆矩阵等等的定义,而不须要去真正的打算逆矩阵。

AI 入门书单推荐及进修方法

这解释,我们不须要花费大量韶光去学习数学,而只须要理解并记住他们的定义。

那么,看什么书好呢?我个人给大家推举的是《金榜图书》的考研数学讲义系列的《高档数学辅导讲义》、《线性代数辅导讲义》和《概率论与数理统计辅导讲义》。
这三本书算是考研数学入门级,他们的优点是简洁、全面,把教科书中几百页的内容压缩到几十页,如果不看个中的例题,几天就能看完。

这三本书外,还有很多数学内容须要学习,比如Jacobian矩阵、张量、特色分解、奇异值分解(SVD)和Moore-Penrose伪逆等等……这些是实剖析、复剖析、矩阵论等书中的内容,也是机器学习的必会内容。

看到这里你可能会开骂了,我假如会这些,干嘛还看你写的东西!

放心,我便是来给你办理这些问题的。
之前我说过,推导机器学习算法的过程中,须要的是理解数学定义,而非系统地学习每门课。
然而想要通过看书学习某一个知识点是很难的,由于须要很多先修知识,否则根本看不懂。
这里,给大家推举一个非常良心的免费在线课程可汗学院(www.khanacademy.org,须要科学上网),这个网站中包含很多学科,个中的数学部分险些把所有机器学习中所须要的数学知识都涵盖到了,而且每个知识点的讲解都是独立的视频,每段视比年夜约只有几分钟,还有配套的在真实运用中的例子。
比如向量微积分中的Jacobian矩阵这个知识点,可汗学院将其分为5个短视频来讲解(1. Jacobian矩阵的先修知识;2. 多变量函数的局部线性法;3. Jacobian矩阵;4. Jacobian矩阵的打算;Jacobian矩阵的决定子运用),这5个短视频从最根本的先修知识逐步过渡到最难的部分,每个短视频只有3-8分钟,已经足够让我们理解Jacobian矩阵了。

入门机器学习到底要看什么书?

关于入门机器学习要看什么书,网上已经有很多人提出过建议。
而我的建议是:不看书。
是的,不看书。
所有的书都假设你的数学根本已经非常好,很多数学推导并没有见告你个中的根源,使你无法看下去。

只有一个人,他假设你只懂最根本的微积分和线性代数——林轩田。
他在台大开设的两门公开课\"大众机器学习基石\"大众与\"大众机器学习技法\"大众(网上很随意马虎找到),基石是机器学习根本、技法是机器学习算法推导。
不过,这两部视频彷佛在各种方面都不如Andrew Ng的机器学习课程。
而且险些每一个看过他的\"大众机器学习基石\"大众课程的人都表示非常不喜好,看不下去,缘故原由有三:无聊、推导公式的过程太细,不知道学过之后的用途。
讲到这里,大家可能会想到,当年学习高档数学的时候,彷佛也是这种觉得?对的,他的课程非常\"大众无聊\公众但确实很主要,而且他讲的每一节课只要负责思考就一定能够听懂。
他讲的是机器学习中最主要的根本,当你真的懂一点机器学习的时候,反过来看基石中讲的内容,比如Break Point、VC维、偏差衡量、线性回归、非线性转换和梯度低落,哪一个是不主要的?

当你看完\公众机器学习基石\"大众,我建议你连续学习他的\"大众机器学习技法\"大众。
我相信你刚开始学习\"大众技法\"大众的时候,会创造他比上部更加无聊,于是忍不住去看对应的书本,想要避免看这种无聊的视频。
然而,你末了一定还会回来连续看他的视频,由于你会创造他的视频虽然巨无聊,但讲的真的很细致,每一步推导都讲的很明白!

在学习\"大众技法\公众课程的时候,你可以同步的看书了,由于光看视频,很多东西会忘却,要不断的看书复习。
这里,我推举给你三本书:《统计学习方法》by李航、《机器学习》by周志华、《机器学习》by Mitchell。
这三本书都是机器学习界入门的经典书本,我之以是同时推举三本,不是让你做三选一的选择题,而是把这三本对照着看:

《统计学习方法》对公式的推理深入;Mitchell的书重在算法思路的讲解,对公式的推理很浅近,但易懂;周志华的书内容更加广泛且包含很多两本书中没有的内容。

建议学习的时候以李航的书为根本,与视频对照着看;利用周志华的书进行补充;当无法理解某处的时候看Mitchell的书。

除了机器学习,真正的事情中还哪些必要技巧?

真正的事情和项目中,只会机器学习是不足的。
最早的便是对数据进行洗濯,数据洗濯事情和机器学习算法的选择同样主要。
数据洗濯把稳须要节制两点:数据处理与正则表达式。
这里推举三本书:《Python数据处理》、《数据科学实战手册(R+Python)》与《正则表达式经典实例》,前两本讲的是数据洗濯处理,末了一本讲的是正则表达式的语法。
这三本书讲的是通用技巧,在详细事情中所须要的方法是不同的,不要把自己禁锢与书本中,要在详细的事情中自己思考。

如何入门深度学习?

目前,深度学习并非事情的必备技能,仅仅是加分项。
以是我建议大家在节制了一定的机器学习知识后,再开始学习深度学习的内容。

深度学习最好的入门书本,莫过于《神经网络与深度学习》by Michael Nielsen,该书有中文版。
这本书普通易懂,用最大略的措辞和例子阐述了观点和事理。
但这本书虽然普通,却非常细致的把深度学习最根本的核心算法——BP网络的数学公式仔细地推导了一遍,乍一看很随意马虎,但如果多读几遍,相信大家每一遍都会有不同的收成。

在读了《神经网络与深度学习》后,须要开始学习CNN、RNN等主流的深度学习网络了,学习这些网络的时候,也须要把他们的BP算法推导清楚,目前我见过的讲解最好的不是书本,而是一位网名为hanbingtao的作者在网上写的Blog,该Blog把深度学习从最根本的感知机根本到CNN、RNN、LSTM的数学公式都推导了一遍,而且很浅近易懂,强烈建议大家阅读。

如何动手开始进行数据挖掘项目?

动手数据挖掘项目,首先要选择一门得当的措辞。
数据挖掘可以用很多措辞完成,R、Python、Java等等都可以,但我个人建议大家利用Python,由于利用Python相对大略且大多数公司都哀求利用Python进行事情。
刚开始进行数据挖掘项目的时候,很多程序员出身的人会陷入一个误区,认为既然是做项目就要把算法的每一个细节都自己实现,而是不该用现成的工具包,担心自己会变成调包侠。
实在,每个高手都是从调包侠开始的,而且自己写的代码都是利用Python完成的,效率与工具包中直接调用C措辞的代码比较要差很多。
而且,在入门阶段,不应该花费极多的韶光只为了对算法造轮子。
在后期,当你的能力足够而进行一些非常繁芜的项目的时候,才会以为工具包知足不了你,那时候再顺其自然的造轮子岂不甚好。

说到Python的机器学习工具包,不能不提到scikit-learn。
scikit-learn的算法非常完好(险些把所有你能想到的机器学习算法都包括在内,乃至数据预处理、特色提取等等都有现成的工具),调用大略(两条语句就能演习出一个模型),API非常友善(可以到官网)。
学习scikit-learn最好的一本书是《机器学习系统设计》by里彻特。
这本书共12章,撤除末了一章外,每章都带着我们从最根本一步步地做出一个数据挖掘项目,实在把这本书看完,实在已经有最根本的数据挖掘项目能力了。

除了scikit-learn外,还有一个深度学习框架也非常好,叫做Keras。
Keras的底层可以用TensorFlow或者Theano,在理解神经网络的情形下,学习Keras只须要花费极短的韶光就可以上手,这里建议大家学习一个免费视频课程:莫烦Python(https://morvanzhou.github.io/tutorials/machine-learning/keras/),这个网站是一个免费的机器学习视频课程网站,站主莫烦大神用最简洁的办法会使你在不到一个小时的韶光内就节制Keras的语法。

以上是所用到的工具,学完《机器学习系统设计》已经有根本的实战能力,但个中的一些流程该书并没有系统地先容,如果想要更加系统的学习,推举大家阅读《数据挖掘导论》,这本书包括分类、关联剖析、聚类和非常检测的项目流程实例,还供应数据集和幻灯片,非常适宜系统的学习。

在以上的事情都做完后,大家可以上Kaggle进行小的比赛,只要足够努力,拿到一些小比赛的Top5%还是有机会的。

写在末了

当你一步步的按照我给你的建议进行学习之后,会创造实在这些理论实在很大略,但实际运用起来绝非易事,这也构成了大多数搞数据挖掘的人能力平庸无奇的事实。
这里,我对大家有几条私人的建议:

机器学习的理论根本一定节制好,这是未来长远事情的筹码。
在学习算法的过程中,永久是对算法的效率进行剖析揣摩在第一位,详细的代码实现在第二位,不要本末倒置。
对算法的学习要节制所谓的\"大众分寸\公众,相对主要的部分多学,不太主流的部分稍稍理解即可。
英语很主要,你会越来加倍觉英语的主要性,请坚持每天学习一点英语。
学习机器学习算法要真正学懂,某些小的地方学不懂便跳过,终极会造成很多漏洞,而这漏洞,补充起来要花费很大的精力。

祝您学习的过程是愉快的,前路虽艰,行则心安。