一、代价函数
逻辑回归的代价函数是用来度量模型预测与实际结果之间的差异的。与线性回归使用均方误差不同,逻辑回归使用的代价函数在数学上更为复杂。为了理解逻辑回归的代价函数,首先要明白逻辑回归的假设函数:
ℎ𝜃(𝑥) = 1 / (1 + 𝑒^(-𝜃^𝑇𝑋))
这个函数将输入𝑥映射到0到1之间的概率值,表示𝑥属于正类别的概率。代价函数的定义如下:
𝐽(𝜃) = −1/𝑚 ∑ [𝑦⁽ⁱ⁾ log(ℎ𝜃(𝑥⁽ⁱ⁾)) + (1 − 𝑦⁽ⁱ⁾) log(1 − ℎ𝜃(𝑥⁽ⁱ⁾))]
其中,𝑚表示训练样本的数量,𝑥⁽ⁱ⁾是第𝑖个训练样本,𝑦⁽ⁱ⁾是该样本的实际类别标签(0或1),ℎ𝜃(𝑥⁽ⁱ⁾)是模型的预测概率。
这个代价函数的特点是:当实际类别为1且模型的预测概率接近1时,代价趋近于0;当实际类别为1但模型的预测概率接近0时,代价增加;当实际类别为0且模型的预测概率接近0时,代价趋近于0;当实际类别为0但模型的预测概率接近1时,代价增加。这个函数的设计使得模型更加关注正确分类的样本,并且对误分类的样本有明显的代价。
二、梯度下降
为了拟合逻辑回归模型的参数𝜃,使用梯度下降算法。梯度下降的目标是最小化代价函数𝐽(𝜃)。梯度下降的更新规则如下:
Repeat { 𝜃𝑗 := 𝜃𝑗 - 𝛼(1/𝑚) ∑ [(ℎ𝜃(𝑥⁽ⁱ⁾) - 𝑦⁽ⁱ⁾)𝑥𝑗⁽ⁱ⁾] (for all 𝑗) }
这个规则中,𝜃𝑗表示参数向量𝜃的第𝑗个分量,𝛼是学习率,𝑚是训练样本的数量。通过反复更新参数𝜃,梯度下降算法寻找最小化代价函数的参数值。
需要注意的是,梯度下降算法可以同时更新所有参数𝜃,而不需要使用for循环逐个更新。这种向量化的实现通常更加高效。
三、特征缩放
与线性回归一样,逻辑回归中的特征缩放也可以加速梯度下降的收敛速度。如果特征之间的范围差异很大,应用特征缩放可以确保梯度下降更快地找到最优解。
四、高级优化方法
梯度下降回顾
梯度下降是一种常见的优化算法,用于最小化代价函数。在这种方法中,需要手动选择学习率,这通常需要一些试验和调整。梯度下降在处理大规模问题时可能会收敛缓慢。
高级优化算法
除了梯度下降,还存在一些高级优化算法,它们更加复杂,但通常具有更快的收敛速度。以下是其中一些高级优化算法的介绍:
-
共轭梯度法:共轭梯度法是一种迭代方法,通常无需手动选择学习率。它通过在每次迭代中选择一个共轭的搜索方向,从而实现更快的收敛。
-
BFGS(变尺度法):BFGS是一种拟牛顿法,它通过估计Hessian矩阵的逆来更新参数。这个算法通常比梯度下降更快,但需要更多的计算资源。
-
L-BFGS(限制变尺度法):L-BFGS是BFGS的一种限制版本,它在内存消耗方面更加高效。这个算法特别适合大规模问题。
这些高级优化算法的一个主要优点是,它们通常无需手动选择学习率,因为它们内部使用线性搜索算法来自动选择适当的学习率。这使得算法更加智能,能够更快地找到最优解。
五、多元分类:一对多方法
多类别分类问题也是机器学习中的一个常见挑战。需要经常将数据分为多个不同的类别。一对多(one-vs-all)分类方法是一种应对多类别问题的策略。
一对多分类方法
一对多分类方法的核心思想是将多类别问题转化为多个二元分类问题。具体步骤如下:
-
数据集准备:首先,需要一个包含多个类别的训练集,每个类别都用不同的数值标识。
-
二元分类器:为每个类别训练一个二元分类器,将该类别标记为正向类,其他类别标记为负向类。
-
训练:使用逻辑回归或其他二元分类算法为每个类别建立一个分类器。
-
预测:在预测时,将输入数据输入所有分类器中,并选择具有最高概率的分类器作为最终预测结果。
这种方法使得多类别分类问题变得更容易解决,适用于各种应用,如邮件分类、疾病诊断和天气预测。
参考资料:
[中英字幕]吴恩达机器学习系列课程
黄海广博士 - 吴恩达机器学习个人笔记