神经网络-前向传播Forward propagation

news2025/1/11 14:32:38

前向传播Forward propagation

前向传播算法就是: 将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止

在正式介绍前向传播前,先简单介绍计算图(Computational Graph)的概念。

y = w ∗ x + b \mathrm{y}=\mathrm{w} * \mathrm{x}+\mathrm{b} y=wx+b

可以用下面的有向无环图表示。

在这里插入图片描述

假设一个三层的神经网络,有两个输入和一个输出,每一个层都是全连接层和激活函数层

第一层输入为

Y ( 1 ) = X ( 1 ) W ( 1 ) + b ( 1 ) Y^{(1)}=X^{(1)} W^{(1)}+b^{(1)} Y(1)=X(1)W(1)+b(1)

在这里插入图片描述

[ y 1 , 1 ( 1 ) y 1 , 2 ( 1 ) y 1 , 3 ( 1 ) y 1 , 4 ( 1 ) ] = [ x 1 , 1 ( 1 ) x 1 , 2 ( 1 ) ] [ w 1 , 1 ( 1 ) w 1 , 2 ( 1 ) w 1 , 3 ( 1 ) w 1 , 4 ( 1 ) w 2 , 1 ( 1 ) w 2 , 2 ( 1 ) w 2 , 3 ( 1 ) w 2 , 4 ( 1 ) ] + [ b 1 , 1 ( 1 ) b 1 , 2 ( 1 ) b 1 , 3 ( 1 ) b 1 , 4 ( 1 ) ] \left[\begin{array}{llll}y_{1,1}^{(1)} & y_{1,2}^{(1)} & y_{1,3}^{(1)} & y_{1,4}^{(1)}\end{array}\right]=\left[\begin{array}{ll}x_{1,1}^{(1)} & x_{1,2}^{(1)}\end{array}\right]\left[\begin{array}{llll}w_{1,1}^{(1)} & w_{1,2}^{(1)} & w_{1,3}^{(1)} & w_{1,4}^{(1)} \\ w_{2,1}^{(1)} & w_{2,2}^{(1)} & w_{2,3}^{(1)} & w_{2,4}^{(1)}\end{array}\right]+\left[\begin{array}{llll}b_{1,1}^{(1)} & b_{1,2}^{(1)} & b_{1,3}^{(1)} & b_{1,4}^{(1)}\end{array}\right] [y1,1(1)y1,2(1)y1,3(1)y1,4(1)]=[x1,1(1)x1,2(1)][w1,1(1)w2,1(1)w1,2(1)w2,2(1)w1,3(1)w2,3(1)w1,4(1)w2,4(1)]+[b1,1(1)b1,2(1)b1,3(1)b1,4(1)]

其中w和b的数值是神经网络通过学习得到的

之后我们可以得到第一层的输出,第一全连接层的运算过程

[ 1.12 1.28 0.32 − 0.36 ] = [ 0.4 0.6 ] [ 1.1 − 0.3 − 0.1 − 0.6 − 0.2 0.5 1.1 − 0.2 ] + [ 0.8 1.1 − 0.3 0.0 ] \left[\begin{array}{llll}1.12 & 1.28 & 0.32 & -0.36\end{array}\right]=\left[\begin{array}{ll}0.4 & 0.6\end{array}\right]\left[\begin{array}{cccc}1.1 & -0.3 & -0.1 & -0.6 \\ -0.2 & 0.5 & 1.1 & -0.2\end{array}\right]+\left[\begin{array}{llll}0.8 & 1.1 & -0.3 & 0.0\end{array}\right] [1.121.280.320.36]=[0.40.6][1.10.20.30.50.11.10.60.2]+[0.81.10.30.0]

接着是激活函数层,激活函数用于提供非线性性,我们以ReLU函数为例

https://baike.baidu.com/item/ReLU 函数/22689567

