Posts /

数学与机器学习基础

Twitter Facebook
05 Dec 2016

Alan Turing 在 1950 年提出了著名的图灵测试:“在一个人不接触对方的情况下,通过一种特殊的方式,和对方进行一系列的问答。如果在相当长的时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的。”

计算机需要具备 理解语言、学习、记忆、推理、决策 **等能力,这就延伸出很多学科:机器感知(计算机视觉、自然语言处理),学习(模式识别、机器学习、增强学习),记忆(知识表示),决策(规划、数据挖掘)等,所有这些学科都可以看做人工智能** 的研究范畴。

对于人工智能来说,机器学习从一开始就是一个重要的研究方向,并涉及 概率论、统计学、逼近论、凸分析、计算复杂性理论 等多门学科。

人工深度经网络 是众多机器学习算法中比较 接近生物神经网络特性 的数学模型。

Rosenblatt [1958] 提出 Perceptron,但它不能解决 XOR 等线性不可分的问题。

1980 年以后,Geoffrey Hinton、Yann LeCun 将 Backpropagation 引入 多层感知机 【1986】

2000 以后,随着 SVM 的兴起, ANN 又一次陷入低潮。

2006 年, Hinton 和 Salakhutdinov 发现可以先通过 逐层预训练,在使用 BP 进行精调的方式进行调整。

2012 年 AlexNet 使得 CNN 广受关注,从此深度学习迎来爆发。

一、数学基础

1.1 向量

如果不做特殊说明,一个 N 维向量一般表示 列向量

在线性代数中, 范数 Norm 是一个表示长度概念的函数,为向量空间内所有向量赋予非零的正长度或大小。常见的范数有 L1 范数和 L2 范数。

1.2 矩阵

一个 N 维向量可以看做是一个 n x 1 的矩阵。

对角矩阵是除主对角线之外,元素皆为 0 的矩阵,对角线上的元素可以为 0 或其他值,记作 diag(a), 其中 a 是一个 n 维向量, A_ii = a_i。

diag(a) 和一个 n 维向量 b 的乘积表示一个 n 维向量。

单位矩阵是主对角线元素皆为 1 的对角矩阵。记为 I_n

1.2.1 矩阵的范数

矩阵的范数有很多种形式,这里定义其 p-范数 为:

1.3 导数

1.3.1 常见的向量导数

1.3.2 导数运算法则

1.4 常用函数

1.4.1 logistic

1.4.2 softmax 函数

Softmax 函数是将多个标量映射为同一个概率分布的函数。

二、机器学习概述

机器学习是能对通过经验自动改进机器算法的研究。

机器学习主要是研究如何使计算机从给定的数据中学习规律,即从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对未知数或无法观测的数据进行预测。目前,主流的机器学习算法是基于统计的方法,也叫作统计机器学习。

2.1 过拟合

定义:给定一个假设空间 H,一个假设 h1 属于 H,如果存在其他假设 hx 属于 H,使得在训练样例上的 h1 的损失比 hx 小,但在整个实例分布上 hx 比 h 的损失小,那么就说假设 h1 过度拟合训练数据。

和过拟合相对应的一个概念是泛化错误。

为解决过拟合问题,一般在经验风险最小化的原则上加上参数的正则化,也叫结构风险最小化原则:

加上结构风险:

正则化项也可以使用其它函数,比如 L1 范数。L1 范数的引入通常会使得参数有一定稀疏性,因此在很多算法中也经常使用。在 Bayes估计 的角度来讲,正则化是假设了参数 的先验分布,不完全依赖训练数据。

2.2 损失函数

2.3 机器学习算法

2.3.1 有监督学习

2.3.2 无监督学习

2.3.3 增强学习

增强学习也叫强化学习,强调如何 基于环境作出一系列动作,以取得最大化的累计收益。每做出一个动作,并不一定立刻得到收益。增强学习和有监督学习的不同在于增强学习不需要显式地 以输入-输出对的方式给出训练样本,是一种 在线学习 机制。

2.3.4 机器学习相关概念

2.3.5 梯度下降法 Gradient Descent(参数学习算法)

通过 一个学习算法进行自动学习参数的过程也叫作 训练 过程。

不同的机器学习算法的区别在于决策函数和学习算法的差异。

