有很多小伙伴想自学机器学习,但是无从下手,特意找来知乎高赞回答,感觉看了以下回答,会有所受益。
入门
首先,你要知道什么是机器学习。
这里我推荐Andrew Ng的机器学习教程,比较适合新手和来自工业界对数学要求不是很高的同学。
这门课适合刚上大学的萌新们。
https://www.bilibili.com/video/av50747658
它有19个小时,我看完它用了将近两个月,我建议你也不要看的太急。
当看完这些教程之后,你就对机器学习有了清晰的认知。
接下来,你可以感性的认识一下深度学习,我同样推荐Andrew的课。
https://www.bilibili.com/video/av49445369
这门课同样不难,不需要高深的数学知识,同样是为新手们准备的。
深度学习的内容稍多,Andrew带你粗略的了解了AI的一些方面,一共25个小时,我看完它花了三个月。
在期间我去实践了他提到的各种优化方法和技巧,阅读了CV和NLP领域他提到的论文,并且找到轮子跑了跑。
我认为,深度学习的学习更重要的是实践。
进阶
接下来,你可以尝试读一些有公式推导的专业书籍了。
前提是你已经了解了线性代数,微积分和概率论的知识,当然,作为计算机系的同学,你一定掌握了离散数学。
我推荐《统计学习方法》,它适合接受能力正常的同学。
https://book.douban.com/subject/10590856/
因为我是接触机器学习很久后才接触到这本书的,因此我读的很快,没有印象到底读了多久。总之这本书比较平易近人。
如果你觉得你的理解能力一流,我推荐《机器学习》。
https://book.douban.com/subject/26708119/
这本书的覆盖范围非常广,适合打算进一步深入这个领域的同学。
这本书是我机器学习的入门书籍,又爱又恨。
看这本书的同时你可能会感到数学基础不够,十分欢迎你补课凸优化。
我推荐Boyd的covex optimization,Boyd书写的不错,但是感觉课讲的不太好,同时推荐凌青老师的公开课。
https://book.douban.com/subject/21249088/
https://www.bilibili.com/video/av40868517
如果你的数学基础比较好,又不太喜欢读书,我强烈推荐你直接看李宏毅老师的公开课。
李宏毅老师非常幽默风趣,上他的课是十分快乐的事情。
https://www.bilibili.com/video/av10590361
https://www.bilibili.com/video/av9770302
如果想进一步了解机器学习的最新进展,可以看https://www.bilibili.com/video/av46971639
我真得真得非常喜欢他讲的课,同时我认为你看完这些课之后会对机器学习(主要是深度学习部分,对,他几乎不怎么讲统计学习)有更深的认识。
这三个视频分别是31,40,11个小时,我看完花了相当长的时间,如果你已经有一些接触但是担心他哪里讲的太好没听到可惜,那么可以先浏览他的slides,slides做的也非常棒!
前面的课程和教材都集中在监督学习和无监督学习,别忘了强化学习也是机器学习非常重要的一部分,强化学习推荐大家都熟知的Reinforcement Learning: An introduction.
因为这本书开源了,我直接给你pdf:https://urlify.cn/JZFBJv
这本书是强化学习领域非常非常经典的教材,但是这本书写的太磨叽了!
不过我也没有其他备选项,如果有读过其他强化学习教材,感觉不错的,欢迎补充。
深入
接下来该深入了解机器学习了,到了这个阶段,你也不是大家口中的小白了。
统计学习方面,我推荐Pattern Recognition and Machine Learning
https://book.douban.com/subject/2061116/
这本书详细的介绍了频率派和贝叶斯派的思想,读这本书的时候你会有一种恍然大悟的感觉。
注意网上的版本可能会有错误,参考这本书的勘误。https://urlify.cn/ER7zie
同时,深度学习方面推荐非常经典的花书,它也被称为深度学习的圣经。
https://book.douban.com/subject/26883982/
概率图模型推荐这本Probabilistic Graphical Models
https://book.douban.com/subject/4007200/
它和前面那本Reinforcement Learning: An introduction一样,非常全面,但缺点是太啰嗦了,英文版1200+页,我没读完。
然后,下面是一些在我书单里,但是我还没有开始读的书,大家可以了解一下。
https://book.douban.com/subject/3294335/
https://book.douban.com/subject/1789534/
https://book.douban.com/subject/10758624/
可以看到,这些书的侧重点都不同,这也是为什么我打算都读一遍它们。
当你进入「深入」这个阶段的时候,其实你完全可以开始自己读论文了。
当然,如何找到合适的论文,这类问题在知乎已经有非常详细的回答了。同时,知乎也是一个学习机器学习的好地方,这里有很多知识渊博的答主,他们在我刚入门的时候给了我非常大的帮助。
二
作者:hy5468
https://www.zhihu.com/question/332726203/answer/734365629
入门不难,深入难
1.了解什么是机器学习。推荐吴恩达(Andrew Ng)机器学习课程(非深度学习课程),看下来最适合初学者的还是吴恩达的视频,讲的内容精要但是有来龙去脉,必要的数学原理会解释到能让人看懂的程度,当然更深入的理解就要学习相应的数学基础。
2.数学基础。有些人觉得现在搞深度学习不需要啥数学基础,但那样只会沦为低级的调包侠,不能成长为一名合格的炼丹术士。机器学习(包括深度学习)需要的数学基础包括:微积分(熟练掌握),凸优化(熟练掌握),矩阵论(熟练掌握其中矩阵运算,各种分解等,并理解其含义),泛函分析(理解,如果不做相关内容,看着不眼生即可),高等概率论(理解,常用概率公式和概率定理)。数学不要光看,要联系机器学习当中的实际应用一起理解。
3.编程基础。常用的有python,MATLAB,C/C++等,理论上C/C++学好了,其他语言掌握特性和扩展包即可。
4.如何深入。找个靠谱的老师!找个靠谱的老师!找个靠谱的老师!翻到你们学院老师主页,如有文章发表在NIPS,ACL,CVPR,ICLR,ICML等会议上,说明学术水平非常不错。然后打听其人品,人品可以,就联系跟着做。靠谱的老师会直接带你走入到一个细分领域的最前沿,节省大量的搜索时间。
三
作者:Kel Liu
https://www.zhihu.com/question/332726203/answer/756804600
如果只是想学到会用各种模型解决问题的话现在的理论储备已经够了。
推荐个我们学校的课程:https://urlify.cn/JJVv6v
在syllabus那一栏下面有所有的课件。我觉得Kilian是个很好的教授,讲得非常清楚。(虽然我不怎么去上课。。)他的课件也是循序渐进挺有条理的。我感觉机器学习的传统方法其实都是统计的各种运用。。所以如果题主统计学得好的话其实看起来应该没有什么问题。在知道各种传统模型背后的原理之后其实就可以去调参娱乐了。推荐再学个python,现在感觉python已经占领了机器学习领域。。
如果题主追求分析模型的能力,比如说分析一个SVM的最大error margin是多少这种东西,就属于master level的课程了。类似于machine learning theory这种课。我能力有限无法做出评价。
课程后半段会讨论深度学习的概念,这个学起来的感觉和传统模型差别很大,挺魔性的。我觉得作为本科生题主只要能在不同场景下知道运用什么魔性,大概怎么调参,就可以了。如果以后还对这个领域感兴趣的话可以读研读博深造。如果你想要练手的项目之类的我也可以试着去翻翻以前的作业。
四
作者:匿名用户
https://www.zhihu.com/question/332726203/answer/110691656
首先,不会很困难,学过高数线代概率论就行。
其次,对于怎么学的问题,私以为,选择太多往往会每个就看一点最后什么都没学到。建议按如下顺序学习:
1.coursera上吴恩达机器学习--推导少,简单易懂,适合入门;
2. 有了大致印象之后,可以看一些更深的课程。比如李宏毅和林轩田,B站上有;
3. 强烈推荐看B站大神shuhuai008机器学习白板推导系列,看完之后机器学习数学基础应该很不错了。
以上都完了之后,如果你还是一个本科生,建议找导师进实验室/联系实习。
五
作者:凌军
https://www.zhihu.com/question/332726203/answer/760396018
在读小硕士一枚,大四考研期间抽时间学了python和机器学习,不请自来分享一下学习经历。
准备
学机器学习首先要入门一点基础概念,比如机器学习是什么,包括哪些研究问题,研究方法等等。比较知名的教材像《模式识别与机器学习》这本书,还有国内很火的西瓜书《机器学习》(周志华著)把几十年来的东西都总结了下来,看看目录就能对这些问题有个肤浅的了解。
循序渐进
大概了解之后就得选择学习资料,教科书自然就不用说了,肯定是必看的。想学得循序渐进一点的话,可以在慕课上参加国内大学开设的机器学习课程或者在coursera上选一门课程,每天跟着课程学习,完成作业。
这当然还不够,如果只听课,听完了不会有很深的印象,对应机器学习中的学习型算法,像线性回归,逻辑回归,决策树,随机森林,支持向量机等的数学推导应该能做出来才能证明你懂基本原理了,更深刻的知识比如这些方法适用的问题,优缺点等应该很熟悉才对。
练手
理论搞懂了就可以实战了,可以试着拿一些小数据集来训练,手写优化算法,作为检查对比,可以用机器学习包sklearn做一个对比结果,了解一下自己算法新能的差异。
代码都搞通了就可以参加上kaggle做更大规模贴近真实场景的数据了。。
六
作者:菜狗
https://www.zhihu.com/question/332726203/answer/737205846
我个人觉得,先挑一个不错的教程,比如吴恩达的课程来看,不要着急好好理解体会内容,不懂的地方就多看看别的资料、书籍之类的。
同时好好学习自己的专业课,比如数学能力、编程能力都很重要。学这东西也不要着急,踏踏实实的学,等入门了在开始看点的稍微难点的,比如吴恩达cs229或者李航的统计学习方法。
最好跟着导师做下项目,这个很重要,同时有时间的话在参加下相关的比赛,对个人能力都是个提升,如果静下心来搞科研的话,还是要多看看state of art的论文,跟着前沿走。
全部0条评论
快来发表一下你的评论吧 !