解构机器学习:如何从零开始设计一个学习系统?
机器学习(Machine Learning)无疑是当今科技领域最热门的词汇之一。但抛开复杂的算法和模型,一个机器学习系统是如何被设计出来的?它并非简单地选择一个现成的算法,而是涉及一系列严谨的设计决策。本文将以一个经典的例子——“教计算机下国际跳棋”——来逐步拆解通用机器学习系统的设计过程,带你领略其背后的核心思想。
一、通用机器学习系统设计的五大核心问题
设计一个学习系统,本质上是回答一系列环环相扣的问题。我们可以通过一个具体的任务来理解这些问题:让计算机学会下国际跳棋。
一个典型的国际跳棋棋局
1. 有什么经验?——训练数据的来源与偏差
设计机器学习系统的第一步,是明确用什么经验来训练模型。这里的 “经验” 通常指训练数据,但数据的质量和代表性直接决定了系统的上限。
以国际跳棋系统为例,我们可以选择两种训练数据:
- 自我对抗数据:让系统自己和自己下棋,记录千万局对战过程;
- 大师对局数据:收集人类顶级棋手的经典对局记录。
这两种数据各有优劣:自我对抗数据量大易获取,但可能陷入 “自嗨” 模式,学