y = ReLU ⁡ ( x ) = { 0 , x < 0 x , x ⩾ 0 y=\operatorname{ReLU}(x)=\left\{\begin{array}{ll}0, & x<0 \\ x, & x \geqslant 0\end{array}\right. y=ReLU(x)={0,x,x<0x0

ReLU函数相当于保留正值,将负值强制置0

在这里插入图片描述

第二层输出为

Y ( 2 ) = X ( 2 ) W ( 2 ) + b ( 2 ) Y^{(2)}=X^{(2)} W^{(2)}+b^{(2)} Y(2)=X(2)W(2)+b(2)

[ y 1 , 1 ( 2 ) y 1 , 2 ( 2 ) y 1 , 3 ( 2 ) y 1 , 4 ( 2 ) ] = [ x 1 , 1 ( 2 ) x 1 , 2 ( 2 ) x 1 , 3 ( 2 ) x 1 , 4 ( 2 ) ] [ w 1 , 1 ( 2 ) w 1 , 2 ( 2 ) w 1 , 3 ( 2 ) w 1 , 4 ( 2 ) w 2 , 1 ( 2 ) w 2 , 2 ( 2 ) w 2 , 3 ( 2 ) w 2 , 4 ( 2 ) w 3 , 1 ( 2 ) w 3 , 2 ( 2 ) w 3 , 3 ( 2 ) w 3 , 4 ( 2 ) w 4 , 1 ( 2 ) w 4 , 2 ( 2 ) w 4 , 3 ( 2 ) w 4 , 4 ( 2 ) ] + [ b 1 , 1 ( 2 ) b 1 , 2 ( 2 ) b 1 , 3 ( 2 ) b 1 , 4 ( 2 ) ] \left[\begin{array}{lllll}y_{1,1}^{(2)} & y_{1,2}^{(2)} & y_{1,3}^{(2)} & y_{1,4}^{(2)}\end{array}\right]=\left[\begin{array}{llll}x_{1,1}^{(2)} & x_{1,2}^{(2)} & x_{1,3}^{(2)} & x_{1,4}^{(2)}\end{array}\right]\left[\begin{array}{cccc}w_{1,1}^{(2)} & w_{1,2}^{(2)} & w_{1,3}^{(2)} & w_{1,4}^{(2)} \\ w_{2,1}^{(2)} & w_{2,2}^{(2)} & w_{2,3}^{(2)} & w_{2,4}^{(2)} \\ w_{3,1}^{(2)} & w_{3,2}^{(2)} & w_{3,3}^{(2)} & w_{3,4}^{(2)} \\ w_{4,1}^{(2)} & w_{4,2}^{(2)} & w_{4,3}^{(2)} & w_{4,4}^{(2)}\end{array}\right]+\left[\begin{array}{llll}b_{1,1}^{(2)} & b_{1,2}^{(2)} & b_{1,3}^{(2)} & b_{1,4}^{(2)}\end{array}\right] [y1,1(2)y1,2(2)y1,3(2)y1,4(2)]=[x1,1(2)x1,2(2)x1,3(2)x1,4(2)]w1,1(2)w2,1(2)w3,1(2)w4,1(2)w1,2(2)w2,2(2)w3,2(2)w4,2(2)w1,3(2)w2,3(2)w3,3(2)w4,3(2)w1,4(2)w2,4(2)w3,4(2)w4,4(2)+[b1,1(2)b1,2(2)b1,3(2)b1,4(2)]

x2的值由上一层的输出得到,最后得到第二全连接层的输出

在这里插入图片描述

在经过激活函数层

在这里插入图片描述

最后一层为输出层

[ y 1 , 1 ( 3 ) ] = [ x 1 , 1 ( 3 ) x 1 , 2 ( 3 ) x 1 , 3 ( 3 ) x 1 , 4 ( 3 ) ] [ w 1 , 1 ( 3 ) w 2 , 1 ( 3 ) w 3 , 1 ( 3 ) w 4 , 1 ( 3 ) ] + [ b 1 , 1 ( 3 ) ] \left[\begin{array}{l}y_{1,1}^{(3)}\end{array}\right]=\left[\begin{array}{llll}x_{1,1}^{(3)} & x_{1,2}^{(3)} & x_{1,3}^{(3)} & x_{1,4}^{(3)}\end{array}\right]\left[\begin{array}{l}w_{1,1}^{(3)} \\ w_{2,1}^{(3)} \\ w_{3,1}^{(3)} \\ w_{4,1}^{(3)}\end{array}\right]+\left[b_{1,1}^{(3)}\right] [y1,1(3)]=[x1,1(3)x1,2(3)x1,3(3)x1,4(3)]w1,1(3)w2,1(3)w3,1(3)w4,1(3)+[b1,1(3)]

最终输出为

在这里插入图片描述

这就是整个网络的前向传播过程

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LiDAR 完整指南介绍:激光探测和测距

什么是激光探测和测距 (LiDAR)&#xff1f; LiDAR 的全称是 Light Detection and Ranging (激光探测及测距)&#xff0c;LIDAR 是一种主动测量方式&#xff0c;主要由激光发射部分、接收部分组成、信号处理部分组成&#xff0c;从其名称可以发现 LIDAR 的两个主要基本功能是测…

关于我的家乡网页设计主题题材——梧州14页HTML+CSS网页

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

iOS关于列表布局的几种实现方式小结

式 &#xff0c;功能的要求是最多六行&#xff0c;动态展示。当时想到的方案是&#xff0c;抽象出一个cell,初始化六个标签&#xff0c;动态的控制显示和隐藏&#xff0c;这样功能上没有问题&#xff0c;就是代码有些冗余。请教了身边的美女同事&#xff0c;她那边的思路是用UI…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.17 发送多部件邮件

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.17 发送多部件邮件5.17.1 发送多部件邮件5.17.2 添…

Python脚本之并发执行加密方法【一】

本文为博主原创&#xff0c;未经授权&#xff0c;严禁转载及使用。 本文链接&#xff1a;https://blog.csdn.net/zyooooxie/article/details/125650427 之前写过一篇 JMeter性能测试之参数加密【一】&#xff0c;现在把后面的补上。实际第一篇就写完了 JMeter压测遇到加密接口…

Java Class11

Java Class11 集合 概念 集合是用于存储对象的工具类容器&#xff0c;实现了常用的数据结构&#xff0c;提供了一系列公开的方法用于删除、修改、查找和遍历数据&#xff0c;降低了日常开发成本。 三种集合 Set set集合中元素是无序、不可重复的 List list集合中元素是从前到…

公众号免费搜题功能搭建

公众号免费搜题功能搭建 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

基于C语言实现进度条 | 附源码

进度条的应用在软件中无处不在&#xff0c;拷贝一个文件需要一个进度条&#xff0c;加载一个文件也需要一个进度条&#xff0c;来标志完成与否。 那么 &#xff0c;一个进度条有哪些元素呢&#xff1a; 一个不断向右生长的容器&#xff08;直观的看出当前的进度&#xff09; …

Spring的循环依赖问题

Spring中循环依赖场景有&#xff1a; 构造器的循环依赖&#xff08;构造器注⼊&#xff09; Field 属性的循环依赖&#xff08;set注⼊&#xff09; 各场景下循环依赖解决的情况 单例 bean 构造器参数循环依赖&#xff08;⽆法解决&#xff09; 构造器在Bean的生命周期中实例…

GitHub最新发布,阿里十年架构师手写版spring全家桶笔记全新开源

嗨咯&#xff0c;大家好&#xff01; 没错&#xff0c;又是我&#xff0c;还跟前面一样&#xff0c;有好东西我才会出现。那是什么好东西呢&#xff1f;今天啊&#xff0c;给他分享阿里在Github最新发布的spring全家桶笔记第九版&#xff0c;这份笔记一共分三份&#xff1a;sp…

G1垃圾回收器

概述 官网 https://docs.oracle.com/en/java/javase/16/gctuning/garbage-first-g1-garbage-collector1.html#GUID-ED3AB6D3-FD9B-4447-9EDF-983ED2F7A573 简介 G1垃圾回收器可以同时回收新生代和老年代的对象&#xff0c;不需要两个垃圾回收器配合起来运作&#xff0c;他一…

高项 进度管理论文

七个过程&#xff1a; 项目进度管理包括为管理项目按时完成所需的7个过程&#xff0c;具体为&#xff1a; &#xff08;1&#xff09;规划进度管理&#xff1a;为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档过程。 &#xff08;2&#xff09;定义活动&…

【C语言】初阶指针的简单使用 _指针运算 指针和数组的关系[初阶篇 _学习专用]

1.指针是什么&#xff1f; 在学习指针的时候&#xff0c;我们经常会看到下面这段代码&#xff1a; int main() {int a 10;int* pa &a;*pa 20; } 之前并没有接触过指针的朋友们看到后可能是一头雾水&#xff0c;根本不知道从哪里去理解&#xff1b;下面我们就通过一些…

STM32开发时HardFault错误的排查

STM32开发时HardFault错误的排查 本篇是 嵌入式开发-STM32硬件I2C驱动OLED屏 一文的扩展。 把相关的问题记录一下&#xff0c;给遇到HardFault_Handler问题的朋友做个参考。 故障现象 做STM32开发&#xff0c;经常遇到HardFault错误&#xff0c;也就是程序不会正常运行&…

WPF动画(2)

动画的生命周期 从技术的角度看&#xff0c;WPF动画只是暂时的&#xff0c;这意味着它们不能真正改变基本属性的 值&#xff0c;当动画处于活动状态时&#xff0c;只是覆盖了属性的值 。 单向动画&#xff0c;在动画运行结束后会保持处于活动状态&#xff0c;这是因为动画需要…

(十一)手写简单的Spring框架

文章目录第一步&#xff1a;搭建环境第二步&#xff1a;准备好要管理的Bean第三步&#xff1a;准备myspring.xml配置文件第四步&#xff1a;编写MyApplicationContext接口第五步&#xff1a;编写MyClassPathXmlApplicationContext第六步&#xff1a;采用Map集合存储Bean第七步&…

第十一章 Golang面向对象编程(下)

面向对象编程三大特性 基本介绍 Golang仍然有面向对象编程的继承&#xff0c;封装和多态的特性&#xff0c;只是实现的方式和其他OOP语言不一样。 封装 面向对象编程思想-抽象 我们在前面去定义一个结构体的时候&#xff0c;实际上就是把一类事物共有的属性&#xff08;字段…

Presto 之 explain and explain analyze的实现

一. 前言 本文主要探索在Presto中Explain功能是如何实现的。在Presto中&#xff0c;Explain用法有两种&#xff0c;一种是单纯的explain&#xff0c;此场景只会显示经过RBO优化后的执行计划&#xff0c;但是查询并不会真正地执行。第二种是explain analyze&#xff0c;此场景会…

JVM常用参数

JVM内存相关的几个核心参数 -Xms&#xff1a;Java堆内存初始大小-Xmx&#xff1a;Java堆内存的最大大小-Xmn&#xff1a;Java堆内存中的新生代大小&#xff0c;扣除新生代剩下的就是老年代的内存大小了-XX:PermSize&#xff1a;永久代大小-XX:MaxPermSize&#xff1a;永久代最…

疾控物资管理系统-疾控中心物资管理系统

一、系统概述 东识科技&#xff08;DONWIT&#xff09;疾控中心物资管理系统&#xff08;智物资DW-S300&#xff09;是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 随着疫情的突…