【数学基础】算法工程师必备的机器学习--线性模型(上)

作者:华校专

作者信息:

华校专,曾任阿里巴巴资深算法工程师、智易科技首席算法研究员,现任腾讯高级研究员,《Python 大战机器学习》的作者。

编者按:

算法工程师必备系列更新啦!继上次推出了算法工程师必备的数学基础后,小编继续整理了必要的机器学习知识,全部以干货的内容呈现,哪里不会学哪里,老板再也不用担心你的基础问题!

第一部分:机器学习基础及线性模型

第一章:机器学习方法概论

1.  机器学习的对象是:具有一定的统计规律的数据。

2.  机器学习根据任务类型,可以划分为:

  • 监督学习任务:从已标记的训练数据来训练模型。主要分为:分类任务、回归任务、序列标注任务。

  • 无监督学习任务:从未标记的训练数据来训练模型。主要分为:聚类任务、降维任务。

  • 半监督学习任务:用大量的未标记训练数据和少量的已标记数据来训练模型。

  • 强化学习任务:从系统与环境的大量交互知识中训练模型。

3.  机器学习根据算法类型,可以划分为:

  • 传统统计学习:基于数学模型的机器学习方法。包括SVM、逻辑回归、决策树等。

这一类算法基于严格的数学推理,具有可解释性强、运行速度快、可应用于小规模数据集的特点。

  • 深度学习:基于神经网络的机器学习方法。包括前馈神经网络、卷积神经网络、递归神经网络等。

这一类算法基于神经网络,可解释性较差,强烈依赖于数据集规模。但是这类算法在语音、视觉、自然语言等领域非常成功。

4.  没有免费的午餐定理(No Free Lunch Theorem:NFL):对于一个学习算法A,如果在某些问题上它比算法B好,那么必然存在另一些问题,在那些问题中BA更好。

因此不存在这样的算法:它在所有的问题上都取得最佳的性能。因此要谈论算法的优劣必须基于具体的学习问题。

一、基本概念

1.1 特征空间

1.  输入空间 :所有输入的可能取值;输出空间 :所有输出的可能取值。

特征向量表示每个具体的输入, 所有特征向量构成特征空间。

2.  特征空间的每一个维度对应一种特征。

3.  可以将输入空间等同于特征空间,但是也可以不同。绝大多数情况下,输入空间等于特征空间。

模型是定义在特征空间上的。

1.2 样本表示

1.  通常输入实例用  表示,真实标记用  表示,模型的预测值用  ,表示。具体的输入取值记作  , ;具体的标记取值记作  ;具体的模型预测取值记作  。

2.  所有的向量均为列向量,其中输入实例  的特征向量记作 (假设特征空间为 n 维):

这里  为  的第 i 个特征的取值。第 i 个输入记作  ,它的意义不同于  。

3.  训练数据由输入、标记对组成。通常训练集表示为: 。

  • 输入、标记对又称作样本点。

  • 假设每对输入、标记对是独立同分布产生的。

4.  输入 和标记  可以是连续的,也可以是离散的。

  • 为连续的:这一类问题称为回归问题。

  • 为离散的,且是有限的:这一类问题称之为分类问题。

  • 和 均为序列:这一类问题称为序列标注问题。

二、监督学习

2.1 监督学习

1.  监督学习中,训练数据的每个样本都含有标记,该标记由人工打标,所以称之为监督

2.  监督学习假设输入  与标记  遵循联合概率分布 ,训练数据和测试数据依联合概率分布 独立同分布产生。

学习过程中,假定这个联合概率分布存在,但是具体定义未知。

3.  监督学习的目的在于学习一个由输入到输出的映射,该映射由模型表示。

模型属于由输入空间到输出空间的映射的集合,该集合就是解空间。解空间的确定意味着学习范围的确定。

4.  监督学习的模型可以为概率模型或者非概率模型:

  • 概率模型由条件概率分布  表示。

  • 非概率模型由决策函数 表示。

5.  监督学习分为学习和预测两个过程。

给定训练集  ,其中 为输入值, 是标记值。假设训练数据与测试数据是依据联合概率分布  独立同分布的产生的。

  • 学习过程:在给定的训练集 上,通过学习训练得到一个模型。该模型表示为条件概率分布  或者决策函数 

  • 预测过程:对给定的测试样本 ,给出其预测结果:

  • 对于概率模型,其预测值为:

  • 对于非概率模型,其预测值为:

6.  可以通过无监督学习来求解监督学习问题  :

  • 首先求解无监督学习问题来学习联合概率分布

  • 然后计算: 。

2.2 生成模型和判别模型

1.  监督学习又分为生成方法和判别方法,所用到的模型分别称为生成模型和判别模型。

2.  生成方法 :通过数据学习联合概率分布  ,然后求出条件概率分布  作为预测的模型。

