深度学习---多层感知机

一.感知机

感知机是一种最简单的人工神经元模型,也是神经网络的基本构成单元之一。它由输入、权重、偏置和输出组成。感知机的输入可以是任意数量的二进制数,这些输入通过权重与偏置相加,然后通过激活函数进行非线性变换,得到一个二进制的输出结果。其中,权重用于调整每个输入的重要性,而偏置则用于调整输出的阈值。感知机的训练过程就是调整权重和偏置的过程。训练数据被送入感知机,如果感知机的输出与期望的输出不同,则通过梯度下降等优化算法来调整权重和偏置,使得感知机更准确地预测。感知机最早由美国科学家 Frank Rosenblatt 在 1957 年提出,是神经网络领域的开山鼻祖。虽然感知机只能解决线性问题,但它为神经网络的发展奠定了基础,后来的多层神经网络(即深度学习)也是在感知机的基础上发展而来。现在,感知机已经被广泛应用于模式识别、图像处理、自然语言处理和人工智能等领域。它被认为是一种强大的工具,可以模拟人脑神经元的计算机制,对于解决大规模数据分类和预测等问题有着重要的作用。

感知机的输出 x 是通过输入信号、权重和偏置经过激活函数处理后得到的结果。具体来说,感知机的输出可以表示为:

       x = f(w * x + b)

其中,w 表示权重向量,x 表示输入向量,b 表示偏置,* 表示向量的点积运算,f 表示激活函数。

在感知机中,激活函数通常使用阶跃函数(step function),它将加权和加上偏置的结果映射为二进制的输出值。阶跃函数的定义如下:

         f(z) = 1, if z > 0
         f(z) = 0, if z ≤ 0

其中,z 表示加权和加上偏置的结果。根据上述公式,当加权和加上偏置大于 0 时,输出为 1;当加权和加上偏置小于等于 0 时,输出为 0。

这样,通过调整权重和偏置的数值,并选择合适的激活函数,感知机可以实现对输入信号的分类或预测任务。

二.感知机应用

感知机可以被应用于简单逻辑电路中的与门、与非门和或门。这些逻辑门是基本的逻辑运算,通过感知机可以实现逻辑信号的处理和转换。

1. 与门(AND Gate):
与门有两个输入和一个输出。只有当所有输入都为 1 时,输出才为 1;否则,输出为 0。通过调整感知机的权重和偏置,可以实现与门的功能。

例如,我们设置权重和偏置的初值为 w1=1、w2=1,b=-2。定义阶跃函数作为激活函数,计算加权和并进行阈值判断。当加权和大于 0 时,输出为 1;否则,输出为 0。

2. 与非门(NAND Gate):
与非门是与门的逻辑取反结果。与非门有两个输入和一个输出。只有当所有输入都为 1 时,输出为 0;否则,输出为 1。通过调整感知机的权重和偏置,可以实现与非门的功能。

与非门的实现方式与与门类似,但是需要调整权重和偏置的数值。例如,我们设置权重和偏置的初值为 w1=-1、w2=-1,b=3。同样使用阶跃函数作为激活函数,计算加权和并进行阈值判断。当加权和大于 0 时,输出为 0;否则,输出为 1。

3. 或门(OR Gate):
或门有两个输入和一个输出。只要有一个输入为 1,输出就为 1;只有当所有输入都为 0 时,输出才为 0。通过调整感知机的权重和偏置,可以实现或门的功能。

例如,我们设置权重和偏置的初值为 w1=1、w2=1,b=-1。同样使用阶跃函数作为激活函数,计算加权和并进行阈值判断。当加权和大于 0 时,输出为 1;否则,输出为 0。

通过调整权重和偏置的数值,我们可以使感知机逼近并实现与门、与非门和或门的功能。这样,感知机可以用于简单逻辑电路中,处理和转换逻辑信号,实现基本的逻辑运算。

三.感知机训练过程

感知机的训练过程如下:

1. 初始化权重和阈值:开始时,将权重w和阈值θ初始化为较小的随机值或者都设置为0。

2. 随机选择训练样本:从训练数据集中随机选择一个样本作为当前的输入。

3. 计算感知机输出:将选择的输入样本与权重进行加权求和,并与阈值进行比较。如果加权和大于等于阈值,则感知机输出为1,否则为0。

4. 更新权重和阈值:根据感知机的输出和期望输出的差异,来更新权重和阈值。具体地,如果感知机输出错误(与期望输出不一致),则增加权重以使加权和变大,或者减小权重以使加权和变小。同时,也会相应地调整阈值。

5. 重复步骤2至4:重复执行步骤2至4,直到达到指定的停止条件,例如达到最大迭代次数、达到期望的收敛精度或者所有样本都被正确分类。

6. 返回训练好的模型:当训练过程结束时,返回得到的训练好的感知机模型,其中包括更新后的权重和阈值。

需要注意的是,感知机的训练过程是一个迭代的过程,通过不断地调整权重和阈值来使感知机能够正确分类样本。在训练过程中,可以使用不同的学习算法,如随机梯度下降(SGD),来更新权重和阈值。此外,感知机只适用于线性可分的问题,对于非线性可分的问题,可能需要使用更复杂的模型或者引入非线性激活函数。

四.单隐藏层--单分类

对于单隐藏层的单分类神经网络,可以使用以下公式来表示其前向传播和反向传播过程:

1. 前向传播:
   - 输入层到隐藏层:
     $Z^{[1]} = W^{[1]} \cdot X + b^{[1]}$
     $A^{[1]} = g^{[1]}(Z^{[1]})$

   - 隐藏层到输出层:
     $Z^{[2]} = W^{[2]} \cdot A^{[1]} + b^{[2]}$
     $A^{[2]} = g^{[2]}(Z^{[2]})$

其中,$X$是输入矩阵,$W^{[1]}$和$W^{[2]}$分别是隐藏层和输出层的权重矩阵,$b^{[1]}$和$b^{[2]}$分别是隐藏层和输出层的偏置向量,$g^{[1]}(\cdot)$和$g^{[2]}(\cdot)$是隐藏层和输出层的激活函数。

五.多个隐藏层多类分类

多个隐藏层多类分类问题可以使用多层神经网络进行建模。以下是一种常见的多层神经网络结构:

1. 输入层:
   输入层包含输入特征,通常是一个向量或矩阵。

2. 隐藏层:
   隐藏层由多个神经元组成,每个神经元都有一个激活函数。可以使用多个隐藏层以增加网络深度和表达能力。

3. 输出层:
   输出层包含所有可能的输出类别,对于多类分类问题,通常使用Softmax激活函数将输出转化为概率分布。

六.过拟合和欠拟合

过拟合(Overfitting)和欠拟合(Underfitting)是机器学习中常见的问题,涉及到模型在训练数据上的性能表现。

过拟合指的是模型在训练数据上表现很好,但在未见过的测试数据上表现较差。过拟合的原因通常是模型过于复杂,过度拟合了训练数据中的噪声和细节,导致对新数据的泛化能力较差。过拟合可能会导致模型出现过多的参数、过强的拟合能力,或者训练数据量不足等问题。

欠拟合指的是模型无法很好地拟合训练数据,表现较差,并且在测试数据上也没有良好的泛化能力。欠拟合的原因通常是模型过于简单,无法捕捉到数据中的复杂关系或模式。

在实践中,需要根据具体问题和数据集的情况来判断模型是否出现了过拟合或欠拟合,并采取相应的策略优化模型性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值