深入广义线性模型:分类和回归

【导读】本文来自AI科学家Semih Akbayrak的一篇博文,文章主要讨论了广义的线性模型,包括:监督学习中的分类和回归两类问题。虽然关于该类问题的介绍文章已经很多,但是本文详细介绍了几种回归和分类方法的推导过程,内容涉及:线性回归、最大似然估计、MAP、泊松回归、Logistic回归、交叉熵损失函数、多项Logistic回归等,基本上涵盖了线性模型中的主要方法和问题,非常适合新手入门线性模型。专知内容组编辑整理。

Generalized Linear Models

今天的主题是广义线性模型(GeneralizedLinear Models),一组用于监督学习问题(回归和分类)的通用机器学习模型。

我们从线性回归模型开始吧。我认为,每个人在学习期间都会以某种方式遇到线性回归模型。线性回归模型的目标是在观察到的特征和观察到的实际输出之间找到一个线性映射,以便当我们看到一个新的示例时,我们可以预测输出。在这篇文章中,我们有N个观测样本,其输出是y,每一个观测样本x有M个特征,这些信息用于训练。

我们定义一个M维向量w来表示将输入映射到输出的权重。我们用N*M维矩阵 X来表示所有的输入。 y被定义为N维输出向量。

图显示我们试着使Xw拟合实际输出值y

我们的目标是找到最好的参数w使真实输出向量y和近似值X*w之间的欧式距离最小。为此,我们通常使用最小二乘误差和矩阵运算来最小化它。这里我们用L表示损失(误差)函数。

图表示线性回归问题中如何优化参数w

上面只是把线性回归这个问题使用线性代数的方式进行分析,但为了更好地理解问题本身,并将其扩展到不同的问题设置,我们将以一种更好的形式(概率的角度)来分析这个问题。

在开始时,我们说输出是一个实数值。实际上,我们假设输出是从正态分布中采样得到的,可以通过设置其是以均值为Xw和方差为I(单位方差)的正态分布,如下所示,

现在,我们的目标是找到使输出y似然最大即p(y|X, w)最大化的w。我们定义p(y|X, w) 服从上面的正态分布,其似然函数如下所示:

直接使用似然函数优化是比较困难的,相反,我们将使用和似然函数相同的maxima和minima的对数似然函数。即可以最大化对数似然最小化负对数似然。 我们选择第二个并称之为损失函数(loss function)

该损失函数与最小二乘误差函数完全相同。所以我们概率解释了线性回归,这对于下面介绍的模型是非常有帮助的。

MAP解决方法(MAP solution)



上面的解决方法被称为最大似然法,因为这正是我们所做的,使可能性最大化。现在,我们可以把先验概率放在权重上,使w的后验分布最大化,而不是y的似然值。

图显示了MAP方法的流程

在上面的公式中,我们定义权重w的先验是零均值,单位方差的高斯分布,以及使用负对数后验分布来进行损失函数的求解。在这种情况下,w的先验分布试图保持其平均值为0的权重值。这个过程称为L2正则化(岭回归),其在优化时约束权重参数w的值,这可以在损失函数中看到。

先验分布反映了我们对w值的置信度,它不一定是正态分布。如果我们把拉普拉斯分布作为先验,则正则化项将是权重 w(L1正则化 - Lasso)的1-范数。

为了更好地说明正则化效果,我会举一个例子。假设我们有一个具有特征[2,1]和输出3的数据点。对于这个问题,有很多种方法来设置权重从而满足这个式子,但,L2正则化更喜欢权重w的值为[1,1],而L1正则化更喜欢[ 1.5,0],因为[1,1]的2-范数和[1.5,0]的1-范数是所有可能解中最小的那个。因此,我们看到L2正则化尝试尽可能地保持所有权重值接近0。另一方面,L1正则化更喜欢稀疏的解

泊松回归(Poisson Regression)



我们使用线性回归来处理输出是实数的情况。更具体地说,如果输出值是计数(counts),那么我们可以改变似然分布,并为这个新问题使用相同的设置。泊松分布是模型计数数据的合适分布,我们将使用它。

泊松分布的超参数不能取负值。因此,我们稍微改变模型的定义,使用线性模型不直接产生超参数,就像上面正态分布的情况,生成它的对数(实际上是自然对数)。对数是广义线性模型的泊松分布的连接函数,我们又一次用负对数似然函数来优化。

泊松回归的损失函数

我们对损失函数求关于权重w的导数,并将其设为0。就我所知,与线性回归相反,它没有闭合形式解。但是我们可以使用无约束的优化方法来找到迭代的解决方案,下面我为它提供了梯度下降法。在梯度下降法中,我们逐渐更新权重,并在损失梯度的负方向上来进行优化(因为这是损失相对于权重w减小的方向)。