即生成模型为:

  • 生成方法的优点:能还原联合概率分布 ,收敛速度快,且当存在隐变量时只能用生成方法。

  • 生成方法有:朴素贝叶斯法,隐马尔可夫链。

3.  判别方法 :直接学习决策函数 或者条件概率分布 的模型。

  • 判别方法的优点:直接预测,一般准确率更高,且一般比较简化问题。

  • 判别方法有:逻辑回归,决策树。

三、机器学习三要素

1.  机器学习三要素:模型、策略、算法。

3.1 模型

1.  模型定义了解空间。监督学习中,模型就是要学习的条件概率分布或者决策函数。

模型的解空间包含了所有可能的条件概率分布或者决策函数,因此解空间中的模型有无穷多个。

  • 模型为一个条件概率分布:

解空间为条件概率的集合:  。其中: ,  为随机变量,  为输入空间,  为输出空间。

通常 是由一个参数向量 决定的概率分布族: 。 其中:  只与 有关,称  为参数空间。

  • 模型为一个决策函数:

解空间为决策函数的集合:  。其中:  为变量, 为输入空间,  为输出空间。

通常 是由一个参数向量  决定的函数族: 。其中:  只与 有关,称  为参数空间。

2.  解的表示一旦确定,解空间以及解空间的规模大小就确定了。

如:一旦确定解的表示为:  ,则解空间就是特征的所有可能的线性组合,其规模大小就是所有可能的线性组合的数量。

3.  将学习过程看作一个在解空间中进行搜索的过程,搜索目标就是找到与训练集匹配的解。

3.2 策略

1.  策略考虑的是按照什么样的准则学习,从而定义优化目标。

3.2.1 损失函数

1.  对于给定的输入  ,由模型预测的输出值  与真实的标记值 可能不一致。此时,用损失函数度量错误的程度,记作  ,也称作代价函数。

2.  常用损失函数:

  • 0-1 损失函数:

  • 平方损失函数MSE: 

  • 绝对损失函数MAE

  • 对数损失函数: 。

  • 其物理意义是:二分类问题的真实分布与模型分布之间的交叉熵。

  • 一个简单的解释:因为样本 易经出现,所以理论上 。

如果它不为 1,则说明预测存在误差。越远离1,说明误差越大。

3.  训练时采用的损失函数不一定是评估时的损失函数。但通常二者是一致的。

因为目标是需要预测未知数据的性能足够好,而不是对已知的训练数据拟合最好。

3.2.2 风险函数

1.  通常损失函数值越小,模型就越好。但是由于模型的输入、标记都是随机变量,遵从联合分布  , 因此定义风险函数为损失函数的期望:

其中  分别为输入空间和输出空间。

2.  学习的目标是选择风险函数最小的模型 。

3.  求 的过程中要用到 ,但是  是未知的。

实际上如果它已知,则可以轻而易举求得条件概率分布,也就不需要学习。

3.2.3 经验风险

1.  经验风险也叫经验损失。

给定训练集  ,模型关于  的经验风险定义为:

经验风险最小化 (empirical risk minimization:ERM) 策略认为:经验风险最小的模型就是最优的模型。即:

2.  经验风险是模型在  上的平均损失。根据大数定律,当 时 。

但是由于现实中训练集中样本数量有限,甚至很小,所以需要对经验风险进行矫正。

3.  结构风险是在经验风险上叠加表示模型复杂度的正则化项(或者称之为罚项)。它是为了防止过拟合而提出的。

给定训练集  ,模型关于 \mathbb D 的结构风险定义为:

其中:

  • 为模型复杂度,是定义在解空间 上的泛函。  越复杂,则 越大。

  • 为系数,用于权衡经验风险和模型复杂度。

4.  结构风险最小化 (structurel risk minimization:SRM) 策略认为:结构风险最小的模型是最优的模型。即:

5.  结构风险最小化策略符合奥卡姆剃刀原理:能够很好的解释已知数据,且十分简单才是最好的模型。

3.2.4 极大似然估计

1.  极大似然估计就是经验风险最小化的例子。

2.  已知训练集 ,则出现这种训练集的概率为:  。根据  出现概率最大,有:

定义损失函数为: ,则有:

即:极大似然估计 = 经验风险最小化 。

3.2.5 最大后验估计

1.  最大后验估计就是结构风险最小化的例子。

2.  已知训练集  ,假设已知参数  的先验分布为  ,则出现这种训练集的概率为:

根据  出现概率最大:

定义损失函数为: ;定义模型复杂度为 ;定义正则化系数为  。则有:

即:最大后验估计 = 结构风险最小化。

3.3 算法

1.  算法指学习模型的具体计算方法。通常采用数值计算的方法求解,如:梯度下降法。

