🍋🍋AI学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


在神经网络的训练过程中,正向传播反向传播是两个关键步骤。在这两个阶段中,激活函数和损失函数扮演着不同的角色,并以特定的方式参与其中。下面我将详细说明这两个阶段中激活函数和损失函数是如何工作的。

一、正向传播(Forward Propagation)

1. 输入层到隐藏层

  • 输入数据:首先,输入数据 X 被传递给网络的第一层。

  • 线性变换:对于每一层 ll,输入通过权重矩阵 W[l] 和偏置向量 b[l]进行线性变换。

  • 应用激活函数:然后对 Z[l] 应用激活函数 g[l],得到该层的激活输出。

注意:这里激活函数输出其实就是每个神经元传递给下一层的输入。

2. 隐藏层到输出层

  • 最后一层:在输出层,通常会使用一个特定的激活函数来适应任务的需求。例如:

    • 二分类问题:Sigmoid 激活函数,其输出范围为 (0, 1),适合表示概率。
    • 多分类问题:Softmax 激活函数,用于将多个输出值转换为概率分布。
    • 回归问题:可能不使用激活函数或使用线性激活函数。
  • 计算预测值:最后一层的输出 A[L] 就是我们模型的预测值 Y^。

3. 损失函数

  • 计算损失:根据预测值 Y^ 和真实标签 Y,使用选定的损失函数 L(Y,Y^)L(Y,Y^) 来衡量模型的表现。常见的损失函数包括:
    • 均方误差(MSE):适用于回归任务。
    • 交叉熵损失:适用于分类任务,特别是与 Sigmoid 或 Softmax 配合使用时。

二、反向传播(Backward Propagation)

1. 从输出层开始

  • 起点梯度:反向传播从计算输出层的梯度开始。具体来说,我们首先需要计算损失函数对输出层激活值的导数 ∂L∂A[L]∂A[L]∂L​。这个梯度被称为“起点梯度”,因为它标志着梯度回传过程的起始点。

    对于不同的损失函数,起点梯度的形式有所不同:

    • 均方误差(MSE)+ 线性输出
    • 交叉熵 + Sigmoid/Softmax

2. 计算激活函数的导数

  • 激活函数导数:接下来,我们需要计算激活函数的导数。这取决于使用的激活函数:

  • 结合起点梯度,我们可以计算出损失相对于线性组合 Z[L] 的梯度

3. 逐层向前传播梯度

  • 正向传播中的作用

    • 激活函数:用于引入非线性,使得网络能够学习复杂的模式。每层的输出都是前一层的激活输出经过线性变换再通过激活函数的结果。
    • 损失函数:用于评估模型预测值与真实值之间的差距,提供了一个衡量模型性能的标准。
  • 反向传播中的作用

    • 激活函数:其导数决定了梯度如何从当前层传递到前一层。不同激活函数的导数特性影响了梯度的传播效率和稳定性。
    • 损失函数:提供了起点梯度,即损失相对于最后一层激活值的导数。这个初始梯度随后通过链式法则逐层向前传播,用于更新各层的参数。

三、总结:

在正向传播过程中:

1.首先从输入层到隐藏层经过线性变换得到输出值Z,再将输出值经过应用激活函数得到该层的的激活输出A。

2.隐藏层到输出层,在这里通常会使用一个他特定的激活函数来适应任务需求:

  • 二分类问题:Sigmoid 激活函数,其输出范围为 (0, 1),适合表示概率。

  • 多分类问题:Softmax 激活函数,用于将多个输出值转换为概率分布。

  • 回归问题:可能不使用激活函数或使用线性激活函数。

最终计算得到最后一层的输出,也就是我们的预测值。

3.损失函数L:我们开始计算损失根据模型的差异使用不一样的损失函数(最后一层的输出A就是预测值Y)

在反向传播过程中:

1.首先计算损失函数对输出层激活值的导数,这个梯度也就是起点梯度,标志着梯度回传的起始点。

2.计算激活函数的导数A对Z求导,这里取决于使用的激活函数:Sigmoid、ReLU、Tanh等。

结合上起始点的梯度,我们可以计算出损失相对于线性组合 Z[L] 的梯度:

3.逐层向前传播梯度

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式Linux学习 - 数据结构6

五、哈希表1. 哈希算法将数据通过哈希算法映射成一个键值,存取都在同一位置实现数据的高效存储和查找将时间复杂度尽可能降低至O(1)2. 哈希碰撞多个数据通过哈希算法得到的键值相同,称为产生哈希碰撞3. 哈希表构建哈希表存放0-100之间的数据将0 - 100之间…

