BP( Back Propagation)网络是由Rinehart等于1986年提出的,是一种按误差逆传播算法训练的,多层前馈网络,是目前应用最广泛的神经网络模型之一。
–BP网络能学习和存储大量的输入、输出模式映射关系,而无须事前揭示描述这种映射关系的数学方程。
–其学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括:
输入层(Input),这一区域相当于外界的刺激,是刺激的来源并且将刺激传递给神经元。
隐藏层( Hide layer),这一区域表示神经元相互之间传递刺激,相当于人脑里面。
输出层(Output layer),这一区域表示神经元经过多层次相互传递后,对外界的反应。
文章图片
BP反馈机制
简单的描述就是,输入层将刺激传递给隐藏层,隐藏层通过神经元之间,联系的权重和激活函数,将刺激传到输出层,输出层整理隐藏层处理后的刺激,产生最终结果。
若有正确的结果,那么将正确的结果和产生的结果进行比较,得到误差,再逆推对神经网中的链接权重进行反馈修正,从而来完成学习的过程。
这就是BP (Back Propagation)神经网的反馈机制,也是名字的来源,即运用向后反馈的学习机制,来修正神经网中的权重,最终达到输出正确结果的目的。
双向信号传播
BP算法由数据流的前向(正向)传播和误差信号的反向传播两个过程构成。
–正向传播时,传播方向为输入层-隐层-输出层,每层神经元的状态只影响下一层神经元。
–若在输出层得不到期望的输出,则转向误差信号的反向传播流程。
这两个过程的交替进行
–在权向量空间,执行误差函数梯度下降策略,动态迭代搜索一组权向量。
–使网络误差函数达到最小值,从而完成信息提取,和记忆过程。
正向传播
设BP神经网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间有权值为vki,隐层与输出层之间的权值为wjk,三层神经网络的拓扑结构,如下图所示。
文章图片
隐层传递函数为?1(?),输出层的传递函数为?2(?),则隐层节点的输出为(将阈值写入求和项中,k=1,2,…q)
文章图片
?输出层节点的输出为(j=l,2,…,m):
文章图片
?至此BP网络完成n维空间向量对m维空间的近似映射
反向传播
反向传播,目的是传递误差信号
–所以要进行定义误差函数、输出层权值变化、以及隐层权值变化等操作。
–以上作用可分别以数据公式表达出来:
文章图片
–式中x1,x2,…,xq为输入信号,wj1,wj2,…,wji,…,wjn为神经元k之权值,uk为线性组合结果,θk为阈值,f (?)为激活函数,yk为神经元k的输出。
文章图片
–若把输入的维数增加一维,则可把阈值θk包括进去。
【技术知识|为什么说BP神经网络就是人工神经网络的一种()】
推荐阅读
- 神经网络|复数神经网络_如果神经网络状态为复数会发生什么()
- 人工智能|十年AI谁“最能打”(何恺明最佳论文“刷”状元,谷歌机构排名第一)
- LeetCode编程题解法汇总|力扣解法汇总653-两数之和 IV - 输入 BST
- 计算机视觉算法工程师|算法工程师15——数据结构与算法加强版
- 算法|【算法】时间复杂度真的不“复杂”
- Python系列|数据结构与算法笔记(五)——队列(FIFO队列、双端队列)
- python|Python数据结构与算法(3.3)——队列
- 姿态估计|人体姿态估计综述
- 排序算法|JS优化版(二叉搜索树第k大节点)