反馈神经网络算法

article/2025/10/7 14:42:25

典型的卷积神经网络,开始阶段都是卷积层以及池化层的相互交替使用,之后采用全连接层将卷积和池化后的结果特征全部提取进行概率计算处理。
在具体的误差反馈和权重更新的处理上,不论是全连接层的更新还是卷积层的更新,使用的都是经典的反馈神经网络算法,这种方法较原本较为复杂的、要考虑长期的链式法则转化为只需要考虑前后节点输入和输出误差对权重的影响,使得当神经网络深度加大时能够利用计算机计算,以及卷积核在计算过程中产生非常多的数据计算。

反馈神经网络正向与反向传播公式推导

经典反馈神经网络主要包括3个部分,数据的前向计算、误差的反向传播以及权值的更新。如下图所示。
在这里插入图片描述
  可以看到每个层l(假设是卷积或者池化层的一种)都会接一个下采样层l+1。对于反馈神经网络来说,要想求得层l的每个神经元对应的权值更新,就需要先求层l的每一个神经元点的灵敏度。简单来说,总体有以下几个权重以及数值需要在传递的过程中进行计算,即:
  1.输入层-卷积层
  2.卷积层-池化层
  3.池化层-全连接层
  4.全连接层-输出层
  这是正向的计算,而当权值更新时,需要对其进行反向更新,即:
  1.输出层-全连接层
  2.全连接层-池化层
  3.池化层-卷积层
  4.卷积层-输出层

1.前向传播算法
  对于前向传播的值传递,隐藏层输出值定义如下:
         a h H 1 a^{H1}_h ahH1= W h H 1 W^{H1}_h WhH1× X i X_i Xi
         b h H 1 b^{H1}_h bhH1 = f ( a h H 1 ) f(a^{H1}_h) f(ahH1)
  其中 X i X_i Xi是当前输入节点的值, W h H 1 W^{H1}_h WhH1是连接到此节点的权重, a h H 1 a^{H1}_h ahH1是输出值。f是当前阶段的激活函数, b h H 1 b^{H1}_h bhH1是当前节点的输入值经过计算后被激活的值。
  对于输出层,定义如下:
         a k a_k ak = ∑ W h k × b h H 1 \displaystyle\sum_{}^{} W_{hk}×b^{H1}_h Whk×bhH1
  其中, W h k W_{hk} Whk为输入的权重, b h H 1 b^{H1}_h bhH1为输入到输出节点的输入值。对所有输入值进行权重计算后求得和值,将其作为神经网络的最后输出值 a k a_k ak

2.反向传播算法
  与前向传播类似,首先定义两个值 δ k δ_k δk δ h H 1 δ^{H1}_h δhH1:
         δ k δ_k δk = ∂ L ∂ a k \frac{∂L}{∂a_k} akL = (Y - T)
         δ h H 1 δ^{H1}_h δhH1 = ∂ L ∂ a h H 1 \frac{∂L}{∂a^{H1}_h} ahH1L
  其中, δ k δ_k δk为输出层的误差项,其计算值为真实值与模型计算值的差值。Y是计算值,T是输出真实值。 δ h H 1 δ^{H1}_h δhH1为输出层的误差。
  神经网络反馈算法,就是逐层地将最终的误差进行分解,即每一层只与下一层打交道(如下图所示)。因此,可以假设每一层均为输出层的前一个层级,通过计算前一个层级与输出层的误差得到权重的更新。
