从二维散点到一条可验算的分类边界 | xkmchenmu Blog

从二维散点到一条可验算的分类边界

二维对数几率回归把每个样本映射为概率,再用线性方程画出类别分界。完整实验不止是调用优化函数:还要核对偏置列、交叉熵与梯度、边界方程、收敛轨迹以及数据外区域的解释范围。

二维二分类数据最适合把概率模型和几何图像放在同一张纸上。每个样本有x1、x2两个坐标以及零或一标签;模型先计算z等于θ0加θ1×1再加θ2×2,然后用Sigmoid把z映射到零与一之间。概率达到零点五时z等于零,所以分类边界满足θ0加θ1×1加θ2×2等于零。训练参数、预测概率和图上的直线由同一方程连接,任何一处不一致都能被另外两处发现。

实验起点不是优化器,而是散点与设计矩阵

先把正负样本用不同标记画出来,可以判断一条直线是否大致有机会分开两类,也能发现标签、坐标列或读取顺序是否错位。接着在两个特征左侧增加一列全一,形成包含偏置的设计矩阵X。若原始数据有m行,扩展后X的尺寸应为m乘三,参数θ应为三乘一,Xθ才会得到m个线性分数。把偏置列漏掉,边界会被强制穿过原点;增加了全一列又在模型中额外加偏置,则会重复计算常数项。

用全零参数初始化时,每个样本概率都是零点五。这个状态并不代表模型已经正确,只是为损失与梯度提供一个易检查基准:若标签中正负比例不平衡,偏置方向应首先反映总体比例;若计算出的梯度尺寸不是三乘一,转置或逐元素运算很可能写错。

交叉熵把两类样本写进同一个目标

单个样本的损失可写成负的y乘预测概率对数,再减去一减y乘一减预测概率的对数。对全部样本取平均后,梯度为X转置乘“预测减标签”再除以m。这个紧凑式同时聚合三项参数的误差方向。实现时要区分矩阵乘法与逐元素乘法;标签和预测最好都保持m乘一列向量,以免广播产生一个看似可计算、实际尺寸错误的矩阵。

检查对象 期望形状 常见异常
原始特征 m乘二 两个坐标被拼成一行
带偏置的X m乘三 全一列漏加或重复
参数θ 三乘一 行列方向导致隐式广播
预测与标签 均为m乘一 相减后意外得到m乘m
从二维散点到一条可验算的分类边界 - 二维逻辑回归闭环

画边界时应从方程求解,而不是凭图形凑线

当θ2不接近零时,可以把边界改写为x2等于负的θ0加θ1×1之和再除以θ2,在图中选两个x1端点便能画出直线。若θ2非常小,这种写法会数值不稳定,此时更适合按x2范围求x1,或用等高线绘制z等于零的位置。坐标轴范围也应由数据范围加适度边距得到;硬编码过窄范围可能把错误边界裁掉,看上去像“没有画出来”。

score = θ0 + θ1*x1 + θ2*x2;probability = 1/(1+exp(-score));boundary: score = 0

若后续加入多项式特征,模型对扩展后的特征仍然是线性的,但在原始二维平面上边界可能成为曲线。此时不能再用两个端点表示,应在网格上计算映射后的score并画零等高线。所谓“对数几率回归是线性分类器”,指的是它对所给特征线性;特征工程会改变原始空间中的几何形状。

  • 先在训练点上比较预测标签与原标签,不只看边界是否顺眼。
  • 再标出概率接近零点五的点,观察模型最不确定的区域。
  • 把边界延伸到样本范围之外时,用虚线或说明强调外推。
  • 若类别严重重叠,直线存在不等于分类问题已被充分解释。

通用优化器与梯度下降应当互相校验

可以把代价和梯度交给无约束优化器求解,也可以手写θ减学习率乘梯度的迭代。前者减少循环代码,后者能直接观察每一步损失变化。二者使用相同数据、相同损失且均正确收敛时,最终参数和边界应相近;差异很大时,不要先争论哪种算法“更好”,而应检查梯度符号、停止条件、特征尺度以及优化器是否真的读取了用户提供的梯度。

优化结束不是“函数没有报错”,而是损失有限、梯度足够小、迭代轨迹稳定,并且预测与边界能共同解释。

固定一百万次或十万次循环并不是可靠停止策略。学习率过大时,损失可能振荡或发散;过小时,又可能在预算耗尽前几乎没有前进。至少要保存损失历史,设置最大迭代作为安全上限,同时根据损失改善或梯度范数判断是否停止。两个特征尺度差异很大时,先标准化通常能改善优化路径,但标准化参数只能由训练数据估计,并在新样本上复用。

对数运算需要防止端点带来的非有限值

当z绝对值很大,直接计算Sigmoid再取对数,可能因为浮点舍入得到log零。简单给概率夹上极小上下界可以避免无穷值,但更好的实现会采用数值稳定的交叉熵形式,直接从线性分数计算损失。无论采用哪种方式,测试都应包含很大的正负分数,确认代价和梯度仍为有限数。否则小数据看似正常,特征尺度一变就会出现NaN。

  1. 用手工可算的两三个样本核对初始损失和梯度。
  2. 用有限差分检查解析梯度的方向与数量级。
  3. 分别运行优化器和手写梯度下降,比较最终损失。
  4. 把θ代回每个样本计算概率,再核对图上的边界。
  5. 改变坐标范围和样本顺序,确认绘图与训练不依赖偶然排列。

二维例子的终点不是得到一组θ,而是建立一条闭合证据链:设计矩阵规定参数怎样进入分数,交叉熵规定怎样评价分数,梯度推动参数变化,零分数方程生成边界,散点和概率又反过来验收结果。只要这五个环节能彼此对上,换成更多样本或更多特征时,仍有明确的诊断入口,而不会把全部希望寄托在一次优化函数调用上。

(0)
打赏 支付宝扫一扫 支付宝扫一扫

发表回复

登录后才能评论