在学习吴恩达的深度学习教程的时候,遇到了两个名词,正向传播和反向传播,不知道什么意思,于是我去CSDN上搜索,发现这些回答都是不知所云,依托答辩,解释的根本不清楚。所以我很有必要用一句话来解释一下什么是正向传播和反向传播。

正向传播就是根据输入,通过神经网络模型来计算输出。反向传播就是当正向传播计算出来输出以后,拿计算出来的输出和正确的输出进行一个对比,然后拿这个对比值再去修改优化这个模型。这么一次完整的传播就是一个epoch。

以下是完整的解释;

神经网络的正向传播;

正向传播(forward propagation)是神经网络在进行训练和预测时的基本过程。在这个过程中,输入数据通过网络的各层传递,每一层都对数据进行一定的计算和转换,最终产生输出结果。正向传播的主要目的是计算预测值并评估模型的性能。

正向传播的过程可以分为以下几个步骤:

准备输入数据:输入数据通常需要进行预处理,如归一化、缩放等,以使其适合喂给神经网络。

输入层:输入数据被送入神经网络的输入层。输入层的神经元数量通常与输入数据的特征数量相匹配。

隐藏层:从输入层开始,数据会依次通过一个或多个隐藏层。在每个隐藏层中,数据首先与权重矩阵相乘,然后加上偏置项,最后通过激活函数(如 ReLU、sigmoid 或 tanh)进行非线性转换。这一系列操作将数据从一个层次映射到另一个层次,从而实现特征的提取和组合。

输出层:数据经过最后一个隐藏层后,会进入输出层。输出层的神经元数量与预测任务的输出维度相匹配。输出层也会进行类似的计算(权重矩阵相乘、加偏置、激活函数转换),但激活函数的选择可能与隐藏层不同,取决于预测任务的性质。例如,对于多分类问题,输出层通常使用 softmax 函数;对于回归问题,可能使用恒等激活函数。

计算预测值和损失:正向传播结束后,我们会得到模型的预测值。接下来,我们可以使用损失函数(如交叉熵损失或均方误差损失)来计算预测值与真实值之间的差异。这个差异可以用于评估模型的性能以及在反向传播过程中更新模型参数。

反向传播(backpropagation)是一种用于训练神经网络的优化算法。它是基于梯度下降算法的一种高效实现,旨在通过最小化损失函数(如交叉熵损失或均方误差损失)来优化网络参数(权重和偏置)。反向传播的核心思想是使用链式法则计算损失函数相对于每个参数的梯度,然后根据这些梯度来调整参数。

反向传播的过程可以分为以下几个步骤:

进行正向传播:首先通过正向传播计算网络的预测值,并评估预测值与真实值之间的损失。

计算输出层误差:计算损失函数相对于输出层激活函数的导数。这个值表示了输出层神经元的误差,即预测值与真实值之间的差异。

从输出层到输入层反向传播误差:通过链式法则,逐层计算误差相对于每个隐藏层的激活函数的导数。这一步的关键是将误差从输出层向前传播,以计算每个隐藏层神经元的误差。

计算梯度:对于每一层,计算误差相对于权重和偏置的梯度。这可以通过将误差乘以激活函数的导数以及前一层的输出(对于权重)或 1(对于偏置)来实现。

更新参数:根据计算出的梯度和学习率(一个预先设定的超参数)来更新网络的权重和偏置。更新的公式为:新参数 = 旧参数 - 学习率 * 梯度。这一步使得损失函数的值沿着梯度的负方向下降,从而优化模型性能。

反向传播算法通常会在一个训练周期(epoch)内对整个训练数据集进行多次迭代。每次迭代都会对参数进行更新,直到损失函数收敛或达到预设的最大迭代次数。

最后我真的想说一句,这么简单的东西,整个CSDN怎么就没人说的清楚呢?一句话就能解释完的东西,整这么多长篇大论是干什么?

