课程简介#
本课程由「跟我学机器学习」主理人结合多年学习经验精心打造,提出独创的 “三阶段五步骤” 学习体系,帮助零基础学习者快速建立正确的学习路径与持续的正向反馈。
课程始终会遵循“先学会怎么用,再理解为什么”的学习理念,从实践出发,在真实案例中掌握机器学习的核心思想与常用方法,避免陷入晦涩的数学推导和繁杂的理论细节。 无论你是编程初学者、在校学生,还是希望转型 AI 方向的职场人士,都能循序渐进地迈入机器学习的大门,用更轻松、更高效的方式开启 AI 学习之旅。
方法论#
在学习之前我们先来看一下方法论,这是我自己认为比任何学习材料都重要一百倍的东西。
对于初学者来说,“如何才能入门机器学习”、“入门机器学习从理论开始还是从实践开始?”这都是一些老生常谈的话题。
想想我刚刚开始接触机器学习的时候又何尝不是这样,总觉得自己一直是在门外徘徊,就是不得其中之道。幸运的是经过漫长的时间摸索,也总结出了适合我自己的一条学习路线,接下来就与大家一同分享。
1. 什么是好方法?#
如何学好机器学习我认为最最最重要的并不是急迫的去选择各种学习资料或是视频,而是先从方法论上知道如何有效的入门机器学习。好的方法事半功倍,差的方法事倍功半。当然,本质上来说方法没有好坏之分,只有适合不适合的区别,适合自己的方法才能称之为好方法。因此这也就回答了诸如“李航的统计学习方法,吴恩达的视频,关于机器学习的东西都看不懂是怎么回事?”这类的问题。
任何一本书都不可能做到让所有人都觉得“好”,这个“好”不是评价它的质量好坏与否,而是在于它适不适合自己。适合自己的才算是“好”,不适合的都是“垃圾” 。同时,任何一本书基本也不可能做到每个知识点都讲得很好,对于你来说可能某本书就其中一个算法你认为讲的很好,而且特别适合自己,但是剩下来的自己都看不懂。可能学习10个算法别人一本书就够了,而自己却需要10本书,但哪怕就是这样的状况我认为也是值得的。
所以,看不懂你现在手中的材料没关系,但是一定不要放弃去找一本适合自己的书、自己的视频。诚然,需要明白的是刚开始入门机器学习是有一定的门槛,所以也不要轻易放弃。同时,尤其需要说明的一点就是奖励的反馈机制,选择一种阶梯式的、循序渐进式的学习方法使得自己在学习一个算法中,每过一天半天的时间都能够有收获感、成就感、喜悦感,这样才能有更强的动力继续学下去形成正向反馈的闭环。
2. 怎么进行学习?#
我第一次系统性的学习机器学习时所接触到的资料是吴恩达老师的机器学习视频课程。不得不说吴恩达老师的这门课程内容也确实浅显易懂,并且大部分内容也讲解得十分详细,对于初学者来说上课内容绝对是满满的干货。不过学着学着,我慢慢地发现这门课似乎并不是那么的适合自己。由于当时我也没有找到更好的学习材料,所以也只有硬着头皮接着往下看。直到第二次拿着李航老师的统计机器学习课本继续学习时,才总结出了一套适合我自己的学习路线。总结起来就是一句话:先抓主干,后抓枝节。
千万不要小瞧这八个字,很多朋友不能入门机器学习可能就是因为没人告诉自己这个道理。
学习一个算法就好比遍历一棵大树上的所有枝节,算法越是复杂枝叶也就越茂盛,且通常来说有两种方式来遍历这颗大树:深度优先遍历和主干优先遍历。对于有的人来说可能适合第一种:从底部的根开始,每到一个枝干就深入遍历下去,然后再回到主干继续遍历第二个枝干,直到遍历结束;而对于有的人来说可能更适合第二种:从底部的根开始,沿着主干爬到树顶先对大树的整体结构有个概念,然后再从根部开始像第一种方法一样遍历整棵大树。相比于第一种方法,第二种方法在遍历过程中更不容易“迷路”,因为一开始我们就先对树的整体结构有了一个了解。
因此,对于一个算法的学习,我自己将它归结成了五个层次(三个阶段):
其中阶段一可以看成是先从大树主干爬上树顶一窥大树全貌的过程,因为对于一个算法来说,最基本就是它背后的思想,而这也是一个算法的灵魂所在;阶段二和阶段三就可以看成是遍历完整个大树后的层次,是对细枝末节具体的探索。
那为什么会是上面这个排序呢?可以打乱吗?我的回答是:当然可以,只要是适合自己的方法,那就是好方法。不过我依旧强烈建议按照上述顺序来进行学习。可遗憾的是现在绝大多数人(或资料)的学习顺序都是①②④⑤③或者是①②④③⑤。这两种学习顺序的弊端就在于很多算法在数学推导中是有难度的(例如支持向量机),当克服不了这个难度时很多人就不会接着往下进行了。最后呈现的结果便是,既没有彻底弄清原理,又没有学会如何使用。相反,我一贯主张的是:先学会怎么用,再探究为什么。
在学习过程中最重要的一点是要找到一个正向反馈的闭环,让自己每在一定的时间内都能得到正向激励。三阶段学习法的好处就是难易程度循序递增,在每一个阶段你都能有具体的收获和成就感,让你最后不至于陷于既不知道为什么,还不知道怎么用的境地。
3. 学到什么时候?#
对于一个算法到底应该学到什么样的程度同样也是初学者所面临的一个问题。就像是有人问:对于一篇论文,我到底是应该看懂原理就行,还是要尽可能地去实现?可以想象,如果没有事先将一个算法的学习过程归结为如上三个阶段,那么此时我还真不知道如何告诉你应该学到哪儿。
这里,我的建议是,对于所有的算法阶段一是必须完成的;对于一些基础或相对容易的算法(如线性回归、逻辑回归等)可以要求自己达到上述三个阶段;对于那些难度较大的算法(如SVM、决策树等)可以要求自己做到前两个阶段就行。
同时,需要清楚地认识到的就是,对于任何一个算法的学习只有极少数人能做到学一遍就全懂的境界,因此也不要抱着学一次就结束的想法。例如第一次学达到阶段一、第二次学达到阶段二等等。这样分阶段的学习方式更能够相对容易地使自己获得满足感,以享受学习的乐趣。同时,照着以上步骤学习大约3-4个算法后,便可以算是初窥机器学习的门径了!
4. 总结#
对于整篇内容,我这里用4句话进行总结:
①方法没有好坏之分,只有适合不适合的区别,适合自己的方法才能称之为好方法;
②选择一种阶梯式的、循序渐进式的学习方法,务必使得自己在学习中形成正向反馈的闭环;
③在学习过程中要学会先抓主干,后抓枝节不要本末倒置;
④遵循“先学会怎么用,再探究为什么”的学习原则。
课时安排#
| 周次 | 章节 | 配套代码 |
|---|---|---|
| 第1周 | 第 1 章 环境配置 | |
| 第 2 章 线性回归 | 地址 | |
| 第2周 | 第 3 章 逻辑回归 | 地址 |
| 第 4 章 模型的改善与泛化 | 地址 | |
| 第3周 | 第 5 章 K近邻 | 地址 |
| 第 6 章 文本特征提取与模型复用 | 地址 | |
| 第4周 | 第 7 章 朴素贝叶斯 | 地址 |
| 第5周 | 第 8 章 决策树 | 地址 |
| 第6周 | 第 9 章 集成学习与提升算法 | 地址 |
| 第7~8周 | 第 10 章 支持向量机 | 地址 |
| 第9~11周 | 第 11 章 聚类分析 | 地址 |
| 第12周 | 第 12 章 降维算法 | 地址 |
| 第13周 | 第 13 章 自训练与标签传播算法 | 地址 |