1. 从分类问题到概率模型
分类问题是机器学习中最基础也最广泛的应用场景之一。想象你正在处理一个垃圾邮件过滤系统,每封邮件需要被分类为"垃圾邮件"或"正常邮件"——这就是典型的二分类问题。而当我们需要将手写数字图片分类为0-9中的某一个数字时,就变成了多分类问题。
逻辑回归(Logistic Regression)和Softmax回归(Softmax Regression)正是解决这类分类问题的两大利器。它们虽然名字中带有"回归",但实际上都是用于分类的线性模型。这两个模型的核心思想都是:通过线性变换将输入特征映射到类别概率空间,然后利用特定的损失函数(交叉熵)来优化模型参数。
有趣的是,逻辑回归可以看作是Softmax回归在二分类情况下的特例。理解它们之间的关系能帮助我们建立更完整的机器学习知识体系。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 逻辑回归:二分类的经典选择
2.1 模型结构与Sigmoid函数
逻辑回归的核心在于它的激活函数——Sigmoid函数,也称为逻辑函数。这个函数的数学表达式为:
σ(z) = 1 / (1 + e^{-z})
其中z是线性组合:z = w^T x + b,w是权重向量,x是输入特征,b是偏置项。
Sigmoid函数的神奇之处在于它将任意实数映射到(0,1)区间,这正好可以解释为概率。当σ(z) > 0.5时,我们通常预测为正类;否则预测为负类。
python复制import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
# 示例计算
z = np.array([0.5, -1.2, 2.3])
print(sigmoid(z)) # 输出:[0.62245933 0.23147522 0.90887704]
2.2 损失函数:交叉熵的二元形式
逻辑回归使用的损失函数是二元交叉熵(Binary Cross-Entropy),其数学表达式为:
L(y, ŷ) = -[y log(ŷ) + (1-y) log(1-ŷ)]
其中y是真实标签(0或1),ŷ是预测概率。
这个损失函数的特点是:
- 当y=1时,L = -log(ŷ),预测值ŷ越接近1,损失越小
- 当y=0时,L = -log(1-ŷ),预测值ŷ越接近0,损失越小
在实际应用中,我们通常会加上L2正则化项来防止过拟合,这时损失函数变为:
J(w) = -[Σ y log(ŷ) + (1-y) log(1-ŷ)] + λ||w||²
2.3 参数优化与梯度下降
逻辑回归的参数通过梯度下降法进行优化。我们需要计算损失函数对权重w和偏置b的偏导数:
∂L/∂w_j = (ŷ - y)x_j
∂L/∂b = ŷ - y
基于这些梯度,参数更新规则为:
w_j := w_j - α ∂L/∂w_j
b := b - α ∂L/∂b
其中α是学习率,控制每次更新的步长。
python复制def logistic_regression(X, y, learning_rate=0.01, num_iterations=1000):
m, n = X.shape
w = np.zeros(n)
b = 0
for i in range(num_iterations):
z = np.dot(X, w) + b
y_pred = sigmoid(z)
# 计算梯度
dw = np.dot(X.T, (y_pred - y)) / m
db = np.sum(y_pred - y) / m
# 更新参数
w -= learning_rate * dw
b -= learning_rate * db
return w, b
