深层神经网络

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

目录

1、深层网络中的前向传播

2、核对矩阵中的维数

3、使用前向、后向传播函数搭建深层神经网络

4、参数和超参数


1、深层网络中的前向传播

  • 一个训练样本 x  前向传播
  • 第一层需要计算 𝑧 [1] = 𝑤[1]𝑥 + 𝑏 [1],𝑎 [1] = 𝑔 [1] (𝑧 [1] )(𝑥可以看做 𝑎 [0]
    第二层需要计算𝑧 [2] = 𝑤[2]𝑎 [1] + 𝑏 [2],𝑎 [2] = 𝑔 [2] (𝑧 [2] )
    以此类推,
    第四层为 𝑧 [4] = 𝑤 [4] 𝑎 [3] + 𝑏 [4] ,𝑎 [4] = 𝑔 [4] (𝑧 [4] ) 前向传播可以归纳为多次迭代𝑧 [𝑙] = 𝑤[𝑙]𝑎 [𝑙−1] + 𝑏 [𝑙] 𝑎 [𝑙] = 𝑔 [𝑙] (𝑧 [𝑙] )

    深层神经网络

    • 向量化实现过程可以写成:𝑍 [𝑙] = 𝑊[𝑙]𝑎 [𝑙−1] + 𝑏 [𝑙],𝐴 [𝑙] = 𝑔[𝑙] (𝑍[𝑙] ) (𝐴 [0] = 𝑋)这里只能用一个显式 for 循环,𝑙从1到𝐿,然后一层接着一层去计算核对矩阵中的维数

    2、核对矩阵中的维数

    • 检查矩阵的维度方法:
      𝑤的维度是(下一层的维数,前一层的维数),即𝑤[𝑙] : ( 𝑛 [𝑙] , 𝑛 [𝑙−1] ) ; 𝑏的维度是(下一层的维数,1),即 : 𝑏 [𝑙] : (𝑛 [𝑙] , 1); 𝑧 [𝑙] ,𝑎 [𝑙] : (𝑛 [𝑙] , 1); 𝑑𝑤[𝑙]和𝑤[𝑙]维度相同,𝑑𝑏[𝑙] 𝑏 [𝑙] 维度相同,且 𝑤 𝑏 向量化维度不变,但 𝑧 , 𝑎 以及𝑥的维 度会向量化后发生变化。

      深层神经网络

    向量化后:
    𝑍 [𝑙] 可以看成由每一个单独的𝑍 [𝑙]叠加而得到,𝑍 [𝑙] = (𝑧 [𝑙][1] 𝑧 [𝑙][2] 𝑧 [𝑙][3] 𝑧 [𝑙][𝑚] ) , 𝑚为训练集大小,所以𝑍 [𝑙]的维度不再是(𝑛 [𝑙] , 1),而是(𝑛 [𝑙] , 𝑚)。 𝐴 [𝑙]: (𝑛 [𝑙] , 𝑚) 𝐴 [0] = 𝑋 = (𝑛 [𝑙] , 𝑚)

    深层神经网络

    3、使用前向、后向传播函数搭建深层神经网络

    •  建一个深度神经网络
    • 在第 𝑙 层你有参数𝑊[𝑙]和𝑏 [𝑙],正向传播里有输入的激活函数,输入是前一层𝑎 [𝑙−1],输是𝑎 [𝑙], 我们之前讲过𝑧 [𝑙] = 𝑊[𝑙]𝑎 [𝑙−1] + 𝑏 [𝑙] , 𝑎 [𝑙] = 𝑔 [𝑙] (𝑧 [𝑙] ) ,那么这就是你如何从入𝑎
      [𝑙−1]走到输出的𝑎 [𝑙] 。之后你就可以把𝑧 [𝑙]的值缓存起来,我在这里也会把这包括在缓存中,因为缓存的 𝑧 [𝑖] 对以后的正向反向传播的步骤非常有用
    • 然后是反向步骤或者说反向传播步骤,同样也是第𝑙层的计算,你会需要实现一个函数输入为𝑑𝑎 [𝑙] ,输出 𝑑𝑎 [𝑙−1]的函数。一个小细节需要注意,输入在这里其实是𝑑𝑎 [𝑙]以及所缓存的𝑧 [𝑙]值,之前计算好的𝑧 [𝑙]值,除了输出 𝑑𝑎 [𝑙−1] 的值以外,也需要输出你需要的梯度
      𝑑𝑊[𝑙]和 𝑑𝑏 [𝑙],这是为了实现梯度下降学习

    深层神经网络

    • 把输入特征𝑎 [0],放入第一层并计算第一层的激活函数,用𝑎 [1]表示,你需要𝑊[1]和𝑏 [1]
      来计算,之后也缓存 𝑧 [𝑙]值。之后喂到第二层,第二层里,需要用到𝑊[2]和𝑏 [2],你会需要计算第二层的激活函数𝑎 [2]。后面几层以此类推,直到最后你算出了𝑎 [𝐿],第𝐿层的最终输出值 𝑦^。在这些过程里我们缓存了所有的𝑧值,这就是正向传播的步骤

      深层神经网络文章来源地址https://www.toymoban.com/news/detail-490056.html

    • 𝑑𝑎 [𝐿]的值放在这里,然后这个方块会给我们𝑑𝑎[𝐿−1]的值,以此类推,直到我们得 𝑑𝑎 [2] 和𝑑𝑎[1],你还可以计算多一个输出值,就是𝑑𝑎[0] ,但这其实是你的输入特征的导数,并不重要,起码对于训练监督学习的权重不算重要,你可以止步于此。反向传播步骤中也会输出𝑑𝑊[𝑙] 𝑑𝑏 [𝑙] ,这会输出 𝑑𝑊 [3] 𝑑𝑏 [3] 等等
    • 神经网络的一步训练包含了,从 𝑎 [0]开始,也就是 𝑥 然后经过一系列正向传播计算得到 𝑦^,之后再用输出值计算这个(第二行最后方块),再实现反向传播。现在你就有所有的导数项了,𝑊也会在每一层被更新为 𝑊 = 𝑊 − 𝛼𝑑𝑊, 𝑏也一样,𝑏 = 𝑏 − 𝛼𝑑𝑏,反向传播就都计算完毕,我们有所有的导数值,那么这是神经网络一个梯度下降循环
    • 其中 反向传播中总是在循环进行da = dL/da,然后使用dz = dl/da*da/dz 求 dz(在 da/dz的求导中会使用到激活函数求导),最后使用 z 对 参数 w 和 b 求导进行梯度下降

    4、参数和超参数

    • 深度神经网络起很好的效果,还需要规划好参数以及超参数
    • 参数:神经网络中的参数是指权重和偏置,它们是神经网络中可训练的部分,需要通过训练来学习得到。在神经网络的每一层中,都有一组权重和一个偏置。权重用于将输入信号进行线性变换,偏置用于调整变换后的数据分布,使其更符合任务要求。通过不断调整这些参数的值,神经网络可以逐渐逼近最优解。
    • 超参数:超参数是指神经网络中的一些非训练参数,需要手动指定并根据经验或者调参等方法进行优化。比如神经网络中的学习率、正则化系数、网络层数、隐藏层神经元数量等都是超参数。超参数的选择可以直接影响神经网络的性能和泛化能力。
    • 比如算法中的 learning rate 𝑎(学习率)、 iterations(梯度下降法循环的数量)、 𝐿(隐藏
      层数目)、 𝑛 [𝑙] (隐藏层单元数目)、 choice of activation function(激活函数的选择)都需要你来设置,这些数字实际上控制了最后的参数𝑊和𝑏 的值,所以它们被称作超参数
    • 参数的作用:神经网络中的参数是模型的核心部分,它们的优化可以让神经网络更好地拟合数据,从而提高模型的准确率。
    • 超参数的作用:超参数的选择可以影响模型的训练效率、泛化能力、网络的容量和复杂度等方面,使得模型更加适合特定的任务。

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

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

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

相关文章

  • 基于堆叠⾃编码器的时间序列预测 深层神经网络

    自适应迭代扩展卡尔曼滤波算法(AIEK)是一种滤波算法,其目的是通过迭代过程来逐渐适应不同的状态和环境,从而优化滤波效果。 该算法的基本思路是在每一步迭代过程中,根据所观测的数据和状态方程,对滤波器的参数进行自适应调整,以便更好地拟合实际数据的分布

    2024年02月09日
    浏览(25)
  • 深度学习|4.1 深L层神经网络 4.2 深层网络的正向传播

    对于某些问题来说,深层神经网络相对于浅层神经网络解决该问题的效果会较好。所以问题就变成了神经网络层数的设置。 其中 n [ i ] n^{[i]} n [ i ] 表示第i层神经节点的个数, w [ l ] w^{[l]} w [ l ] 代表计算第l层所采用的权重系数, b [ l ] b^{[l]} b [ l ] 代表计算第l层所用的偏移量

    2024年01月21日
    浏览(26)
  • 神经网络基础-神经网络补充概念-30-搭建神经网络块

    搭建神经网络块是一种常见的做法,它可以帮助你更好地组织和复用网络结构。神经网络块可以是一些相对独立的模块,例如卷积块、全连接块等,用于构建更复杂的网络架构。

    2024年02月12日
    浏览(36)
  • 神经网络基础-神经网络补充概念-17-计算神经网络的输出

    计算神经网络的输出通常涉及前向传播(Forward Propagation)的过程,其中输入数据通过网络的层级结构,逐步被传递并变换,最终生成预测结果。下面我将为你展示一个简单的神经网络前向传播的示例。 假设我们有一个具有以下参数的简单神经网络: 输入层:2个神经元 隐藏

    2024年02月12日
    浏览(30)
  • 神经网络实验--卷积神经网络

    本实验主要为了掌握深度学习的基本原理;能够使用TensorFlow实现卷积神经网络,完成图像识别任务。 文章目录 1. 实验目的 2. 实验内容 3. 实验过程 题目一: 题目二: 实验小结讨论题 ①掌握深度学习的基本原理; ②能够使用TensorFlow实现卷积神经网络,完成图像识别任务。

    2024年02月06日
    浏览(41)
  • 神经网络与卷积神经网络

    全连接神经网络是一种深度学习模型,也被称为多层感知机(MLP)。它由多个神经元组成的层级结构,每个神经元都与前一层的所有神经元相连,它们之间的连接权重是可训练的。每个神经元都计算输入的加权和,并通过一个非线性激活函数进行转换,然后将结果传递到下一

    2024年02月10日
    浏览(35)
  • 神经网络基础-神经网络补充概念-40-神经网络权重的初始化

    神经网络权重的初始化是深度学习中的重要步骤,良好的权重初始化可以加速模型的训练收敛,提高模型的性能和稳定性。以下是一些常用的权重初始化方法: 零初始化(Zero Initialization):将权重初始化为零。然而,这种方法不太适合深层神经网络,因为它会导致所有神经

    2024年02月12日
    浏览(36)
  • 【神经网络】循环神经网络RNN和长短期记忆神经网络LSTM

    欢迎访问Blog总目录! 一文看尽RNN(循环神经网络) - 知乎 (zhihu.com) 一文搞懂RNN(循环神经网络)基础篇 - 知乎 (zhihu.com) 循环神经网络(Recurrent Neural Network, RNN)是一类以 序列 (sequence)数据为输入,在序列的演进方向进行 递归 (recursion)且所有节点(循环单元)按链式连

    2024年04月10日
    浏览(32)
  • 神经网络 04(神经网络的搭建)

    tf.Keras 中构建模有两种方式,一种是通过  Sequential  构建,一种是通过  Model  类构建。前者是按 一定的顺序对层进行堆叠 ,而后者可以用来 构建较复杂的网络模型 。首先我们介绍下用来构建网络的全连接层: units: 当前层中包含的神经元个数 Activation: 激活函数,relu,sig

    2024年02月09日
    浏览(25)
  • 卷积神经网络与前馈神经网络

    常见的人工神经网络结构 人工神经网络是一类由人工神经元组成的网络,常见的神经网络结构包括: 前馈神经网络(Feedforward Neural Network,FNN):最简单的神经网络结构,由一个输入层、一个输出层和若干个隐藏层组成,信号只能从输入层流向输出层,不允许在网络中形成回

    2023年04月26日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包