第二章:线性模型

  1. 给定样本 ,其中 , 为样本 的第 i 个特征,特征有 n 种。线性模型(linear model) 的形式为: 。其中 为每个特征对应的权重生成的权重向量。

  2. 线性模型的优点是:

  • 模型简单。

  • 可解释性强,权重向量 直观地表达了各个特征在预测中的重要性。

  • 很多功能强大的非线性模型(nolinear model) 可以在线性模型的基础上通过引入层级结构或者非线性映射得到。

  • 一、线性回归

    1.1 问题

    1. 给定数据集

      线性回归问题试图学习模型 :

      该问题也被称作多元线性回归(multivariate linear regression)

    2. 对于每个 ,其预测值为 。采用平方损失函数,则在训练集 上,模型的损失函数为:

      优化目标是损失函数最小化,即:。

    1.2 求解

    1. 可以用梯度下降法来求解上述最优化问题的数值解,但是实际上该最优化问题可以通过最小二乘法获得解析解。

    2. 令:

      则有:

      令:

      则:

    3. 令 。为求得它的极小值,可以通过对 求导,并令导数为零,从而得到解析解:

      1) 当 为满秩矩阵时,可得: 。

      其中 为 的逆矩阵。

      最终学得的多元线性回归模型为: 。

      2) 当 不是满秩矩阵。此时存在多个解析解,他们都能使得均方误差最小化。究竟选择哪个解作为输出,由算法的偏好决定。

      比如 (样本数量小于特征种类的数量),根据 的秩小于等于 N,n 中的最小值,即小于等于 N(矩阵的秩一定小于等于矩阵的行数和列数);而矩阵 是 大小的,它的秩一定小于等于 N,因此不是满秩矩阵。

      常见的做法是引入正则化项:

      1) L_1 正则化:此时称作Lasso Regression

      为正则化系数,调整正则化项与训练误差的比例。

      2) L_2 正则化:此时称作Ridge Regression

      为正则化系数,调整正则化项与训练误差的比例。

      3) 同时包含 L_1,L_2 正则化:此时称作Elastic Net

      其中:

    • 为正则化系数,调整正则化项与训练误差的比例。

    • 为比例系数,调整 L_1 正则化与 L_2 正则化的比例。

    1.3 算法

    1. 多元线性回归算法:

      1) 输入:

      a. 数据集

      b. L_2 正则化项系数

      2) 输出模型:

      3) 算法步骤:

      令:

      求解:

      最终学得模型:

    二、广义线性模型

    2.1 广义线性模型的函数定义

    1. 考虑单调可微函数 ,令 ,这样得到的模型称作广义线性模型 (generalized linear model)。

      其中函数 称作联系函数 (link function) 。

    2. 对数线性回归是广义线性模型在 时的特例。即: 。

    • 它实际上是试图让 ) 逼近 y 。

    • 它在形式上仍是线性回归,但是实质上是非线性的。

    2.2 广义线性模型的概率定义

    1. 如果给定 和 之后, 之后, y 的条件概率分布 服从指数分布族,则该模型称作广义线性模型。

      指数分布族的形式为:。

    • 是 的线性函数:

    • 为 的函数

    • 为 的函数

    2.3 常见分布的广义线性模型

    2.3.1 高斯分布

    1. 高斯分布:

      令:

      则满足广义线性模型。

    2.3.2 伯努利分布

    1. 伯努利分布(二项分布,y 为 0 或者 1,取 1的概率为 \phi ):

      令:

      则满足广义线性模型。

    2. 根据 ,有 。则得到:

      因此 logistic 回归属于伯努利分布的广义形式。

    2.3.3 多元伯努利分布

    1. 假设有 K 个分类,样本标记 。每种分类对应的概率为 。则根据全概率公式,有

      a. 定义 为一个 维的列向量:

      b. 定义示性函数 : 表示属于 分类; 表示不属于 分类。则有:

      c. 构建概率密度函数为:

      c. 令

      则有:

      令 ,则满足广义线性模型。

    2. 根据:

      则根据:

      于是有:

    三、对数几率回归

    1. 线性回归不仅可以用于回归任务,还可以用于分类任务。

    3.1 二分类模型

    1. 考虑二分类问题。

      给定数据集

      a. 考虑到 取值是连续的,因此它不能拟合离散变量。

      可以考虑用它来拟合条件概率 ,因为概率的取值也是连续的。

      b. 但是对于 (若等于零向量则没有什么求解的价值), 取值是从 ,不符合概率取值为 , 因此考虑采用广义线性模型。

      最理想的是单位阶跃函数:

      c. 但是阶跃函数不满足单调可微的性质,不能直接用作 。

      对数几率函数(logistic function)就是这样的一个替代函数:

      这样的模型称作对数几率回归(logistic regressionlogit regression)模型。

    2. 由于 ,则有:

      a. 比值

你可能感兴趣的:(算法,python,机器学习,人工智能,深度学习)