015-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考

7.2 训练和模型

看到这里时候,大家仿佛,好像搞明白一些机器学习的道理了。 但是请大家再次 思考几个问题:

1.) 啥是「模型 model」或者说模型里有什么(what)?
2.) 啥是「训练 training」?
3.) 啥是「训练模型 training model」?
4.) 谁(who)来「训练模型」?

接下来,对上述问题,我们一个一个分析。 在 §2.1 小节中,我们强调过, 模型 是一个函数映射的集合,其中包括了许许多多的函数映射。 基本都是无限多个。无限 多个的函数集合定义是不是特别复杂呢? 不一定是。举个例子,如直线的函数数学定 义为,
y=kx+b y = kx +b
其中,x 是水平坐标, y 是垂直坐标。 k 是斜率,b 是截距。 一旦确定k,b 这两个参数的 取值, 直线就确定下来。 更进一步, k,b 的取值范围是实数域。 它们可以取实数域中 的任何值, 所以,式(6) 就可以表示平面上的任意直线, 所有这些直线构成的集合 就是一个模型。 这个模型可以表示输入数据x 与输出数据 y 的关系。 模型里面其实就 一些函数。不过呢, 这些函数长得样子或是形式都差不多, 只有所谓的系数取值不一 样。

还拿前面房价估算的例子来解释,每一个人就是函数集合的一个元素。 把世界上 70 亿人都放在一个集合里,我们就得到了一个模型。 每个元素看起来都有大学学历, 都有工作经验,差不多。 但细看他们的简历, 每个人或多或少有和其他人有不一样的 细节。 比如说,看学历,同样是大学毕业,有的是 985 学校, 有的是 211 学校,有的 是普通高校,有的民办高校。 看从业经验,有的 1 年,有的 5 年,有的 10 年,等等。 这里我们类比学历、从业经验就是类似于上面直线的系数k,b 。 每当确定了一组k,b 的 取值,直线就确定了。 确定了学历和从业经验,这个人也就确定了。

那训练是什么?在房价的例子里,训练就逐个找人「做卷子,刷题」。通过迭代的方式,淘汰掉那些不合适的人,找到做题错误率最低的那个人。在直线的模型例子里,先是把w,bw, b随便取个值,譬如说 w=1.0,b=3.0w=1.0, b=3.0。然后把输入集合中收集到的xx的具体取值x(1),x(2),x^{(1)}, x^{(2)}, \cdots,代到集合中的这个具体的直线方程里,做个乘法和加法,看看估算值y^\widehat{y}是多少。与真实值yy之间差多少。然后,再通过梯度下降法更新一下 w,bw,b的值,确定了下一条直线。然后,不断重复上面的迭代过程,最后找到那条满意的直线系数,譬如说是w=1.64,b=5.6w=1.64,b=-5.6。从专业术语上讲,w=1.64,b=5.6w=1.64,b=-5.6 所确定的直线可以把损失值(Loss)降到可能的最小。

同理,怎么训练?在房价估算的例子中,就是把专家 A 拉过来做题,一道题一道题做,
做完一套,评估一下,推荐下一个人 B 重新再做卷子,如此反复,直到找到那个合适的人。

那么谁来训练呢?这个问题要多说两句。让人通过软件工具和硬件工具来训练。前两年,人工智能的概念使得大家觉得未来的工作会被机器人,被人工智能算法都替代了,人被逼到了墙角,没了活路。其实大可不必担心。随着人工智能算法的应用增多,训练模型需要大量的人。
就如同,30 年前没有多少人来做程序员。现在程序员满大街都是,并被戏称为「码农」。
再往前数40 年,全国的程序员也没多少,而且,程序员进计算机房是要换鞋,穿白大褂的。
现在想想,当时的情况怎么会这样,匪夷所思。随着时代的进步,会有老的职业消失,
更多的新职业出现,会出现大家从来没有想到过的职业。
015-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考

稍微总结一下, 训练的过程是个迭代的过程, 如图4所示, Features 就是多笔输 入数据, 相当于一张张卷子; Label 就是标准答案; Model 里面都是备选的专家; Compute Loss 就是批改卷子。 Compute parameters updates 就是推荐下一个水平更好一 些的人。 如果还要继续刨根问底,问迭代法背后的思维是什么? 我想,迭代的过程 背后的思维是「试错」(trail-and-error), 是「淘汰」。这个思维是由「进化论」 来的, 是亿万年来的生命体或生物的生和死证明过,管用的方法。 这一点大家要牢 记。 1


  1. 一个小问题,你听说过传呼机, 传呼台,和传呼小姐这个职业吗? 如果你年纪小,可能不知道。 用搜索引擎查一下,这里再推荐一个无广告的中文搜索, https://www.dogedoge.com, 还不错。 如果你对进化论的方面内容感兴趣, 推荐去看一下李善友和王东岳的课或书籍。 ↩︎