Skip to main content

机器学习(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)$ 进行预测

参考