Press "Enter" to skip to content

逻辑回归中的矩阵和向量运算

向量化逻辑回归

来自Unsplash的fabio的照片

任何人工神经网络(ANN)算法背后的数学都可能令人难以理解。此外,在模型的批量训练期间,用于表示前向传播和反向传播计算的矩阵和向量运算可能会增加理解的负担。虽然简洁的矩阵和向量符号是有意义的,但是深入研究这些符号背后微妙的工作细节将带来更多的清晰度。我意识到理解这些微妙细节的最佳方法是考虑一个最基本的网络模型。我找不到比逻辑回归更好的算法来探索底层原理,因为它具有ANN的所有要素,如多维输入、网络权重、偏差、前向传播操作、应用非线性函数的激活函数、损失函数和基于梯度的反向传播。我撰写这篇博客的目的是分享我对逻辑回归模型核心的矩阵和向量运算的笔记和发现。

逻辑回归简介

尽管名为逻辑回归,但逻辑回归是一种分类算法,而不是回归算法。通常用于二元分类,以预测实例属于两个类别中的哪一个的概率,例如,预测电子邮件是否为垃圾邮件。因此,在逻辑回归中,依赖变量或目标变量被视为分类变量。例如,表示垃圾邮件的值为1,表示非垃圾邮件的值为0。逻辑回归模型的主要目标是建立输入变量(特征)与目标变量概率之间的关系。例如,给定电子邮件的特征作为一组输入特征,逻辑回归模型会找到这些特征与电子邮件为垃圾邮件的概率之间的关系。如果‘Y’代表输出类别,例如电子邮件为垃圾邮件,‘X’代表输入特征,可以将概率表示为π = Pr( Y = 1 | X, βi),其中βi表示逻辑回归参数,包括模型权重‘wi’和偏差参数‘b’。实际上,逻辑回归预测给定输入特征和模型参数的情况下Y = 1的概率。具体而言,概率π被建模为S形的逻辑函数,称为Sigmoid函数,由π = e^z/(1 + e^z) 或等价地由π = 1/(1 + e^-z) 给出,其中z = βi . X。Sigmoid函数允许在0和1之间生成平滑曲线,非常适合估计概率。本质上,逻辑回归模型将输入特征的线性组合应用于Sigmoid函数,以预测0到1之间的概率。确定实例的输出类别的常见方法是对预测概率进行阈值处理。例如,如果预测概率大于或等于0.5,则将实例分类为类别1;否则,将其分类为类别0。

逻辑回归模型示意图 — 图片由作者创建

逻辑回归模型通过将模型拟合到训练数据并最小化损失函数来进行训练以调整模型参数。损失函数估计输出类别的预测概率与实际概率之间的差异。训练逻辑回归模型中最常用的损失函数是对数损失函数,也称为二元交叉熵损失函数。对数损失函数的公式如下:

L = — ( y * ln(p) + (1 — y) * ln(1 — p) )

其中:

  • L代表对数损失。
  • y是实际的二进制标签(0或1)。
  • p是输出类别的预测概率。

逻辑回归模型通过使用梯度下降等技术最小化损失函数来调整其参数。给定一批输入特征和它们的实际类别标签,模型的训练分为若干次迭代,称为epoch。在每个epoch中,模型进行前向传播操作来估计损失,并进行反向传播操作以最小化损失函数并调整参数。在一个epoch中的所有这些操作都使用矩阵和向量计算,如下面的章节所示。

矩阵和向量符号

请注意 我使用LaTeX脚本来创建数学方程和嵌入在博客中的矩阵/向量表示作为图像。如果有人对LaTeX脚本感兴趣,请随时联系我,我很乐意分享。

如上图所示,二元逻辑回归分类器用作示例,以保持说明简单。如下所示,矩阵X表示“m”个输入实例。每个输入实例包含“n”个特征,并表示为矩阵X中的列,即输入特征向量,使其成为(n x m)大小的矩阵。上标(i)表示矩阵X中输入向量的序数。下标“j”表示输入向量中特征的序数索引。大小为(1 x m)的矩阵Y捕获与矩阵X中每个输入向量相对应的真实标签。模型权重由大小为(n x 1)的列向量W表示,其中包含与输入向量中每个特征对应的‘n’个权重参数。虽然只有一个偏置参数‘b’,但为了说明矩阵/向量运算,考虑一个大小为(1 x m)的矩阵B,其中包含‘m’个相同的偏置b参数。

逻辑回归中的矩阵和向量运算 四海 第3张

前向传播

前向传播操作的第一步是计算模型参数和输入特征之间的线性组合。下面显示了此类矩阵运算的符号表示,评估出一个新的矩阵Z:

逻辑回归中的矩阵和向量运算 四海 第4张

请注意使用权重矩阵W的转置。上述矩阵展开表示的操作如下所示:

逻辑回归中的矩阵和向量运算 四海 第5张

上述矩阵运算导致计算出大小为(1 x m)的矩阵Z,如下所示:

逻辑回归中的矩阵和向量运算 四海 第6张

下一步是通过对每个输入的计算线性组合应用sigmoid函数来推导激活值,如下面的矩阵运算所示。这将导致大小为(1 x m)的激活矩阵A。

逻辑回归中的矩阵和向量运算 四海 第7张

反向传播

