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

概述

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

神经网络计算详解

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

神经网络的各层参数和激活函数符号化如下:

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

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

前向传播

前向传播过程如下:

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

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

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

反向传播

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

对于平方损失函数:

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

记输出层的输入为

根据链式法则:

=>

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

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



=>=

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

根据链式求导法则:

由上可知,

其中是输出层的参数矩阵, 是向量。我们想要计算 的导数。

我们对 求导数,由于 不包含 ,它们在导数中变为零:

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

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

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

最终, 的导数是

=>

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

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

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

损失函数对输入的梯度为

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

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

超参数的更新

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

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

相关推荐
陈天伟教授20 小时前
人工智能应用- 扫地机器人:02. 机器人 ≠ 人工智能
人工智能·神经网络·游戏·自然语言处理·机器人·机器翻译
隔壁大炮20 小时前
第二章 多层神经网络
人工智能·深度学习·神经网络·算法
肾透侧视攻城狮21 小时前
《掌握TensorFlow数据管道:核心API详解、高效构建策略、性能调优与完整项目实战》
深度学习·神经网络·内存管理·性能优化策略·tensorflow数据处理·tensorflow 管道·图像分类管道
Yaozh、1 天前
【word2vec模型】两种模型结构CBOW和Skip-gram的具体过程
人工智能·深度学习·神经网络·自然语言处理·nlp·word2vec
陈天伟教授1 天前
人工智能应用- 扫地机器人:01.什么是机器人
人工智能·神经网络·语言模型·自然语言处理·机器人·机器翻译
天云数据1 天前
神经网络,人类表达的革命
人工智能·深度学习·神经网络·机器学习
好家伙VCC2 天前
# 光计算驱动的编程范式革新:用Python实现光子神经网络模拟器在传统电子计算架构逼近物理极限的今天,**光计算**正
java·开发语言·python·神经网络
shangyingying_12 天前
图像质量评价(IQA)
人工智能·python·神经网络
不惑_2 天前
通俗理解消息传递机制
人工智能·神经网络·生成对抗网络·架构
如若1232 天前
SoftGroup训练FORinstance森林点云数据集——从零到AP=0.506完整复现
人工智能·python·深度学习·神经网络·计算机视觉