跳到主要内容

机器学习(Machine Learning,ML)

机器学习(Machine Learning,ML)就是让计算机从数据中进行自动学习,得到某种知识(或规律)

作为一门学科,机器学习通常指一类问题以及解决这类问题的方法,即如何从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对未知或无法观测的数据进行预测

基本概念

一个物体会具有特定的 特征(Feature) ,例如某种水果的颜色、大小、形状、味道等;以及需要预测的 标签(Label) ,标签可以是连续值(如这个水果的甜度,成熟度等的综合打分),也可以是离散值(如“好”与“坏”两类标签)

一个标记好 特征标签 的水果看做一个 样本(Sample) ,也经常成为 示例(Instance)

一组 样本 构成的集合成为 数据集(Data Set) ,数据集一般被分为两部分:

  • 训练集(Training Set) 用来训练模型的,也叫 `训练样本(Training Sample)
  • 测试集(Test Set) 用来检验模型好坏,也叫 `测试样本(Test Sample)

通常用一个 DD 维向量 x=[x1,x2,...,xD]Tx=[x_1, x_2,...,x_D]^\mathrm{T} 表示一个水果的特征构成的向量,称为 特征向量(Feature Vector) ,其中每一维表示一个特征,而水果的标签通常用标量 yy 来表示

假设训练集 D\mathcal{D}NN 个样本组成,其中每个样本都是 独立同分部的(Identically and Independently Distributed,IID) ,即独立地从相同的数据分布中抽取的,记为

D={(x(1),y(1)),(x(2),y(2)),...,(x(N),y(N))}(1)\mathcal{D} = \lbrace(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(N)},y^{(N)}) \rbrace \tag{1}

给定了训练集 D\mathcal{D} ,我们希望计算机从一个函数集合 F={f1(x),f2(x),...}\mathcal{F} = \lbrace{f_1(x),f_2(x),...} \rbrace 中自动寻找一个 “最优” 的 函数 f(x)f^*(x) 来近似每个样本的特征向量 xx 和标签 yy 之间的真实映射关系,对于一个样本 xx ,我们可以通过函数 f(x)f^*(x) 来预测其标签的值

y^=f(x)(2)\hat{y} = f^*(x) \tag{2}

或标签的条件概率

p^(yx)=fy(x)(3)\hat{p}(y|x) = f^{*}_y(x) \tag{3}

如何寻找这个 “最优” 的函数 f(x)f^*(x) 时机器学习的关键,一般需要通过 学习算法(Learning Algorithm) A\mathcal{A} 来完成,这个寻找过程称为 学习(Learning)训练(Training) 过程

这样,下次选择水果的时候,可以根据水果的特征,使用学习到的函数 f(x)f^*(x) 来预测水果的好坏

还是独立同分布的抽取一组水果作为测试集 D\mathcal{D}^{'} ,并在测试集中所有的水果上进行测试,计算预测结果的准确率

Acc(f(x))=1D(x,y)DI(f(x)=y)(4)Acc(f^*(x)) = \frac{1}{|\mathcal{D}^{'}|} \sum_{(x,y) \in \mathcal{D}^{'}}I(f^*(x) = y) \tag{4}

其中 I(...)I(...) 为指示函数, D|\mathcal{D}^{'}| 为测试集大小

💡

I(x)I(x) 为指示函数,当 xx 为真时 I(x)=1I(x) = 1 ,否则 I(x)=0I(x) = 0


  • 机器学习的基本流程

对于一个预测任务,输入特征向量为 xx ,输出标签为 yy ,我们选择一个函数集合 F\mathcal{F} ,通过学习算法 A\mathcal{A} 和一组训练样本 D\mathcal{D} ,从 F\mathcal{F} 中学习到函数 f(x)f^*(x) ,这样对新的输入 xx ,就可以用函数 f(x)f^*(x) 进行预测

参考