反向传播是一种技术,用于计算每个参数对每个周期结束时由于错误预测而导致的总误差或损失的贡献。通过计算损失函数相对于每个模型参数的梯度来评估各个损失贡献。函数的梯度或导数是函数相对于参数的变化率或斜率,考虑其他参数为常量。当针对特定参数值或点进行评估时,梯度的符号表示函数增长的方向,梯度的大小表示斜率的陡峭程度。如下所示,对数损失函数是一个碗状的凸函数,具有一个全局最小点。因此,在大多数情况下,对数损失函数相对于参数的梯度指向与全局最小值相反的方向。梯度计算完成后,使用参数的梯度更新每个参数值,通常使用一种称为梯度下降的技术。

逻辑回归中的矩阵和向量运算 四海 第8张

使用链式法则计算每个参数的梯度。链式法则使得能够计算由其他函数组成的函数的导数。对于逻辑回归,对数损失L是激活‘a’和真实标签‘y’的函数,而‘a’本身是权重‘w’和偏置‘b’的线性函数‘z’的sigmoid函数,这意味着损失函数L是由其他函数组成的函数,如下所示。

逻辑回归中的矩阵和向量运算 四海 第9张

使用偏导数的链式法则,可以计算出权重和偏差参数的梯度如下:

逻辑回归中的矩阵和向量运算 四海 第10张

单个输入实例的梯度推导

在我们一次更新参数的过程中,首先使用单个输入实例推导出梯度,以更好地理解后续使用矩阵和向量表示的基础。

假设‘a’和‘z’表示具有真实标签‘y’的单个输入实例的计算值,损失函数对‘a’的梯度可以推导如下。请注意,此梯度是后续计算参数梯度所需的第一个量。

逻辑回归中的矩阵和向量运算 四海 第11张

给定损失函数对‘a’的梯度,可以使用以下链式法则推导出损失函数对‘z’的梯度:

逻辑回归中的矩阵和向量运算 四海 第12张

上述链式法则意味着还必须推导出损失函数对‘z’的梯度。请注意,‘a’是通过在‘z’上应用sigmoid函数计算得到的。因此,可以使用sigmoid函数表达式推导出损失函数对‘z’的梯度,如下所示:

逻辑回归中的矩阵和向量运算 四海 第13张

上述推导是以‘e’为表达式,似乎需要进行额外的计算才能评估‘a’对‘z’的梯度。我们知道‘a’是作为前向传播的一部分计算得到的。因此,为了消除任何额外的计算,上述导数可以完全以‘a’为表达式表示,如下所示:

逻辑回归中的矩阵和向量运算 四海 第14张

将上述以‘a’表示的项代入,‘a’对‘z’的梯度如下:

逻辑回归中的矩阵和向量运算 四海 第15张

现在,我们已经得到了损失函数对‘a’的梯度和‘a’对‘z’的梯度,可以计算损失函数对‘z’的梯度如下:

逻辑回归中的矩阵和向量运算 四海 第16张

我们在计算损失函数对‘z’的梯度方面已经走了很长的路。我们仍然需要计算损失函数对模型参数的梯度。我们知道,‘z’是模型参数和输入实例‘x’的特征的线性组合,如下所示:

逻辑回归中的矩阵和向量运算 四海 第17张

使用链式法则,可以计算出损失函数对权重参数‘wi’的梯度如下所示:

逻辑回归中的矩阵和向量运算 四海 第18张

类似地,损失函数对‘b’的梯度计算如下:

逻辑回归中的矩阵和向量运算 四海 第19张

使用梯度的矩阵和向量表示的参数更新

现在我们已经理解了使用单个输入实例导出的模型参数的梯度公式,我们可以将这些公式表示为矩阵和向量形式,考虑整个训练批次。我们首先将损失函数对‘z’的梯度向量化,表示如下:

逻辑回归中的矩阵和向量运算 四海 第20张

对于整个‘m’个实例的向量形式如下:

逻辑回归中的矩阵和向量运算 四海 第21张

类似地,可以将损失函数对每个权重‘wi’的梯度向量化。对于单个实例,损失函数对权重‘wi’的梯度为:

逻辑回归中的矩阵和向量运算 四海 第22张

对于所有权重和所有‘m’个输入实例的向量形式,计算如下:

逻辑回归中的矩阵和向量运算 四海 第23张

同样地,对于所有‘m’个输入实例,损失函数对‘b’的结果梯度通过计算每个实例梯度的平均值得出,如下:

逻辑回归中的矩阵和向量运算 四海 第24张

给定模型权重梯度向量和偏置的整体梯度,模型参数的更新如下所示。下面所示的参数更新是基于一种称为梯度下降的技术,其中使用学习率。学习率是优化技术(如梯度下降)中使用的超参数,用于控制根据计算的梯度在每个时期对模型参数进行调整的步长。有效地,学习率充当缩放因子,影响优化算法的速度和收敛性。

逻辑回归中的矩阵和向量运算 四海 第25张

结论

从本文中所示的矩阵和向量表示可以看出,逻辑回归使得一个最简单的网络模型能够理解这些矩阵和向量操作的微妙工作细节。大多数机器学习库封装了这些琐碎的数学细节,而是在更高层次上公开了定义良好的编程接口,例如前向或后向传播。虽然使用这些库开发模型可能不需要理解所有这些微妙的细节,但这些细节确实揭示了这些算法背后的数学直觉。然而,这样的理解肯定会帮助将潜在的数学直觉应用于其他模型,如人工神经网络(ANN)、循环神经网络(RNN)、卷积神经网络(CNN)和生成对抗网络(GAN)。

Leave a Reply

Your email address will not be published. Required fields are marked *