以模型为驱动,了解“机器学习”的本质
我选择了几种经典模型
(例如:线性回归、逻辑回归、
决策树、支持向量机、条件随机场、
K 均值等),作为入门的进阶。
一定要搞清楚其
问题域、模型函数、目标函数、训练算法……潜入到数学公式推导的层面,
对每一步的公式变换和对应的物理意义有所理解,然后再去实践。
这一个个的模型,就是机器学习的“肌肉”,我们要通过观察学习这一块块肌肉,
以其为载体来了解机器学习的核心——将事物转化为数值,将关系、变换转化为运算,以事实(数据)为依据,以规章(算法)为准绳,通过计算来掌握事物的客观规律(模型)。
要知道,这些经典模型固然经典,但是到了实际应用中,它们并非神圣不可改变。也不是说机器学习就仅限于这些经典模型。
只有掌握了机器学习精髓的人,才可能灵活运用现有模型去解决实际问题,甚至进一步针对具体问题得出自己的模型和算法。
反复学习,从记忆到掌握
当然,达到这种程度并非一蹴而就,总要从最简单的模型开始。
。
多学几遍,从头到尾掌握整件事情的逻辑,知
掌握了事物内在的逻辑,再去记忆,就容易多了。
学习标准设置得不必太高,比如可以这样:
第一遍学,只要求自己能完全掌握机器学习数据、模型、算法相互作用的基本关系,训练过程和评价标准。具体的模型,掌握最简单的线性回归就可以。
只要从头到尾掌握了第一个模型,做到:能够从模型函数开始推导出目标函数,再用梯度下降算法求解,用(伪)代码实现梯度下降求解过程。
第一遍学习掌握一个模型;第二遍学习就不难掌握2-3个模型;第三遍就有可能掌握本课列出的大部分模型………如此由易到难,螺旋式推进。
对于一些本身就比较复杂的数学模型,比如条件随机场、隐马尔科夫这类涉及场论和势函数的模型,如果直接入手,往往会卡在模型函数本身上。但是当有了前面几个模型的基础,了解了更抽象层面的原理,掌握起来就容易多了。
数学需要多精深?
。如果数学工具实在掌握得太少,最起码也要读懂一组公式推导中的第一个和最后一个式子:
读懂它们都针对哪些变量进行了怎么样的运算;
这些变量和运算的物理意义是什么;
第一个式子是对哪种真实场景的数学描述;
最后推导的结果又具备怎样的特征。
enter image description here
两条路径反刍数学知识
所以,同学们应力求理解每一步推导过程。
如果有可能,可以事先复习一下大学本科的高数(数学分析)、概率统计和线性代数。或者,在学习模型的过程中,一旦遇到了数学上的阻碍,就回头去查找相应知识。
很多数学问题,之所以让人头大,其实并不是真的有多难,而是符号系统比较复杂,运算繁复,或者运算所表达的物理意义多样。
很多时候造成困扰是因为想不起来这里用到什么定理,哪个公式,或者这样操作表达的含义是什么。
如果把常用的细小知识点都记录下来,按主题整理成速查手册(小字典),需要用的时候快速查找对应的知识点,这样我们的“机器学习”学习之路就顺畅不少。
下面两个是我自己制作的例子,供大家参考:
机器学习常用微积分知识速查手册
机器学习常用线性代数知识速查手册
日常学习 Tips
记录
准备一个笔记本,纸质版或电子版均可。有什么发现、感想、疑问、经验等等,全都记下来。
如果是对某个话题、题目有比较完整的想法,最好能够及时整理成文,至少记录下要点。
隔一段时间把笔记整理一下,把分散的点滴整理成块,一点点填充自己的“思维地图”。
分享
知识技能这种东西,学了,就得“炫耀”——把学习到的新知识、理论、方法,分享给更多的人。
如此一来,倒逼自己整理体系、记忆要点。这可以说是与人方便自己方便的最佳实例。
把自己的感想、体会、经验分享出来的同时,也锻炼了自己的逻辑思维能力和归纳总结能力。一举多得,何乐而不为?
以上谈到的关联、记录、分享的内容,大家都可以通过社群内的学习笔记来提交。我会挑选优秀的内容进行点评和回复。