感知机
一种最简单的人工神经元模型,也是最早期的神经网络模型之一。它由美国学者 Frank Rosenblatt 在 1957 年提出,是一种用于二元分类的线性分类器。
感知机接收多个输入,每个输入都有一个对应的权重,然后将输入和权重的乘积相加,并加上偏差(也称为阈值)。最后,将这个结果通过一个阈值函数(通常是阶跃函数)进行转换,输出一个二元的分类结果。
y
=
{
1
,
if
∑
i
w
i
x
i
+
b
>
0
0
,
otherwise
y=\left\{\begin{array}{ll} 1, & \text { if } \sum_{i} w_{i} x_{i}+b>0 \\ 0, & \text { otherwise } \end{array}\right.
y={1,0, if ∑iwixi+b>0 otherwise
训练过程就是调整权重和偏差,使得感知机能够正确地分类尽可能多的训练样本。通常使用梯度下降等优化算法来更新权重和偏差,以最小化分类误差。缺点就是无法处理线性不可分的数据集
与神经元的区别
神经元和感知机是神经网络的基本组成单元,主要有以下几个方面区别:
- 激活函数:
- 感知机使用阶跃函数(Step Function)作为激活函数,输出值为 0 或 1,表示神经元的激活状态。
- 神经元通常使用非线性激活函数,如sigmoid、ReLU、tanh等,这些函数可以引入非线性因素,增加神经网络的表达能力。
- 输入输出:
- 感知机的输入和输出都是二进制的,即0或1。
- 神经元的输入和输出可以是实数,这样可以处理更广泛的数据类型。
- 连接权重:
- 感知机的连接权重是固定的,是训练过程中学习到的参数。
- 神经元的连接权重是可以调整的,通过训练过程中的反向传播算法来学习得到。
- 结构:
- 感知机是一种单层神经网络结构,输入层与输出层之间没有隐藏层。
- 神经元是神经网络的基本组成单元,可以存在于输入层、隐藏层或输出层,可以构成单层或多层的神经网络结构。
- 使用场景:
- 感知机主要用于二分类问题,例如逻辑回归。
- 神经元可以应用于各种类型的问题,包括分类、回归、聚类等,并且可以构建更复杂的神经网络结构,如多层感知机、卷积神经网络、循环神经网络等,以适应不同的任务需求。
阶跃函数(Step Function)
一种最简单的激活函数,也称为单位阶跃函数(Unit Step Function),通常用于感知机等简单的神经网络模型中
阶跃函数的定义如下:
y = { 1 , if x < 0 0 , if x ≥ 0 y=\left\{\begin{array}{ll} 1, & \text { if } x < 0 \\ 0, & \text { if } x \ge 0 \end{array}\right. y={1,0, if x<0 if x≥0
阶跃函数将输入值按照阈值0进行分类,当输入值小于0时输出0,大于等于0时输出1。因此,阶跃函数的输出是一个阶梯状的二值信号,这也是它名字的由来
阶跃函数的图像是一条从0突变到1的阶梯,没有平滑的过渡。但是,由于阶跃函数在0点处不连续,导致其在反向传播中无法计算梯度,因此在深度学习中较少使用,而更常见的选择是连续可微的激活函数,如sigmoid、ReLU等。
多层感知机(Multilayer Perceptron,MLP)
一种基于前馈神经网络结构的人工神经网络模型
它由输入层、至少一个隐藏层和输出层组成,每个层都由多个神经元组成,并且层与层之间是全连接的。
在多层感知机中,每个神经元都与上一层的所有神经元相连,每条连接都有一个权重,还有一个偏差与每个神经元相关联。神经元的输入是来自上一层神经元输出的加权和,经过一个激活函数的非线性转换后,传递到下一层神经元。
多层感知机之所以称为“多层”,是因为它具有一个或多个隐藏层,这些隐藏层允许模型学习更加复杂的非线性关系。通过调整隐藏层的大小和数量,以及选择合适的激活函数,多层感知机可以适应各种复杂的数据模式和任务。
训练多层感知机通常使用反向传播算法,通过最小化损失函数来调整网络中的权重和偏差,以便使模型的输出尽可能接近目标值。多层感知机在各种任务中都表现出色,如分类、回归、聚类等,是深度学习领域最基础、最常用的神经网络模型之一。