首页
/ PRML/PRMLT项目中的二元逻辑回归实现解析

PRML/PRMLT项目中的二元逻辑回归实现解析

2025-07-07 07:08:06作者:何举烈Damon

概述

本文将深入分析PRML/PRMLT项目中logitBin.m文件的实现细节,这是一个用于二元分类的逻辑回归模型,采用牛顿-拉夫森(Newton-Raphson)优化方法进行训练。逻辑回归是机器学习中最基础且重要的分类算法之一,尽管名称中有"回归"二字,但它实际上是一种分类方法。

算法原理

逻辑回归通过sigmoid函数将线性回归的输出映射到(0,1)区间,表示样本属于正类的概率。对于二元分类问题,给定输入特征x,预测概率可以表示为:

P(y=1|x) = σ(wᵀx) = 1/(1+exp(-wᵀx))

其中w是模型参数,σ是sigmoid函数。

代码实现解析

输入参数处理

if nargin < 4
    alpha = 1e-1;  % 默认学习率
end
if nargin < 3
    lambda = 1e-4;  % 默认正则化系数
end

代码首先处理输入参数,为学习率alpha和正则化系数lambda设置默认值。正则化用于防止过拟合,学习率控制优化步长。

数据预处理

X = [X; ones(1,size(X,2))];  % 添加偏置项
[d,n] = size(X);  % d:特征维度+1, n:样本数

在特征矩阵X上添加一行1,相当于为模型添加偏置项(bias term),这是线性模型中常见的做法。

初始化

tol = 1e-4;  % 收敛阈值
epoch = 200;  % 最大迭代次数
llh = -inf(1,epoch);  % 记录对数似然
w = rand(d,1);  % 随机初始化权重

设置优化过程的控制参数,包括收敛阈值、最大迭代次数,并随机初始化模型权重。

牛顿-拉夫森优化

for t = 2:epoch
    a = w'*X;  % 线性预测值
    llh(t) = (dot(a,y)-sum(log1pexp(a))-0.5*lambda*dot(w,w))/n; % 计算对数似然
    
    if abs(llh(t)-llh(t-1)) < tol; break; end  % 检查收敛
    
    z = sigmoid(a);  % 计算sigmoid输出
    g = X*(z-y)'+lambda*w;  % 计算梯度
    r = z.*(1-z);  % 计算Hessian矩阵的对角元素
    Xw = bsxfun(@times, X, sqrt(r));
    H = Xw*Xw'+lambda*eye(d);  % 计算Hessian矩阵
    w = w-alpha*(H\g);  % 更新权重
end

这是算法的核心部分,采用牛顿-拉夫森方法进行优化:

  1. 计算线性预测值a = wᵀX
  2. 计算对数似然函数值,包含正则化项
  3. 检查收敛条件
  4. 计算sigmoid输出z = σ(a)
  5. 计算梯度g
  6. 计算Hessian矩阵H
  7. 更新权重w

对数似然计算

对数似然函数的计算对应于PRML书中的公式4.90,并添加了L2正则化项:

llh = (aᵀy - ∑log(1+exp(a)) - 0.5λwᵀw)/n

其中a=wᵀX,y是标签向量,λ是正则化系数。

梯度计算

梯度计算对应于PRML书中的公式4.96:

g = X(z-y)ᵀ + λw

其中z是sigmoid输出,y是真实标签。

Hessian矩阵计算

Hessian矩阵计算对应于PRML书中的公式4.97:

H = XRXᵀ + λI

其中R是对角矩阵,对角线元素为z(1-z),对应于公式4.98。

技术亮点

  1. 数值稳定性:使用log1pexp函数计算log(1+exp(a)),避免了数值溢出问题。
  2. 正则化:实现了L2正则化,防止模型过拟合。
  3. 优化方法:采用牛顿-拉夫森方法,相比梯度下降法收敛更快。
  4. 收敛判断:基于对数似然的变化量自动判断收敛。

使用建议

  1. 对于高维数据,Hessian矩阵的计算和求逆可能成为性能瓶颈,可考虑使用共轭梯度法等近似方法。
  2. 正则化系数λ和学习率α需要根据具体问题调整,可通过交叉验证选择最优值。
  3. 对于大规模数据集,可考虑使用随机梯度下降(SGD)或其变种进行优化。

总结

logitBin.m实现了一个完整的二元逻辑回归模型,采用牛顿-拉夫森优化方法,并加入了正则化项以提高模型泛化能力。该实现简洁高效,很好地体现了PRML书中相关章节的理论内容,是学习逻辑回归和优化算法的优秀示例。