感知机与BP神经网络10-01

一、感知机

1、感知机的原理
感知机是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,分别取+1+1和−1−1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。
感知机只适合于线性可分的数据,所以它是一个线性模型。假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面。如果是非线性可分的数据,则最后无法获得超平面。
2、感知机模型
感知机是二分类的线性分类模型,两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化(最优化)。
定义(感知机):
假设输入空间(特征向量)是 χ⊆Rn,输出空间为Y={+1,−1},输入x⊆χ表示实例的特征向量,对应于输入空间的点;输出 y⊆Y表示实例的类别,则由输入空间到输出空间的表达形式为:
损失函数
假设训练数据线性可分,为了找到这个平面需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。为此,我们首先计算任意一点x0到超平面S的距离:
在这里插入图片描述
这里,||w||是w的L2范数。
其次,对于误分类数据来说
在这里插入图片描述
损失函数是所有误分类点的集合:
在这里插入图片描述
感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数.感知机模型选择的是采用随机梯度下降,这意味着我们每次仅仅需要使用一个误分类的点来更新梯度。

二、BP神经网络
1、基本思想
BP神经网络是一种后向传播学习的前馈型神经网络。BP神经网络模型拓扑结构包括输入层、隐层和输出层。
BPNN的前馈型神经网络是一种结构,指在处理样本的时候,从输入层输入,向前把结果输出到第一隐含层,然后第一隐含层将接受的数据处理后作为输出,该输出作为第二隐含层的输入,以此类推,直到输出层的输出为止。
反向传播是一种学习算法,通过比较输出层的实际输出和预期的结果,得到误差,然后通过相关的误差方程式调整最后一个隐含层到输出层之间的网络权重,之后从最后一个隐含层向倒数第二隐含层进行误差反馈,调整他们之间的网络权重,以此类推,直到输入层与第一隐含层之间的网络权重调整为止。

在这里插入图片描述
从图 可以看出,一个神经网络包括输入层、隐含层(中间层)和输出层。输入层神经元个数与输入数据的维数相同,输出层神经元个数与需要拟合的数据个数相同,隐含层神经元个数与层数就需要设计者自己根据一些规则和目标来设定。在深度学习出现之前,隐含层的层数通常为一层,即通常使用的神经网络是3层网络。
2、神经网络的特点
a.神经元按照层来布局。最左边的层叫做输入层,负责接收输入数据;最右边的层叫输出层,我们可以从这层获取神经网络输出数据。输入层和输出层之间的层叫做隐藏层,因为它们对于外部来说是不可见的;
b.同一层的神经元之间没有连接;
c.第N层的每个神经元和第N-1层的所有神经元相连,第N-1层神经元的输出就是第N层神经元的输入;
d.每个连接都有一个权值。

三、感知器与BP神经网络代码实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述