机器学习(Machine Learning,ML)
机器学习(Machine Learning,ML)就是让计算机从数据中进行自动学习,得到某种知识(或规律)
作为一门学科,机器学习通常指一类问题以及解决这类问题的方法,即如何从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对未知或无法观测的数据进行预测
基本概念
一个物体会具有特定的 特征(Feature)
,例如某种水果的颜色、大小、形状、味道等;以及需要预测的 标签(Label)
,标签可以是连续值(如这个水果的甜度,成熟度等的综合打分),也可以是离散值(如“好”与“坏”两类标签)
一个标记好 特征
和 标签
的水果看做一个 样本(Sample)
,也经常成为 示例(Instance)
一组 样本
构成的集合成为 数据集(Data Set)
,数据集一般被分为两部分:
训练集(Training Set)
用来训练模型的,也叫 `训练样本(Training Sample)测试集(Test Set)
用来检验模型好坏,也叫 `测试样本(Test Sample)
通常用一个 $D$ 维向量 $x=[x_1, x_2,...,x_D]^\mathrm{T}$ 表示一个水果的特征构成的向量,称为 特征向量(Feature Vector)
,其中每一维表示一个特征,而水果的标签通常用标量 $y$ 来表示
假设训练集 $\mathcal{D}$ 由 $N$ 个样本组成,其中每个样本都是 独立同分部的(Identically and Independently Distributed,IID)
,即独立地从相同的数据分布中抽取的,记为
$$ \mathcal{D} = \lbrace(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(N)},y^{(N)}) \rbrace \tag{1} $$
给定了训练集 $\mathcal{D}$ ,我们希望计算机从一个函数集合 $\mathcal{F} = \lbrace{f_1(x),f_2(x),...} \rbrace$ 中自动寻找一个 “最优” 的 函数
$f^(x)$ 来近似每个样本的特征向量 $x$ 和标签 $y$ 之间的真实映射关系,对于一个样本 $x$ ,我们可以通过函数 $f^(x)$ 来预测其标签的值
$$ \hat{y} = f^*(x) \tag{2} $$
或标签的条件概率
$$ \hat{p}(y|x) = f^{*}_y(x) \tag{3} $$
如何寻找这个 “最优” 的函数 $f^*(x)$ 时机器学习的关键,一般需要通过 学习算法(Learning Algorithm)
$\mathcal{A}$ 来完成,这个寻找过程称为 学习(Learning)
或 训练(Training)
过程
这样,下次选择水果的时候,可以根据水果的特征,使用学习到的函数 $f^*(x)$ 来预测水果的好坏
还是独立同分布的抽取一组水果作为测试集 $\mathcal{D}^{'}$ ,并在测试集中所有的水果上进行测试,计算预测结果的准确率
$$ Acc(f^(x)) = \frac{1}{|\mathcal{D}^{'}|} \sum_{(x,y) \in \mathcal{D}^{'}}I(f^(x) = y) \tag{4} $$
其中 $I(...)$ 为指示函数, $|\mathcal{D}^{'}|$ 为测试集大小
$I(x)$ 为指示函数,当 $x$ 为真时 $I(x) = 1$ ,否则 $I(x) = 0$
- 机器学习的基本流程
对于一个预测任务,输入特征向量为 $x$ ,输出标签为 $y$ ,我们选择一个函数集合 $\mathcal{F}$ ,通过学习算法 $\mathcal{A}$ 和一组训练样本 $\mathcal{D}$ ,从 $\mathcal{F}$ 中学习到函数 $f^(x)$ ,这样对新的输入 $x$ ,就可以用函数 $f^(x)$ 进行预测
参考
- 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.