当前位置: 首页 > news >正文

神经网络算法 - 一文搞懂Back Propagation(反向传播)

本文将从反向传播的本质、反向传播的原理、反向传播的案例 三个方面,带您一文搞懂反向传播 Back Propagation 。

反向传播

**__**一、**__**_****_**_****_**_****_**_**反向传播**_**_****_**_****_**_****__的___本质__

前向传播(Forward Propagation): 前向传播是神经网络通过层级结构和参数,将输入数据逐步转换为预测结果的过程,实现输入与输出之间的复杂映射。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前向传播

输入层:

  • 输入层接收训练集中的样本数据。

  • 每个样本数据包含多个特征,这些特征被传递给输入层的神经元。

  • 通常,还会添加一个偏置单元来辅助计算。

  • 隐藏层:

  • 隐藏层的每个神经元接收来自输入层神经元的信号。

  • 这些信号与对应的权重相乘后求和,并加上偏置。

  • 然后,通过激活函数(如sigmoid)处理这个求和结果,得到隐藏层的输出。

  • 输出层:

  • 输出层从隐藏层接收信号,并进行类似的加权求和与偏置操作。

  • 根据问题的类型,输出层可以直接输出这些值(回归问题),或者通过激活函数(如softmax)转换为概率分布(分类问题)。

反向传播(Back Propagation): 反向传播算法利用链式法则,通过从输出层向输入层逐层计算误差梯度, 高效求解神经网络参数的偏导数,以实现网络参数的优化和损失函数的最小化。

反向传播

  • 利用链式法则:反向传播算法基于微积分中的链式法则,通过逐层计算梯度来求解神经网络中参数的偏导数

  • 从输出层向输入层传播:算法从输出层开始,根据损失函数计算输出层的误差,然后将误差信息反向传播到隐藏层,逐层计算每个神经元的误差梯度。

  • 计算权重和偏置的梯度:利用计算得到的误差梯度,可以进一步计算每个权重和偏置参数对于损失函数的梯度

  • 参数更新:根据计算得到的梯度信息,使用梯度下降或其他优化算法来更新网络中的权重和偏置参数,以最小化损失函数。

_**二、_**_**_**_****_**_****_**_****_**_**反向传播**_**_****_**_****_**_****__的___**_**___原理____**_**_

链式法则(Chain Rule):链式法则是微积分中的一个基本定理,用于计算复合函数的导数。如果一个函数是由多个函数复合而成,那么该复合函数的导数可以通过各个简单函数导数的乘积来计算。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


链式法则

  • 简化梯度计算:在神经网络中,损失函数通常是一个复合函数,由多个层的输出和激活函数组合而成。链式法则允许我们将这个复杂的复合函数的梯度计算分解为一系列简单的局部梯度计算,从而简化了梯度计算的过程。

  • 高效计算梯度:通过链式法则,我们可以从输出层开始,逐层向前计算每个参数的梯度。这种逐层计算的方式避免了重复计算,提高了梯度计算的效率。

  • 支持多层网络结构:链式法则不仅适用于简单的两层神经网络,还可以扩展到具有任意多层结构的深度神经网络。这使得我们能够训练和优化更加复杂的模型。

偏导数: 偏导数是多元函数中对单一变量求导的结果,它在神经网络反向传播中用于量化损失函数随参数变化的敏感度,从而指导参数优化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


偏导数

  • 偏导数的定义:

  • 偏导数是指在多元函数中,对其中一个变量求导,而将其余变量视为常数的导数。

  • 在神经网络中,偏导数用于量化损失函数相对于模型参数(如权重和偏置)的变化率。

  • 反向传播的目标:

  • 反向传播的目标是计算损失函数相对于每个参数的偏导数,以便使用优化算法(如梯度下降)来更新参数。

  • 这些偏导数构成了梯度,指导了参数更新的方向和幅度。

  • 计算过程:

  • 输出层偏导数:首先计算损失函数相对于输出层神经元输出的偏导数。这通常直接依赖于所选的损失函数。

  • 隐藏层偏导数:使用链式法则,将输出层的偏导数向后传播到隐藏层。对于隐藏层中的每个神经元,计算其输出相对于下一层神经元输入的偏导数,并与下一层传回的偏导数相乘,累积得到该神经元对损失函数的总偏导数。

  • 参数偏导数:在计算了输出层和隐藏层的偏导数之后,我们需要进一步计算损失函数相对于网络参数的偏导数,即权重和偏置的偏导数。

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈


_**三、**_**_****_**_**反向传播**_**_****_**_****的案例:简单神经网络_

1. 网络结构
  • 假设我们有一个简单的两层神经网络,结构如下:

  • 输入层:2个神经元(输入特征 x1 和 x2)

  • 隐藏层:2个神经元(带有激活函数 sigmoid)

  • 输出层:1个神经元(带有激活函数 sigmoid)

  • 网络的权重和偏置如下(这些值是随机初始化的,实际情况中会使用随机初始化):

  • 输入层到隐藏层的权重矩阵 W1:[[0.5, 0.3], [0.2, 0.4]]

  • 隐藏层到输出层的权重向量 W2:[0.6, 0.7]

  • 隐藏层的偏置向量 b1:[0.1, 0.2]

  • 输出层的偏置 b2:0.3

