机器学习入门资料

作为一个刚入门机器学习没多久的萌新,在学习机器学习的过程中也走过了了不少弯路,在此将学习中比较有价值的资料进行归类,并分享一些感悟和想法。
经过这一段时间的学习,我认为最快入门机器学习的方法是边实践边理论,首先对理论知识有个大致的理解,不需要太深(公式推导),仅仅只是知道各种原理性知识,每一个算法都有一个感官性认识就好了。然后就开始实践,Python是机器学习学习最受欢迎的语言之一,目前Python也非常热门,包含很多方便的第三方包,十分适合机器学习研究。而且Python中包含很多数据处理包比如numpy、pandas和很多机器学习大杀器如sklearn、keras、tensorflow等等。因此Python是十分推荐学习的。其中sklearn将常用的机器学习算法如逻辑回归、随机森林、SVM等进行了封装,需要时直接调用,十分方便。Tensorflow是谷歌开发的深度学习框架,主要用来搭建深度学习模型,Keras也是一个很方便的深度学习模型,同样是用来进行搭建神经网络模型的。
1、Python入门
一般进行一门新语言的学习通常有三种方法,看书、看视频、看博客。我觉得最好的方法是先看视频,对语言有一个通俗的了解,毕竟新人对很多基础性的知识并不了解,书上、博客上有时会一笔带过,遇到问题很头疼。因此看视频可以有一个通俗的理解。然后再看书,增强功力,打好基础,再看博客,文章,学习一下他人的好方法。
推荐的Python入门视频如下:
(1)https://www.bilibili.com/video/av4050443/?from=search&seid=5249529177894633417
(2)https://www.bilibili.com/video/av12520335/?from=search&seid=14420726748553167887
其中第一个Python视频教程讲的十分风趣,是我喜欢风格,就很快的看完了,或者自己找一个喜欢的学习方式进行学习亦可
此外,还有一个Python入门博客教程讲的非常好,廖雪峰的Python入门教程,讲的也非常细致,适合初学者
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
2、机器学习、数据分析入门
这一部分主要包括理论和实践(代码)的学习。
理论:
在理论方面,主要还是看书和经典课程较好,这里推荐的书籍包括李航的《统计学习方法》,周志华的《机器学习》。
推荐的视频最主要的还是吴恩达的机器学习公开课,这个是经典中的经典
https://www.bilibili.com/video/av9912938/?from=search&seid=6467194917310098505
以上这一个视频教程主要是机器学习常规算法的学习和一些机器学习相关知识的了解,讲的十分通俗易懂,很好的教程。
此外,吴恩达最近还出了一个深度学习上的教程,后续再说
此外还有一些数据分析的教程如下:
https://www.bilibili.com/video/av11532309/?from=search&seid=2562707226337612951
这个是南京大学的一个教程讲的数据处理的教程,视频很短,看起来很有趣。
在初期,只需要对各种理论算法有大致的了解即可,但是相关的知识点还是都要知道的,这里这样说并不是说原理不重要,只是为了避免在早期过早的陷入公式推导之中,打击学习的积极性,在了解一部分的理论之后就开始代码实践,然后一段时间后再回过头详细学习算法理论,这样理解起来更深一点。
实践(代码):
进行机器学习时,写代码是必不可少的,由于sklearn对常见的机器学习算法进行了封装,通常我们对其进行调用即可,sklearn官网如下:http://scikit-learn.org/stable/ 。一般刚开始学习时,我们可以 看一下官网的tutorial,http://scikit-learn.org/stable/tutorial/index.html 。不需要看完,看一下每一部分都是干什么的,有一些大致的了解,看一下example代码,如http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html#training-a-classifier。把每一部分的代码都在自己电脑上敲一遍。
或者网上搜几个相关example的blog,再自己重现一下。
sklearn中包含很多有用的方法,在日后的学习中可以慢慢学习,刚开始的时候学会将自己处理后的出局放入分类器中能够运行出结果就OK了,后续会有很多的简易方法来简化操作。
Sklearn的视频教程如下:
https://www.bilibili.com/video/av10182847/?from=search&seid=5867235532618153921
教学视频的来源有很多,现在十分火的在线课程MOOC如Coursera、Udacity、网易云课堂上面都有很多很好的资源。此外youtube、bilibili上也有很多人上传教学视频(误)。
【机器学习入门资料】3、深度学习入门
深度学习部分同样包括理论和实践部分的学习
理论:
目前深度学习比较好的课程依然是推荐吴恩达的视频
https://www.deeplearning.ai/ 这个网站是吴恩达的网站,里面有深度学习的课程。如果英语过关的话看这个最好了。如果想看翻译版的话,可以看这个 https://mooc.study.163.com/smartSpec/detail/1001319001.htm 。如果英语不好想要学习英语的话可以看这个(滑稽)https://github.com/byoungd/english-level-up-tips-for-Chinese
此外,深度学习的三巨头之一的hinton也开了深度学习课程
https://www.bilibili.com/video/av9838961/?from=search&seid=15171587431216358571
还有台湾大学的深度学习课程:
http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
通过对这个视频进行学习,就可以对常规的深度学习方法和流程有了一定的了解,不过深度学习的征途是星辰大海,后续还有很多深度学习的研究需要深入学习。
如下是一些深度学习资料的推荐,主要是关于CNN、RNN、LSTM的
http://note.youdao.com/share/?id=0b9d775384c7dde8b3d240f09f86e357&type=note#/
通过对以上知识的学习就可以对深度学习的理论有了一定的理解,然后就需要动手实践了(理论、实践并行)
实践:
目前使用深度学习主要是使用深度学习框架进行搭建的,毕竟手写各个算法不太现实,目前主流的深度学习框架包括Tensorflow,Keras,Mxnet,Pytorch等。这里比较喜欢keras,用起来比较轻量级,网络搭建很方便。
Keras的官网如下: https://keras.io/ ,中文版keras官网如下:http://keras-cn.readthedocs.io/en/latest/
学习深度学习keras 的最好方法就是看官网tutorial和看官网提供的example进行学习。example如下: https://github.com/fchollet/keras/tree/master/examples 通过看代码是最快的学习方式,不要去买什么书,目前讲keras的书都很坑,上次好不容易看到一本讲keras的书,居然直接是拿中文版的keras官网进行抄袭的,醉醉的。
Tensorflow的书籍和教程还可以
通过对以上深度学习理论和实践和学习就可以对深度学习相关的知识有了一定的了解。
4、论文
对于计算机专业而言,最好的论文不是SCI期刊,而是CCF顶会。目前,机器学习,自然语言处理上最好的一批论文包括 ACL、EMNLP、Coiling、KDD等。可以上这些会议的官网上下载最新的论文。
其中,ACL下载论文的地址如下:http://www.aclweb.org/anthology/P/P15/
其他的自己找吧。找论文通常可以上谷歌学术上进行关键字检索 https://scholar.google.com/schhp?hl=zh-CN
5、开始愉快的学习吧~

    推荐阅读