一句话解释清楚什么是正向传播和反向传播相关推荐

  1. CNN网络中卷积层的正向传播与反向传播理解

    1. 基础理论 1.1 网络结构梳理 在CNN网络模型是建立在传统神经网络结构上的,对于一个传统的神经网络其结构是这样的: 从上面可以看出,其模型是全连接的.若是使用一幅512*512大小的图像作为输 ...

  2. 机器学习概念 — 监督学习、无监督学习、半监督学习、强化学习、欠拟合、过拟合、后向传播、损失和优化函数、计算图、正向传播、反向传播

    1. 监督学习和无监督学习 监督学习 ( Supervised Learning ) 和无监督学习 ( Unsupervised Learning ) 是在机器学习中经常被提及的两个重要的学习方法. ...

  3. (pytorch-深度学习系列)正向传播与反向传播-学习笔记

    正向传播与反向传播 1. 正向传播 正向传播是指对神经网络沿着从输入层到输出层的顺序,依次计算并存储模型的中间变量(包括输出). 假设输入是一个特征为x∈Rd\boldsymbol{x} \in \m ...

  4. 神经网络的正向传播和反向传播(转)

    反向传播:重点掌握链式法则(偏导的求法) 感谢博主,以下计算参考链接:https://www.cnblogs.com/charlotte77/p/5629865.html ************** ...

  5. 神经网络正向传播和反向传播

    正向传播(forward-propagation):指对神经网络沿着输入层到输出层的顺序,依次计算并存储模型的中间变量. 反向传播(back-propagation):沿着从输出层到输入层的顺序,依据 ...

  6. 神经网络的正向传递与反向传播

    神经网络的正向传递与反向传播 1.单个神经元 2.由神经元组成的神经网络 3.目标函数 4.求解损失函数对某个权值的梯度 5.反向传播算法Backpropgation 5.1 明确一些定义 5.2 计 ...

  7. 深度学习基础之正向传播与反向传播

    文章目录 前言 正向传播 链式法则 反向传播 加法节点的反向传播 乘法节点的反向传播 小结 实例 Sigmoid函数 Softmax-with-Loss 层 参考 前言 因为这学期上了一门深度学习的课 ...

  8. 深度神经网络(DNN)正向传播与反向传播推导(通俗易懂)

    一.前言 我在之前的博客里面介绍过浅层的神经网络,现在就从浅层神经网络出发,介绍深度神经网络(DNN)的正向传播和反向传播.希望网友们看本博客之前需要对神经网络有个简单的了解,或者可以看博客初探神经网 ...

  9. Python实现深度学习系列之【正向传播和反向传播】

    前言 在了解深度学习框架之前,我们需要自己去理解甚至去实现一个网络学习和调参的过程,进而理解深度学习的机理: 为此,博主这里提供了一个自己编写的一个例子,带领大家理解一下网络学习的正向传播和反向传播的 ...

最新文章

  1. 智能视觉组参赛总结及体会- 西安邮电大学 - AI小布丁
  2. jvm二:类加载,连接,初始化
  3. 实例教程七:在SQLite中使用事务
  4. 安装TokuDB引擎
  5. Java程序员高效开发必备工具,其中有你的最爱吗?
  6. 智能机器人正催生新的工业革命
  7. IDEA里的web.xml页面的Servlet名称报错下方出现红色下划线
  8. VS2010中的sln,suo分别是什么文件
  9. 电脑k歌软件_别否认!你就是在K歌软件里偷偷出道的年轻人
  10. Android----Google code android开源项目(二)
  11. 四个措施打造安全的DevOps流程
  12. 表情识别(四)--多网络级联表情识别
  13. c# 对象json互相转换_能够将Excel 数据转换成Json格式的实用工具 excel2json
  14. 科学计算机怎么直接显示10的多少次方,科学计算器怎么开n次方
  15. 8月份全国省会城市快递上门签收分析-谁是剁手王城?
  16. 小爱音箱显示服务器连接不上,小爱音箱无法连接WiFi解决方法
  17. 视频转换器怎么将ogv格式转换成mp4
  18. Cache的映像方法
  19. BDD ROBDD
  20. Linux挂载点的概念

热门文章

  1. 生信分析矫正P值_好看的富集分析图GOplot
  2. im中的定位消息 ios_知识科普:IM聊天应用是如何将消息发送给对方的?(非技术篇)...
  3. 【js基础】EventLoop轮询机制
  4. 【计算机网络】时延带宽积的理解(图解易懂)
  5. 在MSCOCO的test-dev数据集上测试过程(如何在MSCOCO服务器上提交测试结果)
  6. oracle11g安装及用户创建与密码修改
  7. Ubuntu 添加用户以及设置超级管理员权限
  8. 使用指针的指针输出字符串
  9. 晚上有什么副业可以做,一晚上50-100都可以?
  10. NIO 看破也说破(五): 搞,今天就搞,搞懂Buffer