浅层神经网络

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

目录

1、神经网络表示

2、计算神经网络的输出

3、多个样本的向量化

4、激活函数

5、激活函数的导数

6、神经网络的梯度下降法


1、神经网络表示

浅层神经网络

  • 输入层:有输入特征𝑥1𝑥2𝑥3
  • 隐藏层:四个结点,表示你无法在训练集中看到他们,使用了sigmoid 激活函数
  • 输出层:它负责产生预测值,使用了sigmoid 激活函数
  • 符号惯例:其中,𝑥表示输入特征,𝑎表示每个神经元的输出,𝑊表示特征的权重,上标表示神经网络的层数(隐藏层为 1),下标表示该层的第几个神经元
  • 注意 :计算网络的层数时,输入层是不算入总层数内,所以隐藏层是第一层,输出层是第二层。第二个惯例是我们将输入层称为第零层,所以在技术上,这仍然是一个三层的神经网络,因为这里有输入层、隐藏层,还有输出层。但是在传统的符号使用中,阅读研究论文中,人们将这个神经网络称为一个两层的神经网络,不将输入层看作一个标准的

2、计算神经网络的输出

浅层神经网络

  • 小圆圈代表了计算的两个步骤。
  • 第一步,计算𝑧1 [1] , 𝑧1 [1] = 𝑤1 [1]𝑇 𝑥 + 𝑏1 [1]。
  • 第二步,通过激活函数计算𝑎1 [1] , 𝑎1 [1] = 𝜎(𝑧1 [1] )
  • 隐藏层的第二个以及后面两个神经元的计算过程一样,只是注意符号表示不同,最终分别得到𝑎2​​​​​[1]𝑎3[1]𝑎4 [1]

浅层神经网络

  •  向量化计算:如果你执行神经网络的程序,用 for 循环来做这些看起来真的很低效

浅层神经网络

浅层神经网络

  • 对于神经网络的第一层,给予一个输入 𝑥 ,得到 𝑎 [1] 𝑥 可以表示为 𝑎 [0] 。通过相似的衍生
    你会发现,后一层的表示同样可以写成类似的形式,得到 𝑎 [2],𝑦^ = 𝑎 [2](隐藏层和输出层都使用了sigmoid 激活函数)。具体过程见公式

浅层神经网络

  •  如上图左半部分所示为神经网络,把网络左边部分盖住先忽略,那么最后的输出单元就
    相当于一个逻辑回归的计算单元。当你有一个包含一层隐藏层的神经网络,你需要去实现以
    计算得到输出的是右边的四个等式,并且可以看成是一个向量化的计算过程,计算出隐藏层
    的四个逻辑回归单元和整个隐藏层的输出结果,如果编程实现需要的也只是这四行代码。

3、多个样本的向量化

浅层神经网络

  • 𝑎 [2](𝑖)(𝑖)是指第𝑖个训练样本而[2]是指第二层

浅层神经网络

  •  证明:𝑊[1] 是一个矩阵,𝑥(1) , 𝑥 (2) , 𝑥 (3)都是列向量,矩阵乘以列向量得到列向量,下面

将它们用图形直观的表示出来​​​​​​​

浅层神经网络

  •  所以从图中可以看出,当加入更多样本时,只需向矩阵𝑋中加入更多列

4、激活函数

  • 在前面的神经网路的前向传播中,𝑎 [1] = 𝜎(𝑧 [1] )𝑎 [2] = 𝜎(𝑧 [2] )这两步会使用到 sigmoid 函数。 sigmoid 函数在这里被称为激活函数,但是,有时其他的激活函数效果会更好

浅层神经网络

  • 𝑔(𝑧 [1] ) = 𝑡𝑎𝑛ℎ(𝑧 [1] ) 效果总是优于 sigmoid 函数。因为函数值域在-1 和+1 的激活函数,其均值是更接近零均值的。在训练一个算法模型时,如果使用 tanh 函数代替 sigmoid 函数中心化数据,使得数据的平均值更接近 0 而不是 0.5
  • 但有一个例外:在二分类的问题中,对于输出层,因为𝑦的值是 0 或 1,所以想让𝑦^的数值介于 0 和 1 之间,而不是在-1 和+1 之间。所以需要使用 sigmoid 激活函数
  • ​​​​​​​对隐藏层使用 tanh 激活函数,输出层使用 sigmoid 函数
  • ​​​​​​​sigmoid 函数和 tanh 函数两者共同的缺点是,在𝑧特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于 0,导致降低梯度下降的速度

浅层神经网络

  •  选择激活函数的经验法则:
    如果输出是 0 1 值(二分类问题),则输出层选择 sigmoid 函数,然后其它的所有单
    元都选择 Relu 函数。
    这是很多激活函数的默认选择,如果在隐藏层上不确定使用哪个激活函数,那么通常会
    使用 Relu 激活函数。有时,也会使用 tanh 激活函数,但 Relu 的一个优点是:当 𝑧 是负值的
    时候,导数等于 0
    这里也有另一个版本的 Relu 被称为 Leaky Relu
    𝑧 是负值时,这个函数的值不是等于 0 ,而是轻微的倾斜。
    尽管在实际中 Leaky ReLu 使用的并不多,但是这个函数通常比 Relu 激活函数效果要好

