1.什么是感知机

感知机是一种线性分类模型,属于判别模型。感知机模型的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数


2.感知机学习策略

2.1 数据集的线性可分性

给定一个数据集

,其中,

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_02

,

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_03

,

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_04

,如果存在某个超平面

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_05

 ,  

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_06

 能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_07

的实例 

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_08

 ,有

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_09

,对所有

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_10

的实例

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_11

,有

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_12

,则称数据集

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_13

为线性可分数据集。

2.2 损失函数

损失函数的一个自然选择是五分类点的总数。但是,这样的损失函数不是参数

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_14

的连续可到函数,不易优化。损失函数的另一个选择是误分类点到超平面

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_15

的总距离,这是感知机所采用的。

损失函数定义为:.

                                    

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_16

3.感知机学习算法

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

感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先,任意选取一个超平面

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_17

,然后用梯度下降法不断地极小化目标函数。极小化过程中不是一次使

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_18

中所有误分类点地梯度下降,而是一次随机选取一个误分类点使其梯度下降。假设误分类点集合

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_19

是固定的,那么损失函数

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_20

的梯度由                                     

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_21

                                     

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_22

 

 给出。

随机选取一个误分类点

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_23

,对

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_24

进行更新:

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_25

 

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_26

 式中

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_27

是步长,在统计学习中又称为学习率。这样通过迭代可以期待损失函数

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_28

不断减小,直到为0。

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

对偶形式的基本想法是,将

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_29


感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_30

表示为实例

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_31

和标记

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_32

的线性组合的形式,通过求解其系数而求得

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_29

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_30

不失一般性,在上面算法中可以假设初始值

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_17

均为0。对误分类点

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_36

通过

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_25

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_26

逐步修改

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_39

,设修改n次,则

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_39

关于

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_36

的增量分别是

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_42


感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_43

,这里

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_44

。这样,从学习过程不难看出,最后学习到的

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_39

可以分别表示为:

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_46

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_47

这里,

感知器 梯度下降法 python 激活函数 感知机梯度下降_感知机_48


感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_49

时,表示第

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_50

个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。话句话说,这样的实例对学习结果影响最大。

 

 ★

感知机模型变为:

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_51

参数更新(梯度下降):     

感知器 梯度下降法 python 激活函数 感知机梯度下降_损失函数_52

感知器 梯度下降法 python 激活函数 感知机梯度下降_误分类_53