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

这篇具有很好参考价值的文章主要介绍了聊聊 神经网络模型 传播计算逻辑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

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

神经网络计算详解

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

  • 输入层:(聊聊 神经网络模型 传播计算逻辑)
  • 第一个隐藏层:(聊聊 神经网络模型 传播计算逻辑)
  • 第二个隐藏层:(聊聊 神经网络模型 传播计算逻辑)
  • 输出层:(聊聊 神经网络模型 传播计算逻辑)
  • 权重参数:(聊聊 神经网络模型 传播计算逻辑)
  • 偏置参数:(聊聊 神经网络模型 传播计算逻辑)
  • 激活函数:(聊聊 神经网络模型 传播计算逻辑) (例如,Sigmoid、ReLU)
  • 损失函数:(聊聊 神经网络模型 传播计算逻辑)

为简化推导,假设使用平方损失函数 (聊聊 神经网络模型 传播计算逻辑),其中 (聊聊 神经网络模型 传播计算逻辑) 为真实标签。

前向传播

前向传播过程如下:

  1. 输入层到第一个隐藏层:
    聊聊 神经网络模型 传播计算逻辑
  2. 第一个隐藏层到第二个隐藏层:
    聊聊 神经网络模型 传播计算逻辑
  3. 第二个隐藏层到输出层:
    聊聊 神经网络模型 传播计算逻辑

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

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

反向传播

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

对于平方损失函数:
聊聊 神经网络模型 传播计算逻辑

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

记输出层的输入为
聊聊 神经网络模型 传播计算逻辑
根据链式法则:聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑
=> 聊聊 神经网络模型 传播计算逻辑
这里 聊聊 神经网络模型 传播计算逻辑 是激活函数 聊聊 神经网络模型 传播计算逻辑 的导数。比如,如果使用 Sigmoid 激活函数,那么聊聊 神经网络模型 传播计算逻辑

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

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

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

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

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

根据链式求导法则:
聊聊 神经网络模型 传播计算逻辑

由上可知,聊聊 神经网络模型 传播计算逻辑
其中聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑是输出层的参数矩阵,聊聊 神经网络模型 传播计算逻辑 是向量。我们想要计算 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑 的导数。
我们对 聊聊 神经网络模型 传播计算逻辑求导数,由于 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑 不包含 聊聊 神经网络模型 传播计算逻辑,它们在导数中变为零:
聊聊 神经网络模型 传播计算逻辑
由于第二项为零。只需要计算第一项:
聊聊 神经网络模型 传播计算逻辑
这里 聊聊 神经网络模型 传播计算逻辑 是矩阵, 聊聊 神经网络模型 传播计算逻辑 是向量。使用矩阵微积分规则:
聊聊 神经网络模型 传播计算逻辑
所以,导数 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑,其中 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑 的转置矩阵。
最终, 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑的导数是聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑
=>聊聊 神经网络模型 传播计算逻辑

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

根据上述计算逻辑,可以很方便的推出,损失函数对超参数聊聊 神经网络模型 传播计算逻辑的梯度为
聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑

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

损失函数对输入聊聊 神经网络模型 传播计算逻辑的梯度为
聊聊 神经网络模型 传播计算逻辑
损失函数对超参数聊聊 神经网络模型 传播计算逻辑的梯度为
聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑
这样就完成了反向传播的输入、超参数计算过程。这些梯度的计算用于以更新神经网络的权重和偏置。

超参数的更新

上述已计算出来了超参数的梯度,现在用于更新神经网络的超参数,以输出层的权重超参数聊聊 神经网络模型 传播计算逻辑更新为例;其公式为:
聊聊 神经网络模型 传播计算逻辑
其中 聊聊 神经网络模型 传播计算逻辑为学习率,聊聊 神经网络模型 传播计算逻辑的值在上述已计算出来了,直接替换即可。文章来源地址https://www.toymoban.com/news/detail-747749.html

