@@ -6,7 +6,7 @@
"source": [
"# 感知机\n",
"\n",
"感知机(Perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1 )。感知机对应于输入空间中将实例划分为两类的分离超平面,感知机旨在求出该超平面。为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。感知机的学习算法具有简单而易于实现的优点,感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型。\n",
"感知机(Perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取`+1`或`-1` )。感知机对应于输入空间中将实例划分为两类的分离超平面,感知机旨在求出该超平面。为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。感知机的学习算法具有简单而易于实现的优点,感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型。\n",
"\n",
"\n"
]
@@ -17,13 +17,13 @@
"source": [
"## 1. 生物学、心理学解释\n",
"\n",
"心理学家唐纳德·赫布(Donald Olding Hebb)于1949年提出赫布理论,该理论能够解释学习的过程中脑中的神经元所发生的变化。赫布理论描述了突触可塑性的基本原理,即突触前神经元向突触后神经元的持续重复的刺激,可以导致突触传递效能的增加:\n",
"心理学家唐纳德·赫布(Donald Olding Hebb)于1949年提出` 赫布理论` ,该理论能够解释学习的过程中脑中的神经元所发生的变化。赫布理论描述了突触可塑性的基本原理,即突触前神经元向突触后神经元的持续重复的刺激,可以导致突触传递效能的增加:\n",
"> 当细胞A的轴突足以接近以激发细胞B,并反复持续地对细胞B放电,一些生长过程或代谢变化将发生在某一个或这两个细胞内,以致A作为对B放电的细胞中的一个,导致突触传递效能的增加。\n",
"\n",
"\n",
"\n",
"\n",
"心理学家弗兰克·罗森布拉特(Frank Rosenblatt)于1957年提出了感知机,它作为简化的数学模型解释大脑神经元如何工作:它取一组二进制输入值(附近的神经元),将每个输入值乘以一个连续值权重(每个附近神经元的突触强度),并设立一个阈值,如果这些加权输入值的和超过这个阈值,就输出1,否则输出0,这样的工作原理就相当于神经元是否放电。\n",
"心理学家弗兰克·罗森布拉特(Frank Rosenblatt)于1957年提出了` 感知机` ,它作为简化的数学模型解释大脑神经元如何工作:它取一组二进制输入值(附近的神经元),将每个输入值乘以一个连续值权重(每个附近神经元的突触强度),并设立一个阈值,如果这些加权输入值的和超过这个阈值,就输出1,否则输出0,这样的工作原理就相当于神经元是否放电。\n",
"\n",
"\n",
"感知机并没有完全遵循赫布理论,**但通过调输入值的权重,可以有一个非常简单直观的学习方案:给定一个有输入输出实例的训练集,感知机应该「学习」一个函数:对每个例子,若感知机的输出值比实例低太多,则增加它的权重,否则若设比实例高太多,则减少它的权重。**\n",
@@ -61,7 +61,7 @@
"metadata": {},
"source": [
"### 2.1 几何解释 \n",
"感知机模型是线性分类模型,感知机模型的假设空间是定义在特征空间中的所有线性分类模型,即函数集合$\\{ f | f(x)=w·x+b\\}$。线性方程 $w·x+b=0$对应于特征空间$\\mathbb{R}^n$中的一个超平面$S$,其中$w$是超平面的法向量,$b$是超平面的截距。这个超平面把特征空间划分为两部分,位于两侧的点分别为正负两类。超平面$S$称为分离超平面,如下图:\n",
"感知机模型是` 线性分类模型` ,感知机模型的假设空间是定义在特征空间中的所有线性分类模型,即函数集合$\\{ f | f(x)=w·x+b\\}$。线性方程 $w·x+b=0$对应于特征空间$\\mathbb{R}^n$中的一个超平面$S$,其中$w$是超平面的法向量,$b$是超平面的截距。这个超平面把特征空间划分为两部分,位于两侧的点分别为正负两类。超平面$S$称为分离超平面,如下图:\n",
"\n",
"\n",
"### 2.2 生物学类比\n",
@@ -77,7 +77,7 @@
"\n",
"假设训练数据集是 **线性可分**,感知机学习的目标是求得一个能够将训练数据的正负实例点完全分开的分离超平面,即最终求得参数$w, b$。这需要一个学习策略,即定义(经验)损失函数并将损失函数最小化。\n",
"\n",
"损失函数的一个自然的选择是误分类的点的总数。但是这样得到的损失函数不是参数$w, b$的连续可导函数,不宜优化。损失函数的另一个选择是误分类点到分类面的距离之和。\n",
"损失函数的一个自然的选择是误分类的点的总数,但是这样得到的损失函数不是参数$w, b$的连续可导函数,不宜优化。损失函数的另一个选择是误分类点到分类面的距离之和。\n",
"\n",
"首先,对于任意一点$x$到超平面的距离([参考资料](https://www.cnblogs.com/graphics/archive/2010/07/10/1774809.html))为\n",
"$$\n",
@@ -88,11 +88,11 @@
"\n",
"这样,假设超平面$S$的总的误分类点集合为$\\mathbf{M}$,那么所有误分类点到$S$的距离之和为\n",
"$$\n",
"-\\frac{1}{||w||} \\sum_{x_i \\in M} y_i (w \\cdot x_i + b)\n",
"-\\frac{1}{||w||} \\sum_{x_i \\in \\mathbf{ M} } y_i (w \\cdot x_i + b)\n",
"$$\n",
"不考虑$1/||w||$,就得到了感知机学习的损失函数\n",
"$$\n",
"L = - \\sum_{x_i \\in M} y_i (w \\cdot x_i + b)\n",
"L = - \\sum_{x_i \\in \\mathbf{ M} } y_i (w \\cdot x_i + b)\n",
"$$\n",
"\n",
"### 3.1 经验风险函数\n",
@@ -111,7 +111,7 @@
"* 如果没有误分类点,那么$L(w,b)$为0\n",
"* 误分类点数越少,$L(w,b)$值越小\n",
"\n",
"一个特定的损失函数: 在误分类时是参数$w,b$的线性函数,在正确分类时该损失函数是0。因此,给定训练数据集T, 损失函数$L(w,b)$是$w,b$的连续可导函数。\n"
"该损失函数 在误分类时是参数$w,b$的线性函数,在正确分类时该损失函数是0。因此,给定训练数据集$\\mathbf{T}$, 损失函数$L(w,b)$是$w,b$的连续可导函数。\n"
]
},
{
@@ -121,7 +121,11 @@
"## 4. 感知机学习算法\n",
"\n",
"\n",
"最优化问题:给定数据集$\\mathbf{T} = \\{(x_1,y_1), (x_2, y_2), ... (x_N, y_N)\\}$,其中$x_i \\in \\mathbb{R}^n$, $y_i \\in \\{-1, +1\\},i=1,2...N$,求参数$w,b$,使其成为损失函数的解,其中$\\mathbf{M}$为误分类数据的集合:\n",
"最优化问题:给定数据集$\\mathbf{T} = \\{(x_1,y_1), (x_2, y_2), ... (x_N, y_N)\\}$,其中\n",
"* $x_i \\in \\mathbb{R}^n$\n",
"* $y_i \\in \\{-1, +1\\},i=1,2...N$\n",
"\n",
"求参数$w,b$,使其成为损失函数的解,其中$\\mathbf{M}$为误分类数据的集合:\n",
"\n",
"$$\n",
"min_{w,b} L(w, b) = - \\sum_{x_i \\in \\mathbf{M}} y_i (w \\cdot x_i + b)\n",