文章目录
- 前言
- 一、生物神经元与感知器的类比
- 二、感知器
- 1、简单感知器
- 2、多层感知器
- (1)多层感知机结构
- 3、神经网络结构
- 总结
- 1、感知器的局限性
- 如何突破感知器的局限性?
- 2、感知器的应用
前言
感知器(Perceptron)是神经网络发展历程中的基础模型,由美国科学家 Frank Rosenblatt 在 1957 年提出。它模拟了生物神经元的工作方式,是构建更复杂神经网络的基石。
一、生物神经元与感知器的类比
生物神经元是神经系统的基本单元,主要由树突、细胞体和轴突组成。树突接收来自其他神经元的信号,细胞体对这些信号进行整合,当信号强度超过一定阈值时,轴突会将处理后的信号传递给其他神经元。
感知器借鉴了生物神经元的工作机制,它接收多个输入信号,对这些输入进行加权求和,然后通过一个激活函数进行处理,当输出超过一定阈值时,感知器输出一个信号。
二、感知器
1、简单感知器
由两层神经元组成的神经网络–“感知器”(Perceptron),感知器只能线性划分数据。
公式是线性代数方程组,因此可以用矩阵乘法来表达这两个公式
输出的结果与训练集标签进行损失函数计算,与逻辑回归基本一致。
神经网络的本质:通过参数与激活函数来拟合特征与目标之间的真实函数关系。但在一个神经网络的程序中,不需要神经元和线,本质上是矩阵的运算,实现一个神经网络最需要的是线性代数库。
2、多层感知器
(1)多层感知机结构
增加了一个中间层。即隐含层
神经网络可以做非线性分类的关键–隐藏层。
假设我们的预测目标是一个向量,那么与前面类似,只需要在“输出层”再增加节点即可。
(2)多层感知器偏置结点
在神经网络中需要默认增加偏置神经元(节点),这些节点是默认存在的。它本质上是一个只含有存储功能,且存储值永远为1的单元。在神经网络的每个层次中,除了输出层以外,都会含有这样一个偏置单元。
偏置节点没有输入(前一层中没有箭头指向它)。一般情况下,我们都不会明确画出偏置节点。
3、神经网络结构
输入层的节点数:与特征的维度匹配
输出层的节点数:与目标的维度匹配。
中间层的节点数:目前业界没有完善的理论来指导这个决策。一般是根据经验来设置。较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。
1、设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定;
2、神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;
3、结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。
总结
1、感知器的局限性
感知器虽然是神经网络的基础,但它存在一定的局限性:
只能处理线性可分问题:感知器只能对线性可分的数据进行分类,对于线性不可分的数据(如异或问题),感知器无法收敛到一个正确的解。
缺乏隐藏层:简单感知器没有隐藏层,这限制了它的表达能力,无法处理复杂的非线性映射。
如何突破感知器的局限性?
(1) 多层感知器(MLP)与非线性激活函数
引入隐藏层:通过叠加多个感知器层(输入层→隐藏层→输出层),形成多层网络,能够学习非线性决策边界。例如,XOR问题可以通过一个包含隐藏层的网络解决。
激活函数升级:用Sigmoid、ReLU等非线性函数替代阶跃函数,使网络具备非线性表达能力。例如:
Sigmoid函数:
ReLU函数:
(2) 反向传播算法
通过链式法则计算梯度,逐层调整权重,使多层网络的训练成为可能。这是感知器无法实现的。
(3) 多分类扩展
使用Softmax激活函数和交叉熵损失函数,将输出扩展到多类别概率分布。
2、感知器的应用
尽管存在局限性,感知器在一些简单的分类问题中仍然有应用,例如:
二分类问题:可以用于区分两个不同类别的数据,如判断邮件是否为垃圾邮件、判断图像中是否包含特定物体等。
早期神经网络的基础:感知器为后续更复杂神经网络的发展奠定了基础,许多神经网络的训练算法和结构都是在感知器的基础上发展而来的。