浅层神经网络

  • sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。
    tanh 激活函数: tanh 是非常优秀的,几乎适合所有场合。
    ReLu 激活函数:最常用的默认函数,,如果不确定用哪个激活函数,就使用 ReLu 或者
    Leaky ReLu
  • why:在神经网络中使用非线性激活函数的主要原因是,如果不使用非线性激活函数,多层神经网络就相当于单层线性模型,而无法捕捉复杂的非线性关系。因此,通过使用非线性激活函数,神经网络可以学习更加复杂和抽象的模式,从而提高其预测和分类能力。
  • 此外,非线性激活函数还可以解决梯度消失的问题。在深层神经网络中,当使用线性激活函数时,每一层的输出都是前一层输出的线性组合,这种线性组合对梯度的贡献非常小,导致梯度在反向传播时逐渐消失。而非线性激活函数可以引入非线性变换,增加梯度的大小,从而避免梯度消失问题。 因此,使用非线性激活函数是神经网络能够充分发挥其优势的重要因素之一
  • 因此,不能在隐藏层用线性激活函数,可以用 ReLU 或者 tanh 或者 leaky ReLU 者其他的非线性激活函数,唯一可以用线性激活函数的通常就是输出层

5、激活函数的导数

  • 在神经网络中使用反向传播的时候,你真的需要计算激活函数的斜率或者导数。针对以
    下四种激活,求其导数如下:
1 sigmoid activation function ​​​​​​​

浅层神经网络

浅层神经网络

 2) Tanh activation function

浅层神经网络

浅层神经网络

 3Rectified Linear Unit (ReLU)

浅层神经网络

 4Leaky linear unit (Leaky ReLU)

浅层神经网络

6、神经网络的梯度下降法

  • 单隐层神经网络会有𝑊[1], 𝑏 [1] 𝑊 [2] 𝑏 [2] 这些参数,还有个𝑛𝑥 表示输入特征的个
    数, 𝑛 [1] 表示隐藏单元个数, 𝑛 [2]表示输出单元个数。
  • 矩阵 𝑊 [1] 的维度就是 (𝑛 [1] , 𝑛 [0]),𝑏 [1]就是𝑛 [1] 维向量,可以写成(𝑛 [1] , 1) ,就是一个的列
    向量。 矩阵 𝑊 [2] 的维度就是(𝑛 [2] , 𝑛 [1] ),𝑏 [2]的维度就是(𝑛 [2] , 1) 维度​​​​​​​
  • ​​​​​​​​​​​​​​Cost function

    浅层神经网络

  •  训练参数需要做梯度下降,在训练神经网络的时候,随机初始化参数很重要,而不是初
    始化成全零。当你参数初始化成某些值后,每次梯度下降都会循环计算以下预测值:

浅层神经网络

  •  正向传播方程如下:

浅层神经网络

  •  反向传播方程如下: 这些都是针对所有样本进行过向量化,𝑌是1 × 𝑚的矩阵;这里 np.sum 是 python numpy 命令,axis=1 表示水平相加求和,keepdims 是防止python 输出那些古怪的秩数(𝑛, ),加上这个确保阵矩阵𝑑𝑏 [2]这个向量输出的维度为(𝑛, 1)这样标准的形式。

浅层神经网络

  •  开始计算反向传播时,需要计算隐藏层函数的导数,输出在使用 sigmoid 函数进行二元分类。这里是进行逐个元素乘积,因为𝑊[2]𝑇𝑑𝑧 [2]和(𝑧 [1] )这两个都为(𝑛 [1] , 𝑚)矩阵

7、直观理解反向传播

  • 逻辑回归的反向传播

浅层神经网络

  •  神经网络的反向传播:神经网络的计算中,与逻辑回归十分类似,但中间会有多层的计算。下图是一个双层神经网络,有一个输入层,一个隐藏层和一个输出层

浅层神经网络

浅层神经网络

浅层神经网络

在向量化logistic回归的梯度输出证明了dw=x*dzT,这里写成了dw=dz*x,实际上效果一样,对于矩阵相乘来说,左右互换结果就不一样了,dz写在前面,等同做了一次转置

向量化逻辑回归的梯度输出

反向传播中使用到矩阵求导的方式:使用矩阵求导的方法,可以大大简化计算过程,提高计算效率文章来源地址https://www.toymoban.com/news/detail-499060.html

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

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

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

相关文章

  • 神经网络基础-神经网络补充概念-17-计算神经网络的输出

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

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

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

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

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

    2024年02月10日
    浏览(34)
  • 神经网络基础-神经网络补充概念-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)
  • 卷积神经网络与前馈神经网络

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

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

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

    2024年02月09日
    浏览(25)
  • 神经网络基础-神经网络补充概念-53-将batch norm拟合进神经网络

    梯度消失问题的缓解:在深度神经网络中,梯度消失是一个常见的问题,特别是在深层网络中。批归一化通过在每个批次内对输入进行标准化,使得激活函数的输入分布更稳定,从而减轻了梯度消失问题,使得梯度更容易传播,促进了训练过程的稳定性和效率。 加速收敛:由

    2024年02月12日
    浏览(25)
  • 《神经网络入门》神经网络的思想 (一)

    我们知道神经网络是一个模拟人脑的数学建模,首先我们来了解一下生物神经元是怎么工作的。 人的大脑是由非常多神经元相互连接形成的网络构成的。一个神经元,可以从其他神经元接收信号,也可以向其他神经元发送信号。 神经元由细胞体、树突、轴突三个主要部分构

    2024年04月09日
    浏览(38)
  • 神经网络基础-神经网络补充概念-61-单层卷积网络

    单层卷积网络是一种简单的神经网络结构,它仅包含一个卷积层,通常紧跟着一个激活函数以及可能的池化层和全连接层。这种结构可以用来提取输入数据的特征,适用于一些简单的任务。

    2024年02月12日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包