首页 > 其他分享 >聊聊 神经网络模型 传播计算逻辑

聊聊 神经网络模型 传播计算逻辑

时间:2023-12-02 14:44:17浏览次数:32  
标签:逻辑 函数 梯度 损失 神经网络 参数 聊聊 隐藏

概述

预训练过程就是在不断地更新权重超参数与偏置超参数,最后选择合适的超参数,生成超参数文件。上一篇博客 是使用已有的预训练超参数文件,要训练自己的超参数,需要对神经网络层中前向传播与反向传播计算熟悉,了解计算逻辑,才能不断地更新选择合适的超参数。

神经网络计算详解

整个神经网络的层数是4层,从顺序来分别是:输入层,两层隐藏层,输出层。隐藏层的激活函数选择sigmoid函数;输出层用softmax函数归一化处理。
神经网络的各层参数和激活函数符号化如下:

  • 输入层:(x)
  • 第一个隐藏层:()
  • 第二个隐藏层:()
  • 输出层:(y)
  • 权重参数:()
  • 偏置参数:()
  • 激活函数:() (例如,Sigmoid、ReLU)
  • 损失函数:(L)

为简化推导,假设使用平方损失函数 (),其中 () 为真实标签。

前向传播

前向传播过程如下:

  1. 输入层到第一个隐藏层:
  2. 第一个隐藏层到第二个隐藏层:
  3. 第二个隐藏层到输出层:

接下来计算反向传播的过程,反向传播的计算过程基于链式法则,目的是计算损失函数相对于网络参数(权重和偏置)的梯度。

图文并茂可以阅读 聊聊神经网络的基础知识

反向传播

损失函数对输出层输出的梯度

对于平方损失函数:

损失函数对输出层输入的梯度

记输出层的输入为

根据链式法则:

=>
这里 是激活函数 的导数。比如,如果使用 Sigmoid 激活函数,那么

损失函数对输出层超参数的梯度






=>=

第二个隐藏层,损失函数对输入的梯度

根据链式求导法则:

由上可知,
其中是输出层的参数矩阵, 是向量。我们想要计算 的导数。
我们对 求导数,由于 不包含 ,它们在导数中变为零:

由于第二项为零。只需要计算第一项:

这里 是矩阵, 是向量。使用矩阵微积分规则:

所以,导数 ,其中 的转置矩阵。
最终, 的导数是

=>

第二个隐藏层,损失函数权重和偏置的梯度

根据上述计算逻辑,可以很方便的推出,损失函数对超参数的梯度为

第一个隐藏层,损失函数对输入,超参数的梯度

损失函数对输入的梯度为

损失函数对超参数的梯度为


这样就完成了反向传播的输入、超参数计算过程。这些梯度的计算用于以更新神经网络的权重和偏置。

超参数的更新

上述已计算出来了超参数的梯度,现在用于更新神经网络的超参数,以输出层的权重超参数更新为例;其公式为:

其中 为学习率,的值在上述已计算出来了,直接替换即可。

标签:逻辑,函数,梯度,损失,神经网络,参数,聊聊,隐藏
From: https://www.cnblogs.com/zhiyong-ITNote/p/17871587.html

相关文章

  • 逻辑运算符-C语言-2023/12/2
    ......
  • 软件开发:组织大规模逻辑的技艺
    技艺永恒,生命短暂,机会易逝,实验莫测,抉择艰难。程序员是吃“逻辑”这碗饭的。那么,怎么才能安心地吃这碗饭呢?你需要掌握组织大规模逻辑的技艺。要掌握这门技艺,需要有一些思想方法论来指导。本文谈谈,软件业界是如何应对组织大规模逻辑的。思想结构化抽象软件,本质上是一种可动......
  • OpenPie 和 ChatGPT 聊聊云上数据计算的那些事儿
    要说时下科技圈最火的新技术话题,那就非ChatGPT莫属了。由它引发的各类“人工智能(AI)能否取代人工”的讨论狂飙不停,抛开法律和道德层面的争议,ChatGPT确实可以准确地回答用户大部分的通用知识问题。那么大家是否会好奇,ChatGPT是依靠什么获得了这样“无所不知”的超能力呢?   ......
  • 使用物理磁盘对已用lvm逻辑卷进行扩容
    需求lvm上创建了两个logicvolume需要对其中一个进行扩容。方法#以下命令均使用root权限执行sudo-i#查入磁盘并确定设备编号lsblk#向lvm组中添加两块硬盘vgextendlvm/dev/sdd/dev/sde#确认磁盘已经成功加入pvs#查看logicvolumelvdispaly#将剩余空间都分......
  • Mybatis-plus逻辑删除
    转载自:www.javaman.cn1、application.yml配置mybatis-plus:表示这是MyBatis-Plus的配置部分。global-config:全局配置。db-config:数据库相关配置。logic-delete-field:指定逻辑删除的字段名。在这里,指定的字段名是deleted。这意味着,当你调用MyBatis-Plus的逻辑......
  • postgresql从入门到精通教程 - 第36讲:postgresql逻辑备份
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第36讲:PostgreSQL逻辑备份 第36讲:12月02日(周六)19......
  • 机器学习中的典型算法——卷积神经网络(CNN)
    1.机器学习的定位AI,是我们当今这个时代的热门话题,那AI到底是啥?通过翻译可知:人工智能,而人工智能的四个核心要素:-数据-算法-算力-场景然后机器学习是人工智能的一部分,机器学习里面又有新的特例:深度学习。通俗来说机器学习即使用机器去学习一部分数据,然后去预测新的数据所属......
  • Aloudata 余俊:数据虚拟化技术如何实现敏捷高效的逻辑数据集成与链路编排
    一、Data Fabric 与数据虚拟化简介在正式介绍 Data Fabric 之前,我想先回顾一下我们现有的数据仓库体系面临的问题。当提到数据仓库时,许多从事数据工作的人可能会想到 ETL(抽取、转换、加载)和一些技术工具,如 Hive、Hadoop 和 Spark。我在过去十多年一直在数据仓库领域工作,与......
  • 聊聊卷积神经网络CNN
    卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种被广泛应用于图像识别、语音识别和自然语言处理等领域的深度学习模型。与RNN、Transformer模型组成AI的三大基石。在卷积神经网络中,相比较普通的神经网络,增加了卷积层(Convolution)和池化层(Pooling)。其结构一般将会是如下:......
  • 零代码集成自动化的实现逻辑是什么?
    零代码的概念是什么?零代码平台是一种软件开发工具或平台,非技术人员能够创建和部署应用程序,而无需编写任何代码。它提供了可视化的界面和拖拽式的操作,使用户能够通过简单的配置和组合,以图形化的方式构建应用程序。这种平台通常包含了丰富的预定义组件、模板和工具,用户可以根据自己......