机器学习之BP神经网络

BP神经网络

是误差反向传播算法

误差反向传播算法是根据权重,反推各神经元的误差:

具体步骤为:当最终根据神经网络得到各个输出神经元的输出值后,分别根据输出值和真实值的差计算出每个输出神经元的误差,得到每个输出神经元的输出误差之后,根据每个输出神经元和前一层神经元连接的权值分别计算出上一个神经元的误差,依次类推,然后用梯度下降法修正相对应的权值。这就是误差反向传播算法。

BP神经网络 = 多层感知机+误差反向传播(Back Propagation)学习算法

即模型训练或者说连接权重的调整采用反向传播算法

感知机与二分类问题:

image-20211025101818922

​ 二分类问题中训练的就是未知数的权重和偏置值。训练的本质就是不断调整权重和偏置值,知道取得的结果比较好为止。

BP神经网络的学习过程也是如此。

  1. 学习过程:神将网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。
  2. 学习的本质:对各连接权值的动态调整
  3. 学习规则(算法):权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。

BP神经网络的学习算法类型:采用有监督学习

BP神经网络学习算法核心思想:将输出误差以某种形式通过隐藏层想输入层逐层反传,将误差分摊给各层的所有神经元,修正各神经元权值。

BP神将网络学习过程:信号正向传播—>误差反向传播

BP神经网络学习算法步骤:

  1. 正向传播:输入样本—>输入层—>各个隐藏层—>输出层
  2. 判断是否转入反向传播阶段:若输出层的实际输出与期望的输出不符,也就是拿输出与标签比较时不相等。
  3. 误差反传:误差以某种形式在各层表示—>修正各层单元的权值
  4. 终止条件:网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止。

BP神经网络是一种迭代的训练方法,设置迭代的次数,每次去调整权重的过程。

BP神将网络有三层结构:分别为输入层、隐含层、输出层

image-20211025140643353

设输入层有n个输入信号,隐含层有p个神经元,输出层有q个神经元,变量定义如下所示:

image-20211025120211682

误差反向传播学习算法的步骤:

  1. 网络初始化

    • 给各连接层的权值分别赋一个区间(-1,1)内的随机数,设定误差函数为e,给定计算精度值和最大学习次数M
  2. 随机选取第K个输入样本及对应期望输出

    image-20211025141443535

  3. 计算隐含层各神经元的输入和输出

    隐含层输出:

    image-20211025142104087

    输出层输出:

    image-20211025142134309

    输出:加权,求和,减去偏置

  4. 误差函数:用最小二乘法求得,并且用梯度下降法来调整相应的权重

    一个样本的误差公式:

    image-20211025142526705

    但是学习的目标是最小误差,即:

    image-20211025142716086

    根据上面定义的变量,可以算出满足上式的各层神经元的连接权重(共np+pq个)与阈值共(p+q个),所以,三层BP神经网络待确定的参数数量为(n+q+1)*p+q个.

    但是如何使得这个条件最小化,也就是用哪种方法使得误差最小化?

    先求取权重的偏导数,然后利用权重的梯度去调整权重

  5. 利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数δo(k)

    image-20211025144021267 image-20211025145603004

    所以,误差对输出层权重可以表示为:

    image-20211025150619597
  6. 利用隐含层到输出层的连接权值、输出层的δo(k)和隐含层的输出计算误差函数对隐含层各神经元的偏导数δh(k)

    image-20211025151056562 image-20211026111814675

    所以,误差对隐含层各神经元的偏导数可表示为:

    image-20211025174817738
  7. 利用输出层个神经元的δo(k)和隐含层个神经元的输出来修正连接权值Who(k)

    image-20211026112218450

    其中α表示步长(学习率),用梯度下降法就可以算出其迭代的修正公式:

    image-20211026112450827
  8. 利用隐含层各神经元的δh(k)和输入层个神经元的输入修正连接权值

    image-20211026112901274 image-20211026112931681
  9. 计算全局误差:

    image-20211026113022334

    直到误差满足条件为止,否则就一直迭代。

  10. 判断网络误差是否满足要求,当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第4步,进入下一轮学习。

BP神经网络反向传播过程流程图:

image-20211026130159279

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃小巴掌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值