“机器学习/深度学习并不需要很多数学基础!”也许你在不同的地方听过不少类似这样的说法。对于鼓励数学基础不好的同学入坑机器学习来说,这句话是挺不错的。不过,机器学习理论是与统计学、概率论、计算机科学、算法等方面交叉的领域,对这些技术有一个全面的数学理解对理解算法的内部工作机制、获取好的结果是有必要的。机器学习确实需要对一些数学领域有深入理解,缺乏必要的数学知识,很可能在更深入的学习中不断遇到挫折,甚至导致放弃。
说的很多小伙伴恐怕心都凉了一半,或者已经开始打退堂鼓了。不要紧,山人自有妙法。下面就给大家分享一下,主要是一些资源(书籍或者视频课程)。人工智能(机器学习或数据挖掘等)中最最重要的数学就是线性代数与概率论(还有其他,但这两者比重最大)。
所以我找了个书单自学,电子书为主,顺便分享出来。使用电子书的形式是因为,个人偏好。即使我买了实体书,一旦找到了电子书,我马上就会把纸质书扔到床底下。如果侵犯了任何人的权益,烦请及时通知。
前言:技术书阅读方法论
一.速读一遍(最好在1~2天内完成)
人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用。
对于每一章的知识,先阅读标题,弄懂大概讲的是什么主题,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。
二.精读一遍(在2周内看完)
有了前面速读的感觉,第二次看会有慢慢深刻了思想和意识的作用,具体为什么不要问我,去问30年后的神经大脑专家,现在人类可能还没有总结出为什么大脑对记忆的完全方法论,但是,就像我们专业程序员,打代码都是先实践,然后就渐渐懂了过程,慢慢懂了原理,所以第二遍读的时候稍微慢下来,2周内搞定。记住一句话:没看完一个章节后,总结一下这个章节讲了啥。很关键。
三.实践(在整个过程中都要)
实践的时候,要注意不用都去实践,最好看着书,敲下代码,把重点的内容敲一遍有个肌肉记忆就很不错了。
以及到自己做过的项目中去把每个有涉及的原理的代码,研究一遍,就可以了
备注:
加:qq 1126137994
或者微信:liu1126137994
可以免费获取电子书籍!
部分书籍截图:
一. 数学基础
1.微积分:《微积分学教程》 (F.M.菲赫金哥尔茨)俄罗斯的数学书
2.线性代数:《Linear Algebra and Its Applications,Third Edition (David C.Lay)》讲得很实际,线性代数最重要的就是与实际应用相联系才能够理解其意义
3.概率与统计:《概率论与数理统计 (陈希孺)》或《概率论与数理统计(盛骤/谢式千/潘承毅)》这两本书都很不错
4.随机过程:《应用随机过程:概率模型导论 (Sheldon M. Ross)》这本书已经出到第10版了
这四门是数学的基础,当然数学本身就是博大精深的。
二. 机器学习与数据挖掘(偏理论)
1.《 统计学习方法 (李航)》
2.《统计学习基础 (Trevor Hastie, Robert Tibshirani, Jerome Friedman)》
3.《Pattern Recognition and Machine Learning (Christopher Bishop)》
4.《Introduction to Machine Learning (Ethem Alpaydin)》(《机器学习导论》)
6.《Data Mining (韩家炜) 》
7.《现代模式识别 (孙即祥) 》
个人觉得《统计学习方法》与《统计学习基础》这两本书是基础,后面的书内容相差不大,所以前两本书应该看,而入门的话,后面的书可以选1到2本精读,剩下的书可作参考。
三. 智能算法(偏应用)
1.《Web智能算法 (Haralambos Marmanis, Dmitry Babenko)》
2.《集体智慧编程 (Toby Segaran)》
3.《推荐系统实践 (项亮)》
4.《数据之魅 (Pbilipp K.Janert)》
这几本书均是从实践的角度讲解了机器学习中常用的算法,非常值得一看。
有人推荐,学习机器学习的话可以先读《统计学习方法》和《统计学习基础》打底,这样就包含了大部分的算法,然后再深入研究某个算法。
四.机器学习入门级:
1.《数学之美》;作者吴军大家都很熟悉。这本书主要的作用是引起了我对机器学习和自然语言处理的兴趣。里面以极为通俗的语言讲述了数学在这两个领域的应用。
2.《Programming Collective Intelligence》(中译本《集体智慧编程》);作者Toby Segaran也是《BeautifulData : The Stories Behind Elegant Data Solutions》(《数据之美:解密优雅数据解决方案背后的故事》)的作者。这本书最大的优势就是里面没有理论推导和复杂的数学公式,是很不错的入门书。目前中文版已经脱销,对于有志于这个领域的人来说,英文的pdf是个不错的选择,因为后面有很多经典书的翻译都较差,只能看英文版,不如从这个入手。还有,这本书适合于快速看完,因为据评论,看完一些经典的带有数学推导的书后会发现这本书什么都没讲,只是举了很多例子而已。
3.《Algorithms of the Intelligent Web》(中译本《智能web算法》);作者Haralambos Marmanis、Dmitry Babenko。这本书中的公式比《集体智慧编程》要略多一点,里面的例子多是互联网上的应用,看名字就知道。不足的地方在于里面的配套代码是BeanShell而不是python或其他。总起来说,这本书还是适合初学者,与上一本一样需要快速读完,如果读完上一本的话,这一本可以不必细看代码,了解算法主要思想就行了。
4.《统计学习方法》;作者李航,是国内机器学习领域的几个大家之一,曾在MSRA任高级研究员,现在华为诺亚方舟实验室。书中写了十个算法,每个算法的介绍都很干脆,直接上公式,是彻头彻尾的“干货书”。每章末尾的参考文献也方便了想深入理解算法的童鞋直接查到经典论文;本书可以与上面两本书互为辅助阅读。
5.《Machine Learning》(《机器学习》);作者TomMitchell[2]是CMU的大师,有机器学习和半监督学习的网络课程视频。这本书是领域内翻译的较好的书籍,讲述的算法也比《统计学习方法》的范围要大很多。据评论这本书主要在于启发,讲述公式为什么成立而不是推导;不足的地方在于出版年限较早,时效性不如PRML。但有些基础的经典还是不会过时的,所以这本书现在几乎是机器学习的必读书目。那么Mitchell的<机器学习>是经典的入门之作。当然,因为年代久远,很多新的模型都没有涉及到,但不影响他的经典性——入门级。
6.《机器学习实战》对于程序员,想快速了解模型流程和优缺点的,甚至是实现模型的,那么是我比较推荐的,现在已经有中文版了<机器学习实战>。这本书,提到了很多常见的模型,开始就是模型背景简介,之后是模型优缺点和应用场景、在接着算法实现和案例。而且,在书的最后,提及了一些比较切合时代的话题——大数据下机器学习。
《机器学习基础》对于想从事机器学习的入门人员,比较推荐一本有中文版的<机器学习基础>(Simon Rogers的,英国格拉斯哥大学计算机科学学院讲师),这本书适合高年级本科生和研究生。从理论的角度,推导了各个算法,以及探究了各个模型的特性等。涉及数学和矩阵的地方,都有详细的参照。适合高端点的入门,看这本书,可以体会一下自己的数学和矩阵,有种必须要加强的感觉。
7.《Mining of Massive Datasets》(《大数据》);作者Anand Rajaraman[3]、Jeffrey David Ullman,Anand是Stanford的PhD。这本书介绍了很多算法,也介绍了这些算法在数据规模比较大的时候的变形。但是限于篇幅,每种算法都没有展开讲的感觉,如果想深入了解需要查其他的资料,不过这样的话对算法进行了解也足够了。还有一点不足的地方就是本书原文和翻译都有许多错误,勘误表比较长,读者要用心了。
8.《Data Mining: Practical Machine Learning Tools and Techniques》(《数据挖掘:实用机器学习技术》);作者Ian H. Witten 、Eibe Frank是weka的作者、新西兰怀卡托大学教授。他们的《ManagingGigabytes》[4]也是信息检索方面的经典书籍。这本书最大的特点是对weka的使用进行了介绍,但是其理论部分太单薄,作为入门书籍还可,但是,经典的入门书籍如《集体智慧编程》、《智能web算法》已经很经典,学习的话不宜读太多的入门书籍,建议只看一些上述两本书没讲到的算法。
五.机器学习深入级:
1.《Pattern Classification》(《模式分类》第二版);作者Richard O. Duda[5]、Peter E. Hart、David。模式识别的奠基之作,但对最近呈主导地位的较好的方法SVM、Boosting方法没有介绍,被评“挂一漏万之嫌”。
2.《The Elements of Statistical Learning : Data Mining, Inference, andPrediction》,(《统计学习基础:数据挖掘、推理与预测》第二版);作者RobertTibshirani、Trevor Hastie、Jerome Friedman。“这本书的作者是Boosting方法最活跃的几个研究人员,发明的Gradient Boosting提出了理解Boosting方法的新角度,极大扩展了Boosting方法的应用范围。这本书对当前最为流行的方法有比较全面深入的介绍,对工程人员参考价值也许要更大一点。另一方面,它不仅总结了已经成熟了的一些技术,而且对尚在发展中的一些议题也有简明扼要的论述。让读者充分体会到机器学习是一个仍然非常活跃的研究领域,应该会让学术研究人员也有常读常新的感受。”[7]
3. 机器学习与数据挖掘(偏理论)
总结:
天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。