在这里插入图片描述
   因此反馈神经网络计算公式定义如下:
   δ h H 1 δ^{H1}_h δhH1 = ∂ L ∂ a h H 1 \frac{∂L}{∂a^{H1}_h} ahH1L
      = ∂ L ∂ b h H 1 \frac{∂L}{∂b^{H1}_h} bhH1L × ∂ b h H 1 ∂ a h H 1 \frac{∂b^{H1}_h}{∂a^{H1}_h} ahH1bhH1
      = ∂ L ∂ b h H 1 \frac{∂L}{∂b^{H1}_h} bhH1L × f’( a h H 1 a^{H1}_h ahH1)
      = ∂ L ∂ a k \frac{∂L}{∂a_k} akL × ∂ a k ∂ b h H 1 \frac{∂a_k}{∂b^{H1}_h} bhH1ak × f’( a h H 1 a^{H1}_h ahH1)
      = δ k δ_k δk × ∑ W h k \displaystyle\sum_{}^{} W_{hk} Whk × f’( a h H 1 a^{H1}_h ahH1)
      = ∑ W h k \displaystyle\sum_{}^{} W_{hk} Whk × δ k δ_k δk × f’( a h H 1 a^{H1}_h ahH1)
   即当前层输出值对误差的梯度可以通过下一层的误差与权重和输出值的梯度乘积获得。在公式 ∑ W h k \displaystyle\sum_{}^{} W_{hk} Whk × δ k δ_k δk × f’( a h H 1 a^{H1}_h ahH1)中, δ k δ_k δk若为输出层,即可以通过 δ k δ_k δk = ∂ L ∂ a k \frac{∂L}{∂a_k} akL = (Y - T)求得;而 δ k δ_k δk为非输出层时,可以使用逐层反馈方式求得 δ k δ_k δk的值。
   换一种形式将上面的公式表示为:
    δ l δ^{l} δl = ∑ W i j l \displaystyle\sum_{}^{} W^l_{ij} Wijl × δ j l + 1 δ^{l+1}_j δjl+1 × f’( a i j a^{j}_i aij)
  通过更为泛化的公式把当前层的输出对输入的梯度计算转化成求下一个层级的梯度计算值。

3.权重的更新
  反馈神经网络计算的目的是对权重进行更新。与梯度下降法类似,其更新可以仿照梯度下降对权值的更新公式:
   θ = θ - α(f(θ) - y i y_i yi) x i x_i xi
   即:
   W j i W_{ji} Wji= W j i W_{ji} Wji + α× δ j l δ^{l}_j δjl× x j i x_{ji} xji
   b j i b_{ji} bji= b j i b_{ji} bji + α× δ j l δ^{l}_j δjl
   其中ji表示为反向传播时对应的节点系数,通过对 δ j l δ^{l}_j δjl的计算来更新对应的权重值。


http://chatgpt.dhexx.cn/article/AYW9X1bq.shtml

相关文章

神经网络算法实例说明,简单神经网络算法原理

神经网络算法实例说明有哪些? 在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人、复杂系统控制等等。 纵观当代新兴科学技术的发展历史&…

算法评价与神经网络算法

前言 随着大数据和信息传输技术的兴起、人们的数据处理工作指数型增长,传统的编程方法和数学模型不再适用于这样大数据量、高噪音的工作,神经网络的使用就变得愈加广泛。作为传统机器学习的一个分支,神经网络实现了更高层次的自动化。对于多…

神经网络算法可以用来干什么

神经网络算法可以解决的问题有哪些 人工神经网络(Artificial Neural Networks,ANN)系统是 20 世纪 40 年代后出现的。它是由众多的神经元可调的连接权值连接而成,具有大规模并行处理、分布式信 息存储、良好的自组织自学习能力等特…

Matlab实现神经网络算法

线性关系可以说是最简单的关系,但在大多数实际问题求解中,线性关系往往不能体现事物之间的复杂关系。而神经网络算法具有非线性关系的逼近能力。在以往所学的算法中,往往是通过得到一个f(x)函数来描述y和x之间的关系的,但神经网络…

神经网络算法的基本原理,神经网络算法通俗解释

神经网络算法原理 4.2.1概述人工神经网络的研究与计算机的研究几乎是同步发展的。 1943年心理学家McCulloch和数学家Pitts合作提出了形式神经元的数学模型,20世纪50年代末,Rosenblatt提出了感知器模型,1982年,Hopfiled引入了能量…

神经网络算法的基本原理,神经网络算法都有哪些

神经网络算法的三大类分别是? 神经网络算法的三大类分别是:1、前馈神经网络:这是实际应用中最常见的神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称之为“深度”神经网络。他们计算出一系列改变…

神经网络算法介绍

引言 人工神经网络(Artificial Neural Networks,ANN)最早起源于1943年,受“脑神经元学说”的启发,心理学家WMcculloch和数理逻辑学家WPitts首次提出基于神经元的数学模型,后来经过无数人的改进和完善&…

