反向传播 — 简单解释

一、说明

     关于反向传播,我有一个精雕细刻的案例计划,但是实现了一半,目前没有顾得上继续充实,就拿论文的叙述这里先起个头,我后面将修改和促进此文的表述质量。

    

二、生物神经元

        大脑是一个由大约100亿个神经元组成的复杂网络。每个神经元都有输入通道(树突)和一个输出通道(轴突),将其连接到大约 10,000 个其他神经元。神经元通过电化学信号进行交流。如果这些电输入的总和高于某个阈值,则神经元会激活或放电,这意味着它会沿着轴突将电化学信号传输到其他神经元,这些神经元的树突附着在其任何轴突上。如果总和低于阈值,则神经元不会触发。

        人工神经网络(ANN)是一种大致基于大脑架构的机器学习算法。它通过人工神经元对生物神经元进行建模。人工神经网络是人工神经元的网络(逐层连接)。

        上面有时简明扼要地表示为:

        人工神经元从数据集接收一个或多个数字输入,每个输入乘以一个权重。这些权重就像重要因素一样,影响每个输入的整体影响。然后神经元执行两个步骤:

  1. 加权总和:它计算加权输入的总和。
  2. 激活:它将非线性激活函数应用于此总和。此函数根据神经元输入的组合强度确定神经元是否“触发”(输出非零值)。

        然后,生成的输出被传递到网络中的下一个神经元或成为最终结果。

        最初,每个神经元的每个输入的权重是随机分配的,或者使用一些启发式或迁移学习。除了与每个输入相关的权重外,还为每个神经元分配了一个额外的权重。该权重称为偏差项,与偏差项相关的输入值为 -1。这是一个偏置节点。在训练过程中,所有权重都会反复更新,直到神经元输出与输出实际值之间的差异最小化。神经元输出与实际输出之间的这种差异称为误差。

        通过加权和和非线性激活函数,人工神经网络对数据执行一系列数学运算。这个过程允许他们根据他们在数据中发现的模式进行学习和预测。

        深层和浅层神经网络

        除了输入层和输出层外,神经网络还可以具有一个或多个中间层的神经元。这些层称为隐藏层。浅层神经网络只有一个隐藏层。具有多个隐藏层的网络称为深度神经网络。

        因此,在人工神经网络中,随着每层神经元数和神经元层数的增加,权重的数量也会增加。人工神经网络的训练或拟合包括从训练数据中迭代学习其权重的最佳值。使用技术优化权重

        错误

        包括神经网络在内的所有 ML 模型都会学习输入数据(称为训练数据)中的模式(模型或数学方程),并使用这些模式来预测看不见的数据(测试数据)的目标值。预测值与实际值不匹配将计为误差。

        神经网络(就像线性回归一样)从他们的错误或错误中学习。

        对于给定的数据集,通常使用量化网络所犯错误的数学函数。这种函数称为成本函数或损失函数。成本函数量化给定数据点的 DNN 输出与实际输出的接近程度。

        常见的损失函数是回归任务的均方损失,分类任务的交叉熵损失。损失函数必须是可微的。

        均方误差 (MSE):

三、人工神经网络的训练

        该错误仅在网络的输出层变得明显。成本函数相对于网络中每个权重的梯度(偏导数)用于根据梯度下降算法指定的权重更新规则或其变体更新网络的特定权重。

        函数的导数是函数值(输出)的变化与其输入(数据)的变化之比。正导数意味着函数输出随着输入的增加而增加,反之亦然。

        梯度下降是一种函数最小化算法。它用于最小化网络的成本函数/损失/错误。也就是说,梯度下降计算 epoch 之后网络权重的更新(epoch 是训练数据集的传递),直到我们得到一组误差函数梯度最小(理想情况下为零)的权重。我们在这里使用的原理是,当函数处于最小值或最大值时,函数的梯度为零。

        让我们将其可视化为其中一个权重 wi、相应的成本函数 J 和一个称为学习率的参数 η。

        

梯度下降

在梯度下降中更新权重(参数)的公式为:

        梯度下降权重更新规则

        高学习率(大η)会导致权重的大幅更新,可能会超过最小值并卡在局部最小值。相反,低学习率(小η)会导致收敛缓慢,甚至卡在起点附近。正确选择学习率对于高效培训很重要。