2. 前向传播

  • 给定输入 [0.5, 0.3],进行前向传播:

  • 隐藏层输入:[0.5*0.5 + 0.3*0.2 + 0.1, 0.5*0.3 + 0.3*0.4 + 0.2] = [0.31, 0.29]

  • 隐藏层输出(经过 sigmoid 激活函数):[sigmoid(0.31), sigmoid(0.29)][0.57, 0.57]

  • 输出层输入:0.6*0.57 + 0.7*0.57 + 0.3 = 0.71

  • 输出层输出(预测值,经过 sigmoid 激活函数):sigmoid(0.71)0.67

3. 损失计算

  • 假设真实标签是 0.8,使用均方误差(MSE)计算损失:

  • 损失 = (0.8 - 0.67)^20.017

4. 反向传播:__计算损失函数相对于网络参数的偏导数,并从输出层开始反向传播误差。

  • 输出层偏导数:

  • 损失函数对输出层输入的偏导数(δ2):2 * (0.67 - 0.8) * sigmoid_derivative(0.71)-0.05

  • sigmoid 函数的导数:sigmoid(x) * (1 - sigmoid(x))

  • 隐藏层偏导数:

  • 损失函数对隐藏层每个神经元输出的偏导数(δ1):[δ2 * 0.6 * sigmoid_derivative(0.31), δ2 * 0.7 * sigmoid_derivative(0.29)]

  • 计算后得到 δ1 ≈ [-0.01, -0.01](这里简化了计算,实际值可能有所不同)

  • 参数偏导数:

  • 对于权重 W2:[δ2 * 隐藏层输出1, δ2 * 隐藏层输出2] = [-0.03, -0.04]

  • 对于偏置 b2:δ2 = -0.05

  • 对于权重 W1 和 偏置 b1,需要更复杂的计算,因为它们影响到隐藏层的输出,进而影响到输出层的输入和最终的损失。这些偏导数依赖于 δ1 和输入层的值。

5. 参数更新
  • 使用梯度下降更新参数(学习率设为 0.1):

  • 更新 W2:W2 - 学习率 * 参数偏导数

  • 更新 b2:b2 - 学习率 * 参数偏导数

  • 同样地更新 W1 和 b1

6. 迭代
  • 重复步骤 2-5,直到网络收敛或达到预设的迭代次数。

在大模型时代,我们如何有效的去学习大模型?

现如今大模型岗位需求越来越大,但是相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也_想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把都打包整理好,希望能够真正帮助到大家_。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,下面是我整理好的一套完整的学习路线,希望能够帮助到你们学习AI大模型。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

三、AI大模型经典PDF书籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、AI大模型各大场景实战案例

在这里插入图片描述

结语

【一一AGI大模型学习 所有资源获取处(无偿领取)一一】
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • js去重的方法
  • Qt使用 QSetting 对 ini 配置文件进行操作
  • 游戏app激励视频广告预加载位置,最大化广告收益
  • 深入理解 CSS Flex 布局
  • git 项目可以拉取提交不了
  • Linux:文件操作
  • EV代码签名证书——消除软件下载时的安全警告
  • Qt之控件介绍
  • 推荐一个开箱即用的中后台前端解决方案,基于vue3开发,私活神器(带源码)
  • 项目初始化踩坑记录
  • 【Matlab】RF随机森林回归预测算法 可预测未来数据(附代码)
  • 计算机算法设计与分析【第一章】
  • [数据集][目标检测]风力发电机叶片损伤检测数据集VOC+YOLO格式5029张8类别
  • 五种多目标优化算法(MOAHA、NSGA2、NSGA3、SPEA2、MODA)性能对比,包含47个多目标测试函数,6种评价指标,MATLAB代码
  • Java 输入与输出之 NIO【非阻塞式IO】【NIO核心原理】探索之【一】
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • chrome扩展demo1-小时钟
  • Docker 笔记(2):Dockerfile
  • export和import的用法总结
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java Agent 学习笔记
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js作用域和this的理解
  • opencv python Meanshift 和 Camshift
  • ucore操作系统实验笔记 - 重新理解中断
  • - 概述 - 《设计模式(极简c++版)》
  • 构建二叉树进行数值数组的去重及优化
  • 和 || 运算
  • 解决iview多表头动态更改列元素发生的错误
  • 前端_面试
  • 日剧·日综资源集合(建议收藏)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 自动记录MySQL慢查询快照脚本
  • Python 之网络式编程
  • ​2021半年盘点,不想你错过的重磅新书
  • #、%和$符号在OGNL表达式中经常出现
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #include
  • #Linux(make工具和makefile文件以及makefile语法)
  • $ git push -u origin master 推送到远程库出错
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (强烈推荐)移动端音视频从零到上手(下)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) 物件導向與老子思想 (OO)
  • (源码分析)springsecurity认证授权
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .Net多线程总结
  • .NET开源、简单、实用的数据库文档生成工具
  • .net实现客户区延伸至至非客户区