权重w迭代更新公式

Logistic回归(Logistic Regression)



上面我提出了回归问题的模型,但是广义线性模型也可以用于分类问题。在2类分类问题中,似然函数用伯努利分布来定义,即输出为1或0。

这次我们使用sigmoid函数将线性模型的输出映射到(0,1)的范围,因为伯努利的均值应该在这个范围内。

Sigmoid函数

交叉熵损失函数(Cross-Entropy Loss Function)

上面定义的损失函数被称为交叉熵损失函数,在分类问题中被广泛使用,我们在统计上显示了我们使用它的原因。解决方案没有封闭的表单,我们将使用随机梯度下降(每次更新取一个样本来计算梯度),并提供在线迭代更新机制。

Logistic回归的的随机梯度下降方法

多项Logistic回归(Multinomial Logistic Regression)



如果类数大于2,伯努利分布不足以描述数据。在这种情况下,我们更喜欢多项分布。对于K类分类问题,我们用one-hot编码表示输出。在one-hot编码中,,每个输出都用K维矢量表示,除了取值为1的索引外,其余值全0,这个为1的值表示这个样本的类标。

one-hot编码

这一次,我们定义了y可以属于K个不同概率值。每个类都有自己的概率和权重。因此,与上述模型不同,我们定义了K个不同的权重向量。

公式表示一个输出是从多项式分布被采样得到

每个类的概率都需要大于0,所以我们可以采用线性映射的指数函数,因为它是在泊松回归中完成的。但是这次有K个不同的概率,它们的总和应该等于1。因此,它需要被归一化,为此我们使用softmax函数。

再次,我们使用负对数似然来定义损失函数,它被称为交叉熵损失函数。 类似于泊松回归和Logistic回归,梯度下降优化方法(GradientDescent Optimizer )可以用来解决这个问题。

多项Logistic回归的交叉熵损失函数

在这篇文章中,我试图尽可能地描述清楚各个部分。各个部分的推导过程是很重要的,因为它们形成了更复杂机器学习模型的基础知识,如神经网络。我希望大家能够喜欢。

参考链接:

https://towardsdatascience.com/generalized-linear-models-8738ae0fb97d

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2018-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏红色石头的机器学习之路

Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归

上节课我们主要对深度学习(Deep Learning)的概念做了简要的概述。我们先从房价预测的例子出发,建立了标准的神经网络(Neural Network)模型...

27800
来自专栏计算机视觉战队

通过部分感知深度卷积网络进行人脸特征点定位

人脸特征点定位是一个非常具有挑战性的研究课题。由于纹理和形状的不同,不同人脸特征点的定位精度差异很大。但大多数现有的方法不能考虑特征点的部分位置。 为了解决这个...

32760
来自专栏AI科技大本营的专栏

从YOLOv1到YOLOv3,目标检测的进化之路

这是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross Girshick 针对 DL 目标检测速度问题提出的另外一种框架。YOLO V1...

49530
来自专栏郭耀华‘s Blog

平均精度均值(mAP)——目标检测模型性能统计量

  在机器学习领域,对于大多数常见问题,通常会有多个模型可供选择。当然,每个模型会有自己的特性,并会受到不同因素的影响而表现不同。

11220
来自专栏新智元

【计算机视觉必读干货】图像分类、定位、检测,语义分割和实例分割方法梳理

作者:张皓 【新智元导读】本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括...

65260
来自专栏SnailTyan

YOLO,You Only Look Once论文翻译——中英文对照

You Only Look Once: Unified, Real-Time Object Detection Abstract We present YOLO...

33700
来自专栏AI科技评论

干货 | 基于深度学习的目标检测算法综述(一)

目标检测(Object Detection)是计算机视觉领域的基本任务之一,学术界已有将近二十年的研究历史。近些年随着深度学习技术的火热发展,目标检测算法也从基...

17420
来自专栏机器学习算法与Python学习

干货 | 卷积神经网络入门这一篇就够了

【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 先明确一点就是,Deep Learning是全部深度学习算法...

407100
来自专栏SIGAI学习与实践平台

用一张图理解SVM的脉络

SVM在之前的很长一段时间内是性能最好的分类器,它有严密而优美的数学基础作为支撑。在各种机器学习算法中,它是最不易理解的算法之一,要真正掌握它的原理有一定的难度...

1.2K10
来自专栏红色石头的机器学习之路

Coursera吴恩达《神经网络与深度学习》课程笔记(5)-- 深层神经网络

上节课我们主要介绍了浅层神经网络。首先介绍神经网络的基本结构,包括输入层,隐藏层和输出层。然后以简单的2 layer NN为例,详细推导了其正向传播过程和反向传...

30600

扫码关注云+社区

领取腾讯云代金券