GitHub 趋势日报 (2025年08月07日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图1894nautilus_trader354stagehand315openai-cookbook263sim242ollama230prisma154v…

android 使用openimagelib OpenImage 实现点击放大图片,浏览

在 Android 中使用 OpenImageLib(假设这是一个开源图片加载库,类似于 Glide 或 Picasso)实现 点击放大图片并浏览 的功能,通常需要结合 图片查看器库(如 PhotoView)和 图片加载库(如 OpenImageLib)。以下是完整的实现方案: 1. 添加依赖 (1) 添加 OpenImageLib 依赖 …

计算机视觉CS231n学习(4)

深度学习软件 (这一部分去看tensorflow和pytorch的笔记) (见专栏)tensorflow和pytorch区别 tensorflow,我们先构建显示的图,然后重复运行它 pytorch,我们每次做前向传播时,都构建一个…

【具身智能】具身智能的革命——人形机器人如何重塑人类日常生活

还在为高昂的AI开发成本发愁?这本书教你如何在个人电脑上引爆DeepSeek的澎湃算力! 2025年被誉为具身智能的元年,人形机器人技术迅猛发展,将深刻改变人类生活方式。本文从具身智能的核心概念入手,探讨人形机器人的硬件架构、感知系统、运动控制和决策算法等技术基础。结合…

Jira Service Management企业服务管理:IT、HR、法务、财务等部门如何落地现代企业服务管理理念与实践

Jira Service Management 服务管理方法Jira Service Management 服务管理方法将开发、IT运营和业务团队整合至一个统一平台,以实现更高效的协作。任何团队都能够快速响应业务变化,为客户和员工提供卓越体验。Jira Service Management 提供直观、经济高效…

软件开发 - danger 与 dangerous、warn 与 warning

danger 与 dangerous 1、danger词性:n.含义:指可能造成伤害或损失的情况或事物# 例词in 【danger】(处于危险中) out of 【danger】(脱离危险)# 例句After the surgery, the doctor said the patient was o…

为何毫米波需要采用不同的DPD方法?如何量化其值?

摘要 在5G新无线电技术标准中,除了sub-6 GHz频率外,还利用毫米波(mmWave)频率来提高吞吐量。毫米波频率的使用为大幅提高数据吞吐量带来了独特的机会,同时也带来了新的实施挑战。本文探讨sub-6 GHz和毫米波基站无线电之间的架构差异&#xff…

【数据结构入门】栈和队列的OJ题

目录 1. 有效的括号 分析: 代码: 2. 用队列实现栈 分析: 代码: 3. 用栈实现队列 分析: 代码: 4. 设计循环队列 思路: 代码: 定义循环队列结构体: 初始化结…

#Datawhale AI夏令营#第三期全球AI攻防挑战赛(AIGC技术-图像方向)

本次题目来源于Datawhale AI夏令营第三期全球AI攻防挑战赛图像生成赛道。首先看一下赛题背景和要求。1.赛题相关大赛背景随着大模型(Deepseek、GPT、LLaMA等)的爆发式应用,AI技术已深度融入金融、医疗、智能终端语音交互场等核心领域&#xf…

Compose笔记(四十二)--RangeSlider

这一节主要了解一下Compose中的RangeSlider,在Jetpack Compose中,RangeSlider是Material3库提供的双滑块范围选择控件,用于在一个连续区间内选择最小值和最大值。它能直观地设置一个区间范围,广泛应用于筛选、过滤等场景,简单总结…

window10本地运行datax与datax-web

搭建 dataX 前置条件 JDK(1.8以上,推荐1.8)Python(2或3都可以)Apache Maven 3.x (Compile DataX) 下载 datax 编译好的包 https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz 进入目录,使用 powershell 打开 执行解压命令…

PDF注释的加载和保存的实现

PDF注释功能文档 概述 本文档详细说明了PDF注释功能的实现,包括注释的加载和保存功能。该功能基于Android PDFBox库实现,支持Ink类型注释的读取和写入。 功能模块 1. 注释加载功能 (getAnnotation()) 功能描述 从PDF文件中加载已存在的注释,并…

Linux环境下实现简单TCP通信(c)

具体代码实现 server.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>#define PORT 8080 #define BUFFER_SIZE 1024void handle_client(int client_s…

炫酷圆形按钮调色器

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>圆形按钮颜色控制器</title><style>bod…

Vue 3 的编译时优化如何改写 DOM 操作规则

在现代前端开发中&#xff0c;框架级优化正悄然改变我们处理性能瓶颈的方式。与手动优化策略不同&#xff0c;Vue 3 的编译器在构建阶段就完成了关键性能改造&#xff0c;为 DOM 操作效率带来质的飞跃。一、虚拟DOM的隐藏成本虚拟DOM&#xff08;Virtual DOM&#xff09;通过内…

Angular初学者入门第二课——.ts、.d.ts、.state.ts的区别(精品)

初次接触 Angular 实际项目时&#xff0c;发现里边有很多不同后缀的文件&#xff0c;虽然没深入研究过&#xff0c;但根据其他编程语言的经验猜测这应该是通过后缀名来区分文件的作用。后来有时间研究了一下具体的细节和不同点&#xff0c;就有了今天这篇文章&#xff0c;这些知…

进程状态+进程优先级+进程上下文切换解读

一、进程状态 什么是进程状态&#xff1f;进程状态指的是在操作系统中进程在生命周期中所处的不同阶段。进程状态有哪些呢&#xff1f;我们可以看到上述图片 进程状态分为&#xff1a;创建状态、就绪状态、运行状态、阻塞状态和终止状态所有的操作系统在实现进程状态变化的时候…

Android 原生与 Flutter 通信完整实现 (Kotlin 版)

1. 项目配置 pubspec.yaml 添加依赖 dependencies:flutter:sdk: flutterprovider: ^6.0.52. Flutter 端实现 状态管理类 // settings_provider.dart import package:flutter/foundation.dart;class SettingsProvider with ChangeNotifier {String _themeColor blue;bool _dark…

数字图像处理3

图像线性滤波——目的就是滤去噪声&#xff0c;但是边缘会模糊&#xff0c;整体也模糊线性&#xff1a;邻域平均法&#xff08;4邻域平均和8邻域平均&#xff09;用当前运算点所在邻域的平均值来代替该点的平均值im_for_read"D:\AAAproject\PYproject\EXPERuse\zaosheng.j…