https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css
👾 Day 2: KNN
1️⃣【技术债与演进动机】The Technical Debt & Evolution
之前的算法无法处理线性不可分数据,导致泛化能力差。感知机通过引入决策边界,将分类问题转化为优化问题。
2️⃣【直觉建立】Visual Intuition
想象一条直线(或超平面)将两类点分开。权重向量 $w$ 决定直线的方向,偏置 $b$ 决定直线的位置。
🎬 B 站搜索:感知机 直观解释
3️⃣【符号解码字典】The Symbol Decoder
$w$ → self.weights (权重向量,shape: [d])
$b$ → self.bias (偏置标量,shape: [])
$x$ → input_tensor (输入样本,shape: [d])
$y$ → label (标签,值域:{-1, +1})
$\sign(\cdot)$ → np.sign() (符号函数)
$\xi$ → margin (间隔,用于更新步长)
4️⃣【核心推导】The Math
### 感知机预测函数
$$f(x) = w \cdot x + b$$
其中 $\cdot$ 表示向量点积。
### 损失函数( hinge loss 的简化形式)
$$L(w, b) = -\sum_{x_i \in M} y_i (w \cdot x_i + b)$$
$M$ 是误分类点集合。
### 梯度下降更新规则
$$w \leftarrow w + \eta \cdot y_i \cdot x_i$$
$$b \leftarrow b + \eta \cdot y_i$$
其中 $\eta$ 是学习率。
5️⃣【工程优化点】The Optimization Bottleneck
全量梯度下降需要遍历所有样本,复杂度 $O(N \cdot d)$。现代框架使用 mini-batch SGD 加速。
6️⃣【今日靶机】The OJ Mission
🎯 任务:cd exercises/ && python3 day2_task.py
实现感知机的 forward 和 update 函数,在 XOR 数据集上验证无法收敛(线性不可分)。