# 学习策略的推导

策略是指按照什么样的准则学习或者选择最优的模型。\
感知机是判别模型，它通过学习得到一个超平面，这个超平面将样本分为正负两类。\
使用的策略为：**使误分类的点到超平面的距离之和最小**

令M为误分类的点的集合，则损失函数为：

$$
\begin{aligned}
L(w, b) = \sum_{x_i \in M}dis(x_i)  && {1}
\end{aligned}
$$

点$$x_0$$到超平面$$y = w \cdot x + b$$的距离为：

$$
\begin{aligned}
dis(x_0) = \frac {|w \cdot x_0 + b|}{||w||} && {2} \\
 = \frac {|y_0 (w\cdot x_0 + b)|}{||w||}    && {3} \\
 = \frac { - y_0 (w\cdot x_0 + b)}{||w||}   && {4}
 \end{aligned}
$$

公式说明：\
1\. 公式（1）：点到超平面的距离公式，$$||w||$$是$$w$$的$$L_2$$范数\
2\. 公式（2）：y = -1或1 3. 公式（3）：由感知机模型的定义可知，如果$$x_0$$是误分类的点，即$$x_0 \in M$$， 则$$w\cdot x_0 + b$$与$$y_0$$符号相反，即$$y_0 (w\cdot x_0 + b) < 0$$

结合公式（1）和公式（4）得：

$$
\begin{aligned}
L(w, b) = \sum_{x_i \in M}\frac { - y_i (w\cdot x_i + b)}{||w||}   && {5}
\end{aligned}
$$

不考虑公式（5）中的$$||w||$$，得到最终的损失函数公式如下：

$$
\begin{aligned}
L(w, b) = - \sum_{x_i \in M}y_i (w \cdot x_i + b)  && {6}
\end{aligned}
$$

## 为什么公式（5）不考虑分母$$||w||$$?

感知机的算法过程需要对目标函数求导。\
公式（5）的求导结果为：

$$
\begin{aligned}
\nabla_wL(w,b) = - \frac{1}{||w||}\sum_{x_i \in M}y_ix_i \\
\nabla_bL(w,b) = - \frac{1}{||w||}\sum_{x_i \in M}y_i && {7}
\end{aligned}
$$

||w||为w的长度，大小始终非负。\
从公式（7）可以看出，||w||的存在，不影响梯度的方法，仅影响梯度下降的步长。\
对于感知机梯度下降法的迭代过程，**它只要求每次移动的方向是正确的，并不care移动的步长。**\
所以||w||是否存在不影响感知机算法的最终结果。为什么简化计算，就在目标函数中去掉了分母||w||。\
每次迭代不care步长，正是在cs229中被置疑的地方。
