感知机与多层感知机

感知机

感知机是一种最基本的神经网络模型 ,用于二分类任务的线性分类器,是神经网络和深度学习的基础。感知机通过调整权重来学习输入数据的特征,并进行分类。

感知机的基本构成

  1. 输入层:

    • 包含多个输入节点,每个节点代表一个输入特征。输入向量通常表示为
      x = [ x 1 ​ , x 2 ​ , … , x n ​ ] 。 x=[x 1 ​ ,x 2 ​ ,…,x n ​ ]。 x=[x1​,x2​,,xn]
  2. 权重:

    • 每个输入特征对应一个权重,这些权重通过训练进行调整。
  3. 偏置:

    • 一个额外的参数 𝑏,用来调整决策边界的位置。
  4. 激活函数:

    • 感知机通常使用阶跃函数作为激活函数,即将线性组合的结果转换为输出。阶跃函数定义为:
      f ( z ) = { 1 if  z ≥ 0 0 if  z < 0 f(z) = \begin{cases} 1 & \text{if } z \geq 0 \\ 0 & \text{if } z < 0 \end{cases} f(z)={10if z0if z<0

    • 其中
      z = w ⋅ x + b z=w⋅x+b z=wx+b

工作原理

  1. 计算加权和

    • 对输入向量和权重向量进行线性组合,加上偏置:
      z = w ⋅ x + b = i = 1 ∑ n ​ w i ​ x i ​ + b z=w⋅x+b= i=1 ∑ n ​ w i ​ x i ​ +b z=wx+b=i=1nwixi+b
  2. 应用激活函数

    • 将计算结果 𝑧 通过激活函数 𝑓(𝑧),得到输出 𝑦^。
  3. 预测输出

    • 输出 𝑦^ 为1或0,表示两个类别之一。

感知机的训练

训练感知机的目标是找到一组权重和偏置,使得模型在给定的训练数据上表现良好。训练过程通常使用感知机学习算法(Perceptron Learning Algorithm),包括以下步骤:

  1. 初始化权重和偏置:

    • 通常将权重和偏置初始化为零或小的随机数。
  2. 迭代训练:

    • 对每个训练样本,计算预测输出。

    • 根据预测输出和实际标签,计算误差:
      e r r o r = y − y ​ error=y− y ^ ​ error=yy

    • 根据误差更新权重和偏置:
      w i ​ = w i ​ + η ⋅ e r r o r ⋅ x i ​ w i ​ =w i ​ +η⋅error⋅x i ​ wi=wi+ηerrorxi

      b = b + η ⋅ e r r o r b=b+η⋅error b=b+ηerror

      其中 𝜂 是学习率(learning rate),用于控制更新步长与权重变化幅度,当误差为正时,表示预测值低于实际值,需要增加权重 𝑤𝑖;当误差为负时,表示预测值高于实际值,需要减少权重 𝑤𝑖。

感知机的局限性

  1. 线性可分性
    • 感知机只能解决线性可分的分类问题,即所有数据点可以通过一条直线(或高维空间中的超平面)分开。
  2. 激活函数
    • 感知机使用阶跃函数作为激活函数,无法处理复杂的非线性关系。

感知机的改进–多层感知机

为了克服感知机的局限性,发展出了多层感知机(MLP)一种基本的前馈神经网络结构,通过引入隐藏层和非线性激活函数,使模型能够解决非线性可分的复杂问题。MLP是现代深度学习模型的基础。

结构

  1. 输入层:

    • 接收输入特征向量。
    • 每个输入特征对应一个节点。
  2. 隐藏层:

    • 由一个或多个隐藏层组成。
    • 每个隐藏层包含多个神经元(节点)。
    • 每个神经元通过权重与上一层的节点连接,经过激活函数处理。
  3. 输出层:

    • 输出层通常包含一个或多个神经元。
    • 用于分类任务时,输出层通常采用softmax激活函数输出各类别的概率分布。
    • 用于回归任务时,输出层通常只有一个节点,直接输出预测值。

工作原理

  1. 前向传播(Forward Propagation)
    • 输入特征通过权重和偏置与隐藏层中的神经元相乘并加权求和,然后通过激活函数进行非线性变换,得到隐藏层的输出。
    • 隐藏层的输出再与隐藏层到输出层的权重和偏置相乘并加权求和,然后再通过激活函数,得到最终的输出。
  2. 反向传播(Backward Propagation)
    • 计算输出的误差(预测值与实际值之间的差异)。
    • 根据误差,通过梯度下降法调整每个神经元的权重和偏置,以最小化误差。
    • 误差沿着网络反向传播,更新每一层的权重和偏置。

激活函数

在多层感知机中,每个神经元通常都使用非线性激活函数,以增加模型的表达能力和适应复杂性。常用的激活函数包括:

  • Sigmoid:
    f ( z ) = e z + e − z e z − e − z f(z) = \frac{e^z + e^{-z}}{e^z - e^{-z}} f(z)=ezezez+ez

  • Tanh(双曲正切函数):
    f ( z ) = 1 1 + e − z f(z) = \frac{1}{1 + e^{-z}} f(z)=1+ez1

    应用

    多层感知机广泛应用于各种机器学习任务,包括但不限于:

    • 图像识别:如手写数字识别、图像分类。
    • 语音识别:如语音指令识别。
    • 自然语言处理:如情感分析、文本分类。
    • 推荐系统:如商品推荐、音乐推荐。

    总结

    多层感知机是一种基础而强大的神经网络结构,通过多个隐藏层的非线性变换,能够有效地处理复杂的数据关系,适用于多种机器学习任务。通过不断优化权重和偏置,多层感知机能够逐渐学习到数据的特征,并提高模型的预测能力。

  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值