首页 > 编程知识 正文

感知机能实现与运算和或运算,感知机算法例题

时间:2023-05-06 20:54:31 阅读:205435 作者:2703

1.感知机概念感知机学习算法很简单,易于实现,一步一步看完就自然懂了。1.1感知机简介

Perceptron,感知机。是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,类别值取值范围={+1, -1},即Perceptron(x) = -1 或者+1

感知机对应于输入空间中将实例划分为正负两类的分离超平面,即平面一侧的实例为正实例,平面另一侧的实例就是负实例。可以知道,感知机是判别模型,即给感知机一个实例,它返回的结果会告诉你,这个实例是正实例,还是负实例,是正实例感知机就返回数值+1,如果是负实例感知机就返回-1,就这么简单。

感知机使用基于误分类的损失函数,即损失函数返回值就是你输入实例集被判别后判别错误的个数。感知机利用梯度下降法对损失函数进行极小化。

感知机是神经网络和支持向量机的基础。

1.2感知机定义f(x) = sign(w*x + b),称为感知机

其中x为输入空间,f(x)为输出空间,f(x)∈{+1, -1},w和b为感知机模型参数,即f(x)由模型参数集合{w, b}决定和表示。

w叫做权值(weight)或者权值向量(weight vector),b叫做偏置(bias),w*x表示w和x的内积

sign是符号函数: sign(x) = +1,x>=0 sign(x) = -1,x<01.3感知机的几何解释

线性方程w*x + b = 0对应特征空间中的一个超平面S,则w是超平面的法向量,b是超平面的截距。

此超平面将特征空间分割成两部分,位于超平面上下侧的特征点分别被分成正,负两类,所以超平面S称为分离超平面(Separating Hyperplane),空间中可形象表示如下:


1.4感知机学习概念

感知机f(x)=sign(w*x + b),是通过感知机学习得到的。感知机学习是通过学习训练数据集得到的。

训练数据集由实例的特征向量和类别组成,如下所示:

T={(x1, y1), (x2, y2), ..., (xN, yN)},其中y∈{+1, -1},x是特征空间中的特征值,而y是x的分类值。

感知机学习通过学习训练数据集T求得感知机模型参数w和b。

1.5感知机预测

通过感知机学习得到感知机f(x) = sign(w*x + b),其中w和b已求得。

我们输入一个新的实例x,感知机f(x)给出对应的输出类别-1或者+1,这就是感知机预测。

2.感知机学习策略2.1感知机学习的损失函数

感知机的功能是将给定的实例进行正确分类,感知机的学习策略是将输入实例集进行感知机预测后,预测错误的总个数。

比如有输入空间X=[1,3,6,8],经过感知机预测得到输出空间Y=[-1, -1, -1, +1],但是正确的输入空间应该是[-1, +1, +1, +1],则表示感知机预测错误个数=2。

感知机学习定义的损失(经验)函数就是感知机预测的错误个数,用公式表示就是


用上面的示例给出损失函数计算过程:

上面M是误分类点的集合,则M=[3, 6],则损失函数计算过程:

L(w, b) = -1 *(y2*f(x2) + y3*f(x3)) = -1 * (+1*f(3) + +1*f(6)) = -1 * (+1*-1 + +1*-1) = -1 *(-1-1) = 2

可知损失函数值=2。

2.2损失函数的连续可导

显然损失函数是非负的。如果没有误分类点,损失函数值为0。而且误分类点越少,误分类点离超平面越近,损失函数值越小。

一个特定的样本点的损失函数:在误分类时是参数w,b的线性函数,在正确分类时是0,因此给定训练数据集T,损失函数L(w,b)是w,b的连续可导函数。

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

来自:《统计学习方法》ymdlq

由于算法思路和步骤都很简单,不做详细解释,直接看下图吧

Python代码实现可以详看博客:【机器学习】【感知机-2】感知机(Perceptron)学习算法的原始形式的Python实现


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

来自:《统计学习方法》ymdlq

由于算法思路和步骤都很简单,不做详细解释,直接看下图吧。

Python代码实现可以详看博客:【机器学习】【感知机-3】感知机(Perceptron)学习算法的对偶形式的Python实现


参考文献

《统计学习方法》ymdlq

(end)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。