感知机学习小结

什么是感知机

  • 是一种人工神经网络

       感知机可以通过数学统计学方法完成对函数的估计或近似,能在外界信息的基础上改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能。

  • 是一种最简单形式的前馈神经网络

       感知机模型的参数从输入层向输出层单向传播,整个网络中无反馈。感知机是最简单形式是因为只包含一层传播。

  • 是一种二元线性分类器

       感知机的输出结果只有+1 和–1二值,所以说感知机是一个二元分类器;

       在二维空间中,感知机的模型就是一条直线,将平面中的正负样本点分离成两份,在三维中,感知机的模型就是一个平面,将空间中的正负样本点分离成两份,放到更高维的空间中,感知机的模型就是一个超平面;

       这也就是说,如果在二维空间中,不存在直线刚好将正负样本点分离成两份,在三维空间中,不存在平面将空间中的正负样本点分离成两份,那么你的数据就无法使用感知机模型;

       感知机的使用前提是数据本身线性可分

感知机模型

   假设我们有n个样本,每个样本包含m维输入特征和一个二元类别输出,如下所示:

(x^{(1)}_{1}, x^{(2)}_{1}, x^{(3)}_{1}, …, x^{(m)}_{1}, y_{1}), (x^{(1)}_{2}, x^{(2)}_{2}, x^{(3)}_{2}, …, x^{(m)}_{2}, y_{2}),….(x^{(1)}_{n}, x^{(2)}_{n}, x^{(3)}_{n}, …, x^{(m)}_{n}, y_{n})

   其中,(x^{(1)}_{1}, x^{(2)}_{1}, x^{(3)}_{1}, …, x^{(m)}_{1}, y_{1}) 代表一个样本,x^{(1)}_{1}表示样本的一个输入特征,其下标表示这是第几个样本,上标表示这是这个样本的第几个输入特征;y_1 表示样本的输出,其下标表示这是第几个样本;

   我们的目的是找到这样一个超平面,即:

\theta_{0}+\theta_{1}x^{(1)}+\theta_{2}x^{(2)}+…+\theta_{m}x^{(m)}=0

   其满足对于所以有的正样本:\theta_{0}+\theta_{1}x^{(1)}+\theta_{2}x^{(2)}+…+\theta_{m}x^{(m)}>0 ,对于所有的负样本:\theta_{0}+\theta_{1}x^{(1)}+\theta_{2}x^{(2)}+…+\theta_{m}x^{(m)}<0 ;从而得到线性可分。如果数据线性可分,这样的超平面一般都不是唯一的,也就是说感知机模型可以有多个解。

   简化超平面:将 \theta_{1}x^{(1)}+\theta_{2}x^{(2)}+…+\theta_{m}x^{(m)} 记为向量 (\theta_{1}, \theta_{2}, \theta_{3}, …, \theta_{m}) 与输入特征向量 (x^{(1)}, x^{(2)}, x^{(3)}, …, x^{(m)}) 的内积,可得超平面为:

\theta_{0}+(\theta_{1}, \theta_{2}, \theta_{3}, …, \theta_{m}) \cdot (x^{(1)}, x^{(2)}, x^{(3)}, …, x^{(m)})=0

   将 \theta_{0} 记为 b (偏置 bias),将 (\theta_{1}, \theta_{2}, \theta_{3}, …, \theta_{m}) 记做 w (权值 weight),可得超平面为:

w \cdot x + b = 0

   所以,我们将感知机模型定义为:

f(x) = sign(w \cdot x+b)

   其中:

sign(x)=\begin{cases} +1 & x \geq 0 \\-1 & x<0\end{cases}

感知机损失函数

   我们知道了感知机模型,我们还需要评价感知机模型的方法,也就是损失函数。我们将所有误分类点到超平面的总距离作为感知机模型的损失函数

   首先我们知道空间 R 中任一点 x 到平面 S 的距离是:

\frac{1}{||w||} |w \cdot x + b|

   其中:||w||wL_2 范数 (L_2 范数是指向量各元素的平方和然后求平方根)。

   接下来,我们假设所有误分类点的集合为 M ,因为当w\cdot x+b>0时,=y=-1,而当w \cdot x+b<0时,=y=+1 。所以对于误分类点来说其到平面 S 的距离可写作:

-\frac{1}{||w||} y(w \cdot x + b)

   那么所有误分类点 M 到超平面 S 的总距离为:

-\frac{1}{||w||} \sum_{x \in M}{y(w \cdot x + b)}

   不考虑-\frac{1}{||w||} ,我们就得到了感知机学习的损失函数。

L(w,b)=-\sum_{x \in M}{y(w \cdot x + b)}

感知机学习算法

   我们知道了评价感知机模型的方法,也就是损失函数。那么我们对于模型的优化也就是求解损失函数的极小化。

   求解w, b , 使其为以下损失函数极小化问题的解:

min_{w,b}L(w,b)=-\sum_{x \in M}{y(w \cdot x + b)}

   我们采用随机梯度下降法求解损失函数极小化问题。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

   我们知道对于误分类集合M固定时,那么损失函数L(w,b)的梯度为:

\nabla_{w}L(w,b)=-\sum_{x\in M}yx

\nabla_{b}L(w,b)=-\sum_{x\in M}y

   我们每次随机选取一个误分类点 (x_{i}, y_{i})w, b 进行更新,那么对w, b 的更新为:

w\leftarrow w+\eta y_{i}x_{i}

b \leftarrow b+\eta y_{i}

   其中\eta (0 < \eta \leq 1) 是步长,在机器学习中又称为学习率(learning rate)。

   具体的训练步骤如下:

   (1) 任意选取平面S_{0} ,使用 (w_{0}, b_{0}) 表示平面 S_{0} ;

   (2) 在误分类点集M 中选取一个误分类点 (x_{i}, y_{i})

   (3) 对(w, b ) 进行一次梯度下降,即:

     w\leftarrow w +\eta y_{i}x_{i}

     b \leftarrow b +\eta y_{i}

   (4) 使用新平面 S 判断是否任有误分类点,如有跳转至第二步,如无即完成模型训练;

   这种学习算法易于理解,可直观解释为:当存在样本点被误分类时,就调整分离超平面的位置也就是(w,b),使分离超平面超误分类点的一侧移动,以减少该误分类点与分离超平面间的距离,直至分离超平面越过该误分类点使其被正确分类。

   此学习算法为感知机学习的基本算法,对应于后面将提到的对偶形式,称为感知机学习算法的原始形式。

感知机学习算法的对偶形式

   感知机学习算法的对偶形式相较与原始形式来说,要难理解一些。但是如果你已经完全理解原始形式,那么对偶形式也很好理解;如果你对于原始形式还不是很理解,我建议完全消化了原始形式再来看对偶形式。

   从某种角度来说,可以认为对偶形式是原始形式数学层面的优化,其存在的意义在于优化感知机学习算法的学习效率。

   其实也不尽然,对偶形式不仅仅是数学层面的优化,其基本思路是能够解释得通的,而且这个思路在其它机器学习算法中是可以沿用的。本节将尽可能解释其基本思路。

   首先,在原始算法中我们使用 (w, b) 来表示最终的分离超平面 S ,通过分析原始形式的迭代过程,也就是:

w\leftarrow w+\eta y_{i}x_{i}

b \leftarrow b+\eta y_{i}

   我们知道,每次对于 w 的更新是在原 w 的基础上加上了某一个误分类点的输入特征、输出特征与学习率 \eta 的乘积,每次对于 b 的更新是在原 b 的基础上加上了某一个误分类点的输出特征与学习率 \eta 的乘积,(w, b) 每次迭代的增量分别是 \eta y_{i}x_{i}\eta y_{i}

   那么我们可以认为,(w, b) 最终由初始 (w_{0}, b_{0}) 加上增量总和组成, (w, b) 的增量总和可以使用 \sum_{i=1}^{N}a_{i}y_{i}x_{i}\sum_{i=1}^{N}a_{i}y_{i} 来分别表示,这里的 a = {(a_{1}, a_{2}, a_{3},… ,a_{n})}^T = {(n_{1}\eta, n_{2}\eta, n_{3}\eta,… ,n_{n}\eta)}^T ,n_{i} 为迭代过程中样本集中第 i 个样本共被选中几次进行梯度下降.

   综上所诉,可以用以下公式来表示(w, b) :

w = w_{0} + \sum_{i=1}^{N}a_{i}y_{i}x_{i}

b = b_{0} + \sum_{i=1}^{N}a_{i}y_{i}

   因为, (w_{0}, b_{0}) 为随机选定的初始分离超平面,可令初始值 w_{0},b_{0} 均为0,那么(w, b) 为:

w = \sum_{i=1}^{N}a_{i}y_{i}x_{i}

b = \sum_{i=1}^{N}a_{i}y_{i}

   那么,感知机模型 f(x) = sign(w \cdot x+b) 被重新定义为:

f(x) = sign( \sum_{i=1}^{N}a_{i}y_{i}x_{i} \cdot x+b)

   我们求解的值由 (w, b) 变更为 (a, b)

   具体的训练步骤如下:

   (1) 令 (a, b) 均为0;

   (2) 在误分类点集M 中选取一个误分类点 (x_{i}, y_{i})

   (3) 对(a, b ) 进行一次更新,即:

     a_{i}\leftarrow a_{i}+\eta
     b \leftarrow b+\eta y_{i}

   (4) 使用新平面S_{1} 判断是否任有误分类点,如有跳转至第二步,如无即完成模型训练;

   那么,为什么说对偶形式相对于原始形式计算速度更快呢??

   这是因为,在原始形式中,每次迭代 (w, b) ,我们要计算 n(样本数量)次 w \cdot x ,这里的计算量非常大;而在对偶形式中,观察模型函数可以看到,我们涉及到的内积计算是 x_{i} \cdot x ,我们可以事先计算出训练集中样本之间的内积并以矩阵的形式存储,这个矩阵就是所谓的 Gram 矩阵:

     G = [x_{i} \cdot x_{j}]_{N \times N}

那么每次迭代过程中都不再涉及内积计算了,直接从 Gram 矩阵获取。这就是为什么说对偶形式相对于原始形式计算速度更快的原因。

总结

   感知机算法是一个简单易懂的机器学习算法,但是麻雀虽小五脏俱全,其所涉及到的学习方法、损失函数求解以及优化方法是机器学习的核心思想。也是支持向量机、神经网络等算法的基石。虽说现在的实用价值不高了,但是对感知机算法的融会贯通会让你更容易理解在此基础上发展的更为复杂的其它算法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266