如果一个实值函数 f(x) 在点a 处可微且有定义,那么函数f(x)在a 点沿着梯度相反的方向−∇f(a)下降最快。梯 度下降法经常用来求解无约束优化的极值问题。梯度下降法的迭代公式为:a_t+1 = a_t − λ∇f(a_t ), 其中 λ > 0 是梯度方向上的搜索步长。

在机器学习中,我们需要学习参数 theta,使得风险函数最小化。使用梯度下降法进行参数学习时:

其中,lamda 也叫作 学习率。这里梯度下降求得的是 所有样本上风函数 的最小值,因此叫做批量梯度下降法。当样 本个数 N 很大,输入 x 的维数也很大时,那么批量梯度下降法每次迭代要处理所有的样 本,效率会较低。为此,有一种改进的方法即随机梯度下降法

批量梯度下降和随机梯度下降之间的区别在于每次迭代的风险是对所有样本汇总的 风险还是单个样本的风险。随机梯度下降因为实现简单,收敛速度也非常快,因此使用 非常广泛。

还有一种折中的方法就是 mini-batch 随机梯度下降,每次迭代时,只采用一小部分 的训练样本,兼顾了批量梯度下降和随机梯度下降的优点。

学习率设置

在梯度下降中,学习率的取值十分关键。如果太大就不会收敛,如果过小就会导致收敛速度太慢。一般步长可以通过线性搜索算法来决定。在机器学习中,经常使用 自适应调整学习率 的方法。

2.3.6 线性回归

2.4 线性分类

线性分类是机器学习中最常见并且应用最广泛的一种分类器。

2.4.1 二分类问题

在二维空间中,分类界 面为一个直线。在三维空间中,分类界面为一个平面。在高维空间中,分类界面为一个超 平面。

对于线性函数来说,权重向量在线性空间中垂直于分类界面的向量

逻辑回归

2.4.2 多类线性分类

对于多类分类问题(假设类别数为C(C > 2)),有很多种利用判别函数的方法。比较常用的是把多类分类问题转换为两类分类问题,在得到两类分类结果后,还需要通过投票方法进一步确定多类的分类结果。一般有两种多类转两类的转换方式:

当对一个样本进行分类时,首先用多个两个分类器进行分类,然后进行投票,选择一个得分最高的类别。

但是上面两种转换方法都存在一个缺陷:空间中的存在一些区域,这些区域中点的类别是不能区分确定的。因为如果用多个两个分类器对这些点进行分类,然后进行投票时,会发现有两个或更多个类别的得分是一样的。

为了避免上述缺陷,可以使用一个更加有效的决策规则,直接建立多类线性分类器。 假设y = {1, · · · , C} 共 C 个类别,首先定义 C 个判别函数:

f_c(x) = w_c^Tx, c = 1, · · · , C,

这里w_c 为类 c 的权重向量。

这样,对于空间中的一个点x,如果存在类别c,对于所有的其他类别 ˜c(w c T x ≠ c) 都满足f c (x) > f ˜c (x),那么x 属于类别 c。相应的分类函数可以表示为:

yˆ = argmax(w_cx)

当 C = 2 时,

yˆ= arg max f_y(x), y∈{0,1}

​ = I(f 1 (x) − f 0 (x) > 0)

​ = I(w 1 T x − w 0 T x > 0)

​ = I((w 1 − w 0 ) T x > 0)

这里,I() 是指示函数。

Softmax 回归

SoftMax回归是Logistic回归的多类推广。。在SoftMax回归中,机器学习模型预测目标为每一个类别的后验概率。这就需要用到 softmax 函数。

2.5 评价方法

为了衡量一个分类算法好坏,需要给定一个测试集,用分类器对测试集中的每一个 样本进行分类,并根据分类结果计算评价分数。常见的评价标准有正确率、准确率、召回 率和F 值等。

在很多情况下,我们需要对每个类都进行性能估计,这就需要计算准确率召回率。 正确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,在机器学习的评 价中也被大量使用。

为了计算分类算法在整个数据集上的总体准确率、召回率和F1值,经常使用两种平 均方法,分别称为宏平均(macro average)微平均(micro average)

宏平均是每一个类的性能指标的算术平均值,

而微平均是每一个样本的性能指标的算术平均。对于单个样本而言,它的准确率和召回率是相同的(要么都是 1,要么都是 0)。因此准确率和召回率的微平均是相同的,根据 F1 值公式,对于同一个数据集它的准确率、召回率和F1 的微平均指标是相同的。


Twitter Facebook