《统计学习方法》笔记(二)感知机模型

前言

关于写作:

博主(暂且如此自称)是北京某高校的计算机系研究生在读,入行AI领域时间不久,正在努力进修。最近利用工作之余的时间正在学习李航博士的《统计学习方法》,一方面希望能够通过写作整理思路,另一方面,分享学习心得也希望可以和志同道合的小伙伴们共同探讨进步啦~

github传送门

GitHub - wyynevergiveup/Statistical-Learning-Method: 《统计学习方法》--李航 实现学习过程中的算法以加深理解

系列文章:

1.《统计学习方法》笔记(一) 统计学习及监督学习概论 -

2.《统计学习方法》笔记(二)感知机模型 -

3.《统计学习方法》笔记(三)K近邻法 -

4.《统计学习方法》笔记(四)朴素贝叶斯法 -

正文

2.1 综述

模型:感知机是二分类的线性分类模型,输入时实例的特征向量,输出是实例的类别{1,-1}。感知机对应于特征空间中将实例划分为正负两类的分离超平面,属于判别模型。

策略:感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。

算法:感知机算法具有简单而易实现的特点,分为原始形式和对偶形式。

感知机是1957年由Rosenblatt提出,是神经网络与支持向量机的基础。

下面我们将从模型三要素:模型、策略、算法三个方面介绍感知机模型。

2.2 感知机模型

    本节我们将介绍什么是感知机模型,以及如何理解感知机模型。

    首先,我们在考虑任何问题时总是希望先将问题形式化,因此,给出感知机模型的形式化定义:

感知机的形式化定义

    感知机模型的假设空间是定义在特征空间上的所有线性分类模型,即函数集合。

    那么,如何理解感知机模型呢?

感知机模型的几何解释

    以上解释个人感觉已经非常直观,下面我们以二维的情况进行具体分析。

    上图是一个二维坐标系,我们要找到一条直线将两类样本分开,因此可以假设直线方程为。将直线方程变形,改写为。将直线方程进一步改写成向量相乘的形式:

                                                

    令,,方程就改写为:

                                                    

    即,我们的目的就是要找到合适的和,使得代入任意正样本时,(即位于直线的上方),反之,代入任意负样本时,。其中是直线的法向量,是直线的截距。当输入的特征空间为3维时,要求的是三维空间中的一个平面,当特征空间维度更高时,已经无法找到一个几何名词去形容分离正负样本的”面“了,因而把它统称为”超平面“。

那我们要如何求得的和呢?

2.3 感知机策略

    首先需要明确的是,感知机模型只适用于可以线性可分的数据集。数据集线性可分性定义如下:

数据集线性可分性

    对于线性不可分的数据,单层perceptron将失效,比如,异或关系(XOR)。

单层perceptron为什么不能表示XOR

    为了确定模型的参数和,需要确定一个学习策略,即定义损失函数并将损失函数极小化。

    感知机模型常采用的损失函数为所有误分类点到超平面S的总距离。首先,特征空间内任意一点到超平面S的距离为:

                                                                

    这里是的范数。对于误分类样本,与异号,且,因此,误分类点到超平面S的距离为:

                                                                

    这样,假设超平面S的误分类点集合为M,那么所有误分类点到超平面S的总距离为:

                                                                

    而不考虑,就得到了感知机学习的损失函数。

* 为什么可以不考虑?

答:1.正系数不影响优化方向,对于线性可分数据集最后这个损失都是0; 分母用来归一化法向量,不归一化也一样用,感知机的解本身不唯一。总结来说,这个系数只会影响过程而不影响结果,去掉这个系数可以减少计算量。

感知机学习的损失函数

2.4 感知机算法

    感知机学习算法求解的其实是最优化问题,问题的形式化表述如下。

最优化问题形式化表述

2.4.1 感知机学习算法的原始形式

    这里提到一个”随机梯度下降“(SGD)的概念,实际在求解最优解的过程中使用的是随机梯度下降的方式,具体使用过程描述如下。

随机梯度下降
感知机学习算法的原始形式

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

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

具体的算法描述如下。

感知学习算法的对偶形式

Gram矩阵:由于对偶形式中训练实例仅以内积形式出现。为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是Gram矩阵。


对偶形式有什么用?

在训练过程中,不再需要每次迭代都更新权重向量,而只需更新一个数字,同时在判断是否为误分类样本时,可以通过查表的方式得到简化计算,运算量为O(N) (原始形式为O(n))。但是,在实际实现过程中发现,计算Gram矩阵本身的开销也很大O(N*N*n)。

对偶感知机有用的场景必须满足以下下两个条件:

    当 N 较小,O(N) < O(n); (有过拟合的风险)

    实际所需迭代次数较多(难分类),计算Gram矩阵的开销可以忽略。

所以,个人认为对偶形式可用性其实并不好。

你可能感兴趣的:(《统计学习方法》笔记(二)感知机模型)