感知机(perceptron)是由美国学者 Frank Rosenblatt 在 1957 年提出来的,感知机是神经网络(深度学习)的起源算法,所以学习感知机的构造是神经网络和深度学习的基础。

1. 什么是感知机?

感知机接收多组输入信号,输出一个信号。这里的 “信号” 可以看为类似电流或者河流一样具备 “流动性” 的东西。和电流通过导线输送电子一样,感知机的信号也会形成流,向前方输送信息。和电流不同的是,感知机的信号只有 “通过” 和 “不通过” 两种输出。我们可以将 “通过” 定义为 +1,“不通过” 定义为 -1,这样输出就会分为两种分类:-1 和 +1,如果将输出用 $y$ 表示,则:
$$
y = \begin{cases} -1 & \text{(不通过)} \\ +1 & \text{(通过)} \end{cases}
$$
假如现在有两个输入信号 $x_1$、$x_2$ ,我们可以用下面的图片描述这个感知机:

感知机示意图

假设用 $X$ 表示所有输入信号的集合,则 $(x_1,x_2)$ 表示集合 $X$ 中的一组输入信号,这种具体的一组输入实例通常被称为特征向量(feature vector),有些书中将其表示为列向量,常写作行向量的转置:$(x_1,x_2)^T$ ,$X$ 一般被称为输入空间(input space)。

假设用 $Y$ 表示所有的输出信号的集合,则 $y$ 表示集合 Y 中的一组输出信号,$Y$ 一般被称为输出空间(output space)。$w_1$、$w_2$ 表示权重,控制着输入信号的重要程度。图中的 ○ 被称为 “神经元” 或者 “节点”。输入信号通过神经元到达输出的过程中,会被分别乘以固定的权重($w_1x_1$、$w_2x_2$)。神经元会计算传过来所有信号的总和,并将这个总和和一个固定的阈值 $ \theta $ 比较,如果超过该阈值,则输出 +1,否则输出 -1。

我们可以将这个过程表达为下面的数学公式:
$$
y = \begin{cases} -1 & (w_1x_1 + w_2x_2 \leq \theta) \\ +1 & (w_1x_1 + w_2x_2 > \theta)\end{cases}
$$

通过上面的描述可知,感知机是二分类线性模型,其输入的是实例的特征向量,输出的是实例的类别,取 +1 和 -1 两个值。感知机对于应用于输入空间中将实例划分为正负两类的分离超平面,属于判别模型。

如果我们将公式中的 $\theta$ 替换为 $-b$ ,则表达式将被表示为:
$$
y = \begin{cases} -1 & (w_1x_1 + w_2x_2 + b \leq 0) \\ +1 & (w_1x_1 + w_2x_2 + b > 0)\end{cases}
$$
其中 $b$ 被称为偏置(bias)。感知机会计算输入信号和权重的乘积,然后加上偏置,如果值大于 0,则输出 +1,否则输出 -1 。如果我们使用 sign 函数描述 y 的值,则可以对感知机做如下定义:

定义: 假设输入空间是 $X\space(X \subseteq R^n)$ ,输出空间是 $Y= \lbrace +1,-1 \rbrace $。 输入 $\boldsymbol{x} \in X$ 表示实例的特征向量,对应于输入空间的点;输出 $y \in Y$ 表示实例的类别。由输入空间到输出空间的如下函数:
$$
f(x) = sign( \boldsymbol{w} \cdot \boldsymbol{x} + \boldsymbol{b} )
$$
称为 感知机 。其中 $\boldsymbol{w}$ 和 $\boldsymbol{b}$ 为感知机的模型参数,$\boldsymbol{w} \in R^n$ 叫作权值(weight)或权值向量(weight vector),$\boldsymbol{b} \in R$ 叫作偏置(bias),$\boldsymbol{w} \cdot \boldsymbol{x}$ 表示 $\boldsymbol{w}$ 和 $\boldsymbol{x}$ 的内积。sign 为符号函数,即:
$$
sign(\boldsymbol{x}) = \begin{cases} +1, & \boldsymbol{x} \geq 0 \\ -1, & \boldsymbol{x}<0 \end{cases}
$$
感知机是一种线性分类模型,模型的假设空间是定义在特征空间中的所有线性分类模型(linear classification model)或线性分类器(linear classifier),即函数集合 $\lbrace f \mid f(\boldsymbol{x}) = \boldsymbol{w} \cdot \boldsymbol{x} + \boldsymbol{b} \rbrace$ 。

公式中 $\boldsymbol{w}$ 和 $\boldsymbol{x}$ 并不是代表一个数值,而是一组向量。函数 $f$ 可以看为多项式回归方程,而非只是简单的一元回归方程。其中 $w \cdot x = w_1x_1 + w_2x_2 + w_3x_3 + ... + w_nx_n$ 。

注:不要问我为毛 $\boldsymbol{w}$ 不用 $\overrightarrow{w}$ 表示……

2. 感知机的几何解释

线性方程 $\boldsymbol{w}\cdot \boldsymbol{x} + \boldsymbol{b} = 0$ 可以描述为 n 维特征空间 $R^n$ 中的一个超平面 $S$ 。其中 $w$ 为超平面的法向量,$b$ 为超平面的截距。超平面将特征空间划分为两个部分,分别标记为正、负两类,因此超平面 $S$ 也被称为分离超平面。

超平面是一维小于其环境空间的子空间,如果在二维空间中,超平面则是一条直线,如果是三维空间中,超平面则是一个平面,以此类推。

这里以二元回归方程为例,证明 $\boldsymbol{w}$ 为二元回归方程的法向量。首先,二元回归方程的输入为 $(x_1,x_2)$ ,其方程可以表示为:
$$
w_1x_1 + w_2x_2 + b = 0
$$
通过高中的知识,我们知道其实这个二元回归方程在坐标系里面可以描述为一条直线,现在假设有 $A \space (a_1, a_2)$ 和 $ B\space (b_1,b_2)$两个点,这两个点都在这条直线上,则可以将两个点带入方程中:
$$
\begin{cases} w_1a_1 + w_2a_2 + b = 0 \\ w_1b_1 + w_2b_2 + b = 0 \end{cases}
$$
两式相减:
$$
w1(a_1-b_1) + w2(a_2-b_2) = 0
$$
因为点 $A$ 、$B$ 在直线上,所以直线的方向向量可以用 $(a_1-b_1,a_2-b_2)$ 来表示,而 $(w_1,w_2)$ 正好是前面描述的向量 $\boldsymbol{w}$。如果用向量 $\overrightarrow{BA}$ 和 向量 $\boldsymbol{w}$ 作点积运算,则公式恰好为:$w1(a_1-b_1) + w2(a_2-b_2)$。因为结果为 0,所以这两个向量互相垂直,也就是说 $\boldsymbol{w}$ 为直线的法向量。

几何解释