深度神经网络算法有哪些,最简单的神经网络算法

常见的深度学习算法主要有哪些? 深度学习常见的3种算法有:卷积神经网络、循环神经网络、生成对抗网络。 卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度…

神经网络算法基本原理及其实现

目录 背景知识 人工神经元模型 激活函数 网络结构 工作状态 学习方式 BP算法原理 算法实现(MATLAB) 背景知识 在我们人体内的神经元的基本结构,相信大家并不陌生,看完下面这张图,相信大家都能懂 什么是人工神经…

神经网络算法介绍(Nerual NetWorks)

神经网络是所谓深度学习的一个基础,也是必备的知识点,他是以人脑中的神经网络作为启发,最著名的算法就是backpropagation算法,这里就简单的整理一下神经网络相关参数,和计算方法。 一、多层向前神经网络(M…

神经网络算法

参考 神经网络算法 - 云社区 - 腾讯云 目录 1、神经元模型 2、感知机与多层网络 3、误差逆传播算法 4、全局最小与局部最小 5、其他神经网络 1、RBF网络 2、ART网络 3、SOM网络 4、级联相关 5、Elman网络 6、Boltzmann机 6、深度学习 1、神经元模型 神经网络(neu…

人工智能学习——神经网络(matlab+python实现)

人工智能学习——神经网络 文章目录 人工智能学习——神经网络前言一、神经网络理论知识1.人工神经网络的概念2.神经元的概念3.MP神经元模型4.常见的激活函数5.人工神经网络模型种类6.人工神经网络学习方式、规则,分类 二、感知器的介绍1.单层感知器(单层…

神经网络——最易懂最清晰的一篇文章

神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。 本文以一种简单的,循序的方式讲解神经网络。适合对神经网络了解不多的…

【水滴石穿】报错解决不了

地址:https://github.com/Farukaksungur/React-Native- 转载于:https://www.cnblogs.com/smart-girl/p/10875511.html

GREYONE Data Flow Sensitive Fuzzing

目录 Abstract Introduction 1.1questions to address 1.2 our solution 1.3 result 2 design of greyone 2.1 Fuzzer-driven Taint Inference 2.1.1 Taint inference 2.1.2 Comparison with Traditional Taint Analysis. 2.1.3 Identify Direct Copies of Inputs. …

论文中文翻译——kAFL Hardware-Assisted Feedback Fuzzing for OS Kernels

本论文相关内容 论文下载地址——26th USENIX Security Symposium论文中文翻译——kAFL Hardware-Assisted Feedback Fuzzing for OS Kernels 文章目录 本论文相关内容前言kAFL:操作系统内核的硬件辅助反馈Fuzzing作者信息论文来源主办方信息摘要1 引言2 技术背景2…

ROS1云课→29如何借助导航实现走迷宫机器人

ROS1云课→28机器人代价地图配置 简述: 在这个项目中,将创建一个机器人,它将进入一个迷宫形式的房间,然后从另一个点离开房间。 详细: 在行业中,有些地方机器人可以收集加工过的物体并将这些物体放入仓库。…

Recent Fuzzing Papers

Recent Papers Related To Fuzzing 原文在GitHub上进行更新: https://github.com/wcventure/FuzzingPaper All Papers Interesting Fuzzing DifFuzz: Differential Fuzzing for Side-Channel Analysis (ICSE 2019)REST-ler: Stateful REST API Fuzzing (ICSE 2019…

符号测执行软件测试,基于符号执行与模糊测试的混合测试方法

1 引言 随着信息技术的发展, 软件已经渗透到现代社会的方方面面, 而由于开发不当引入的软件漏洞也日益增多.据统计, 最近5年内软件漏洞数增加了38%, 而仅在2016年~2017年间就增加了14%[.软件测试是检测软件漏洞的一种主要方法, 当前工业界的主流方法还是通过手工设计测试用例来…

java Scanner和异常

Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。 下面是创建 Scanner 对象的基本语法: Scanner s new Scanner(System.in); 接下来我们演示一个最简单的的数据输入,并通过 Scanner 类的 ne…