到了这里,关于聊聊 神经网络模型 传播计算逻辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】2-2 神经网络 - 前向传播实现3层神经网络

    神经网络的一个重要性质是它可以 自动地 从数据中学习到合适的权重参数。 用图来表示神经网络的话,把最左边的一列称为 输入层 ,最右边的一列称为 输出层 ,中间的一列称为 中间层 。中间层有时也叫 隐藏层 (或隐含层) 首先了解下权重符号的定义 图中权重w **上标

    2024年02月09日
    浏览(53)
  • 神经网络基础-神经网络补充概念-27-深层网络中的前向传播

    深层神经网络中的前向传播是指从输入数据开始,逐层计算每个神经元的输出值,直到得到最终的预测值。 1输入数据传递: 将输入数据传递给网络的输入层。输入数据通常是一个特征矩阵,每一列代表一个样本,每一行代表一个特征。 2加权求和和激活函数: 对于每个隐藏

    2024年02月12日
    浏览(44)
  • 【Python机器学习】决策树、逻辑回归、神经网络等模型对电信用户流失分类实战(附源码和数据集)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 该实例数据来自kaggle,它的每一条数据为一个用户的信息,共有21个有效字段,其中最后一个字段Churn标志该用户是否流失   可用pandas的read_csv()函数来读取数据,用DataFrame的head()、shape、info()、duplicated()、nunique()等来初步

    2024年02月03日
    浏览(49)
  • 深度学习 | 前馈神经网络与反向传播算法

    目录 一、Logistic函数 二、前馈神经网络(FNN) 三、反向传播算法(BP算法) ​四、基于前馈神经网络的手写体数字识别 Logistic函数是学习前馈神经网络的基础。所以在介绍前馈神经网络之前,我们首先来看一看Logistic函数。 Logistic函数定义为: Logistic函数可以看成是一个“挤

    2024年02月04日
    浏览(48)
  • 机器学习17:训练神经网络-反向传播算法

    反向传播算法对于快速训练大型神经网络至关重要。本文将介绍算法的工作原理。 目录 1.简单的神经网络 2.激活函数 3.错误函数 4.正向传播 4.1 更新隐藏层 5.反向传播 5.1 求导数

    2024年02月12日
    浏览(54)
  • CNN卷积神经网络之反向传播过程

    我们假设卷积运算如下(其中couv代表卷积运算,w是卷集核的数据,卷积核为2*2,b为偏置数)。建设上一层输出的特征图是 3 ∗ 3 3*3 3 ∗ 3 ,经过卷积运算以及加上偏置结果如下: [ a 11 l − 1 a 12 l − 1 a 13 l − 1 a 21 l − 1 a 22 l − 1 a 23 l − 1 a 31 l − 1 a 32 l − 1 a 33 l − 1 ] c o u v

    2024年02月13日
    浏览(48)
  • 神经网络中的反向传播:综合指南

    塔曼纳·         反向传播是人工神经网络 (ANN) 中用于训练深度学习模型的流行算法。它是一种监督学

    2024年02月07日
    浏览(46)
  • R语言 BPNN 反向传播神经网络

    ##BPNN-neuronet set.seed(123) folds - createFolds(y=data$Groups,k=10) for(i in 1:10){ test - data[folds[[i]],] train - data[-folds[[i]],] BPNN - neuralnet(Groups~.,data=train,hidden = c(16,8), learningrate = 0.05, ##使用0.05的学习率 threshold = 0.1,# threshold:用于指定迭代停止条件,当权重的最大调整量小于指定值(默认0.01)时迭代

    2024年02月16日
    浏览(40)
  • 深度学习:神经网络的前向传播过程

    Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDN@weixin_43975035 哲学与爱情是我永远都搞不懂的两件事情 注: 以三层神经网络为例说明神经网络的前向传播过程 激活函数采用 R e L U ReLU R e LU 函数 w w w 值和 𝜃 值由反向传播过程确定,此处可忽

    2023年04月20日
    浏览(48)
  • 【机器学习300问】71、神经网络中前向传播和反向传播是什么?

            我之前写了一篇有关计算图如何帮助人们理解反向传播的文章,那为什么我还要写这篇文章呢?是因为我又学习了一个新的方法来可视化前向传播和反向传播,我想把两种方法总结在一起,方便我自己后续的复习。对了顺便附上往期文章的链接方便回顾: 【机器

    2024年04月17日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包