2.1.为什么要学原理和公式推导
2.1.1.功利层面
- 面试会考:但凡稍微靠谱点的企业,在面试“机器学习工程师”时,一定会问到模型原理和推导过程!所问到的模型,随着时间推移会越来越复杂。
- 老板会问:很多时候,在决定使用哪个工具、框架,调用哪个模型算法后,你还需要向老板、合作方甚至客户解释其中的缘由。
-
同事质疑:相对于老板对性价比的关注,同事可能更关心技术细节。到了这个层面,只简单概括说说原理已经不够了,需要深入细节做对比:
- 不同模型的特质、适用场景,对当前数据的匹配程度;
- 不同算法对算力和时间的消耗;
- 不同框架对软硬件的需求和并行化的力度;
2.1.2.实用层面
作为一个机器学习工程师,把活干好的基本准则是:针对技术需求,提供高质量模型。再高一个层次则是:针对业务需求,提供高质量的解决方案。
-
优化模型:
机器学习工程师又被戏称为调参工程师。其所要做的工作就是在限定的数据上、规定时间内,为具体技术需求(比如训练一个分类器)提供性能尽量高、消耗资源尽量少的模型。
选特征、调超参、换模型,称为调参工程师的三板斧,要想有章法地使用它们,理论基础还是必不可少的。
模型的理论基础则成了工作步骤的指导:1. 评判模型性能的指标有哪些,如何计算? 2. 正在使用的模型是怎么工作的? 3. 这些超参数是什么含义,调整它们会产生哪些影响? 4. 特征选取有哪些原则、方法可运用?
-
针对实际问题定向建模
成为一名合格的调参工程师,固然可以在AI领域占据一席之地,但对于业务和团队而言,仍然是个可有可无的角色。 -
真正创造价值的,从来都是解决实际问题的人。
这些经典的模型、算法,是前人在解决实际问题中所研究出来的、具备通行性的解决方案。它们被广泛应用,是因为所解决的目标问题总会持续出现。
然而,新问题也会随着新需求不断涌现,现有成果可能无法解决这些新问题,调参工程师这是将束手无策。
但对于理论知识扎实的机器学习工程师来说,他们完全有可能针对具体业务问题,构造出目标函数,甚至开发出符合自身软硬件资源特点的求解算法。
2.2.学习机器学习原理,改变看待世界的方式
学习模型运作原理,可以了解现实事物如何转化为数字并被计算,结果又如何映射回现实世界来影响我们的生活。
2.2.1.破除迷信
人工智能是一个学术研究领域,目前在工业界有一定的应用和探索。AI归根到底是个技术问题,可学、可用、可研究亦可质疑,而不是只能顶礼膜拜的法术神功。
除了判断事,判断人可能更重要一些。
了解一件事的原理,自己有个基本的是非标准,再去看别人对它的评论,就不难看出评论者的“斤两”。
2.2.2.追本溯源
所有的发展都不是凭空出现的,新方法、技术均在原有基础上创新得来。每一个具体的进步,都仅仅是向前的一小步而已。
了解一件事是如何运行的,明晰事物发展的客观规律,知道从最简单的原理学着手逐层推进,比从一个已经很复杂的状态入手,一下子纠缠在各种不得要领的细节中要高效得多。
2.2.3.精进看待世界的方法
相较于仍然处于经验(“炼丹”)阶段的深度学习,传统的统计学习模型和方法已经具备了相对完善的理论基础。
一方面深度学习与机器学习具有传承的关系,学习后者对于直观理解前者有极大帮助。
另一方面,统计学习方法建立在将概念“数字化”(向量化)的基础上,以数学公式和计算来表达概念之间的关联及转换关系。机器学习是一种认识世界的工具,借助它,我们可以从一个新的角度来看待世间万物。
换句话说,当我们知道机器是怎样通过学习事物特征的概率分布和转换来掌握事物规律的时候,我们就有可能反过来审视自己看待世界的方法,发现其中不合理的部分,并主动优化自己的思维模型。
2.3.如何学习“机器学习”
2.3.1.以模型为驱动,了解“机器学习”的本质
选择几种经典模型(例如:线性回归,逻辑回归,决策树,支持向量机,条件随机场,K均值等)作为入门的进阶。
一定要搞清楚其问题域,模型函数,目标函数,训练算法......潜入到数学公式推导的层面,对每一步的公式变换和对应的物理意义有所理解,然后再去实践。
我们要将事物转化为数值,将关系,变换转换为运算,以事实(数据)为依据,以规章(算法)为准绳,通过计算来掌握事物的客观规律(模型)。
2.3.2.反复学习,从记忆到掌握
第一遍学习掌握一个模型;第二遍学习就不难掌握2-3个模型;第三遍就有可能掌握本课列出的大部分模型......如此由易到难,螺旋式推进。
2.3.3.数学需要多精深
学习经典模型并不需要多么精深的数学功底,只要掌握大学理工科本科所教授的数学知识就基本够用了。
- 最初阶段
- 学过坐标系;
- 了解函数,向量和矩阵的概念;
- 能从直观角度对求导,求微与函数的关系有所理解;
- 掌握最简单的矩阵运算。
想要进阶可以事先复习一下大学本科的高数(数学分析),概率统计和线性代数。
网友评论