四、微积分的链式法则

        如何计算损失函数的偏导数是直截了当的,因为权重定向连接到输出层或输出神经元,但是我们如何计算其偏导数,而不是直接连接到输出层的权重,即隐藏层中输入的权重。

        链式法则是计算复合函数(如神经网络)导数的强大工具。

        正如我们所看到的,神经网络是一个复合函数(即使是单个神经元也是权重和输入相乘的复合函数,将这些乘积相加,应用激活函数),其中每一层都获取前一层的输出并应用转换。然后将最终输出与所需结果进行比较,从而得出成本函数值。

        链式法则指出,复合函数 f(g(x)) 的导数等于 f′(g(x)∗g′(x)。 即,复合函数 f(g(x)) 的导数等于函数 f 相对于 g(x) 的导数和函数 g 相对于 x 的导数的乘积。

        反向传播递归应用链式法则来计算网络中每个权重的成本函数梯度,然后根据梯度下降算法的规则更新该权重。

        让我们以一个非常小的神经网络为例,它只有一个输入神经元 x、一个隐藏神经元和一个输出神经元。净输出为 y′,实际输出为 y,因此误差 J(w) 为 1/n*(y−y′)^2(假设 MSE 为成本函数)。

        小型神经网络

        现在要找到 J wrt y′ 的导数,链式法则说我们需要找到 y′ wrt 的导数,它自己的输入参数,即 w2 和 z,(从网络中可以看出,y′ 是应用于 w2 和 z 乘积的 SoftMax 的组合),而 z 反过来是一个复合函数,由 sigmoid 组成,应用于 w1 和 x 的函数积。因此,我们需要计算以下导数,

        因此,链式法则的递归应用允许我们训练非常深入的神经网络,其中包含数十亿层和数十亿(数万亿)参数。一个深度(层数)和宽度(每层神经元数)足够大的深度神经网络,在足够的数据上训练足够多的纪元,可以近似任何函数。这就是为什么今天的生成式人工智能模型已经学习了英语或印地语等自然语言的模型,或者他们已经学会了生成逼真的艺术。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于tcp协议

目录 前言: 一、TCP协议的基本概念: 二、TCP协议的主要特点: 2.1面向连接: 2.2可靠传输: 2.3基于字节流: 三、TCP连接的建立与终止: 3.1连接建立: 3.1.1SYN: 3…

【SystemVerilog】结构体真是太好用了~

前言 Verilog最大的缺陷之一是没有数据结构。在SystemVerilog中可以使用struct创建结构,struct只是把数据组织到一起,是数据的集合,所以是可综合的。 结构体是可以通过模块接口进行传递的,这就是本文想描述的内容。 一、结构体的…

YOLOv7改进 | 更换主干网络之PP-LCNet

前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…

字符串函数(C语言详解)

1.字符串简介 字符串是一串连续的且以\0结尾的字符 char arr[]"zhangsan";//将字符串存到数组里面 char*a"lisi";//常量字符串 char arr1[]{z,h,a,n,g};//字符数组 注意: 1.以第一种形式初始化字符串时,计算机会自动在字符串末尾加…

指针(1)

1.内存和地址 1.1 内存 生活中我们有了房间号才能够快速找到房间,同样,在计算机中CPU(中央处理器)在处理数据时,需要的数据是在内存中进行读取的,处理完之后又会放回内存中。 在内存空间中&#xff0c…

OJ_最长公共子序列

题干 C实现 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std;int dp[1002][1002];int main() {int n,m;char s1[1001];char s2[1001];scanf("%d%d",&n,&m);scanf("%s%s",s1,s2);//dp[i][j]是…

拼多多、淘宝、抖音、小红书商家,如何轻松在1688找到靠谱货源?

无论你是做拼多多、淘宝、抖音小店、小红书或者1688运营及采购商们&#xff0c;只要想在1688上寻找靠谱货源时&#xff0c;可以按照以下几个步骤进行筛选&#xff1a; 一、明确需求 首先&#xff0c;你需要清晰地了解自己的经营方向、目标消费群体以及所需产品的具体规格、材…

可变形卷积v4 |更快更强,效果远超DCNv3

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 一、论文摘要 我们介绍了可变形卷积v4 (DCNv4)&#xff0c;这是一种高效的算子&#xff0c;专为广泛的视觉应用而设计。DCNv4通过两个关键增强解决了…

26.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-实现生成日志文件的功能

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;25.利用全新的通…

PTA- - -个位数统计(C语言)

Hello,好久没更新啦&#xff0c;今天给大家讲解一下PTA平台上面的“个位数统计”这道题吧~ 题目是要统计一个数字每个位上数字出现的次数。下面是一个解决方案的思路和相应的 C 语言代码&#xff1a; 思路&#xff1a; 初始化一个大小为10的数组&#xff0c;用于计数每个数字…

【LeetCode】升级打怪之路 Day 24:回溯算法的解题框架

今日题目&#xff1a; 46. 全排列51. N 皇后78. 子集 目录 LC 46. 全排列LC 51. N 皇后LC 78. 子集 【classic】1&#xff09;思路一2&#xff09;思路二 今天学习了回溯算法的解题框架&#xff1a;回溯算法解题套路框架 | labuladong 回溯算法的整体框架都是&#xff1a; re…

提高工作效率,选择SmartEDA优质电子电路设计软件

在当今快节奏的工程环境中&#xff0c;电子电路设计软件的选择至关重要。随着技术的不断发展&#xff0c;工程师们需要能够快速、精确地设计和验证各种电子电路。而SmartEDA作为一款领先的电子电路设计软件&#xff0c;为工程师们提供了提高工作效率的强大工具。 1. 提供全面的…

pandas 数据透视和逆透视

本篇介绍 pandas 数据重塑的几个有用变换。假设我们有学生语数外考试的成绩数据&#xff0c;大家常见的是这种格式&#xff1a; 如果数据放在数据库中&#xff0c;下面的格式比较符合数据库范式&#xff1a; 现在&#xff0c;任务来了。要实现由图一向图二的变换&#xff0c;传…

centos破解root密码以及如何防止他人破解root密码

目录 破解root密码 服务器重启 1.再重启页面上下选择第一个按e进入内核编辑模式 2.找到linux16开头的一行&#xff0c;光标移动到最后添加 init/bin/sh Ctrlx 保存 3.进入单用户模式 4.重新挂在根分区 5.关闭selinux 6.更新密码 passwd 7.在根分区下面创建一个隐藏文件…

移动端使用 echarts中 滚动条 dataZoom 改造为内容区域可以左右滚动

移动端使用 echarts中 滚动条 dataZoom 改造为内容区域可以左右滚动 直接上图 &#xff1a; 主要是下面这段代码&#xff1a; "dataZoom": [{"type": "inside","show": false,"xAxisIndex": [0],"zoomOnMouseWheel&…

Frostmourne - Elasticsearch源日志告警配置

简介 配置Frostmourne 接入Elasticsearch源进行日志匹配告警&#xff0c;并静默规则&#xff0c;告警消息发送到企业微信&#xff0c;告警信息使用Markdown。 部署安装教程查看&#xff1a; https://songxwn.com/frostmourne_install ELK 安装教程&#xff1a;https://songx…

Spring Boot整合canal实现数据一致性解决方案解析-部署+实战

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1.前言 2.canal部署安装 3.Spring Boot整合canal 3.1数据库与缓存一致性问题…

golang中new和make的区别

1. 先看一个例子 package mainimport "fmt"func main() {var a *int*a 10fmt.Println(*a) }运行结果是啥呢&#xff1f; 问&#xff1a;为什么会报这个panic呢&#xff1f; 答&#xff1a;因为如果是一个引用类型&#xff0c;我们不仅要声明它&#xff0c;还要为…

若依(ruoyi-vue)后端部署windows系统 (一文搞通,从idea安装到打包部署)

一、下载idea并破解&#xff0c;防止时间久了没法打开 访问 IDEA 官网&#xff0c;下载 IDEA 2023.2.3 版本的安装包&#xff0c;下载链接如下 : https://www.jetbrains.com/idea/download/ 卸载旧版本&#xff0c;安装新版本 弹框会提示选择安装路径&#xff0c;我这里直接选择…

蜡烛图K线图采用PictureBox控件绘制是实现量化交易的第一步非python量化

用vb6.0开发的量化交易软件 VB6量化交易软件的演示视频演示如上 股票软件中的蜡烛图是非常重要的一个东西&#xff0c;这里用VB6.0自带的Picture1控件的Line方法就可以实现绘制。 关于PictureBox 中的line 用法 msdn 上的说明为如下所示 object.Line [Step] …