神经网络介绍、反向传播

一、引入神经网络:

之前我们学习了两个最起初的模型:线性回归模型、逻辑回归模型。而现在,我们要学习的神经网络就是以上述两个模型为基础搭建的更复杂的架构。

1.神经元概述:

举个例子,使用衣服价格price特征来预测衣服是否会畅销,这是一个非常简单的二分类问题,应该使用逻辑回归模型
在这里插入图片描述
该逻辑回归模型的输入是衣服的价格,输出是一个介于[0,1]之间的数字,表示是否会畅销。

对于一个逻辑回归模型,其实就是一个神经元,输入数据进入神经元后得到一个输出,即一个通道。
在这里插入图片描述

2.神经网络概述:

神经网络由多个神经元拼接而成
在这里插入图片描述
在之前学习逻辑回归模型时我们可能会直接将四个特征输入来预测衣服是否会畅销。而神经网络加入了激活层,下面说明激活层的意义。

  • 当我们直接将四个特征输入来预测衣服是否会畅销时,预测结果会因为逻辑回归模型本身的限制导致精度比较低,并且随着数据集的增加,模型的预测精度也不会有较大的优化。
  • 因此我们可以将四个特征首先分别使用三个逻辑回归模型分别预测价格、市场、品质这些与畅销性高相关性的特征然后通过这三个激活特征来预测最终的畅销性。实验证明,这种方式相比于传统逻辑回归模型有更高的预测性能和前景,这就是神经网络。

2.1神经网络参数详解:

在这里插入图片描述
在这里插入图片描述

2.2神经网络各层概述:

  • 隐藏层中的多个神经元可以分别是是线性回归模型、逻辑回归模型。

  • 输出层使用线性回归模型、逻辑回归模型时仅需一个神经元;输出层使用Softmax回归模型时则需要多个神经元。Softmax回归模型在神经网络中的应用

  • 当输出层是线性回归模型、逻辑回归模型时,输出层输出结果为一个数;当输出层是Softmax回归模型时,输出层输出结果为各个分类上的概率一维向量。

  • 对于多标签问题,输出层需要多个神经元,其中各个神经元相互独立,分别对各自负责的标签预测,每个神经元都是一个线性回归模型或逻辑回归模型。神经网络解决多标签问题

  • 具体每个神经元是什么模型取决于该神经元选择的激活函数。

  • 神经网络由输入层、激活层(隐藏层)、输出层组成,激活层可以有多个。其中输入层用来接收最原始的特征,输出层负责预测最终结果

  • 上述只是举个具象化的例子,而真正的神经网络是对于每个神经元在训练时无需预先决定它的功能,并且每个神经元需要什么特征也由神经网络自行计算。

除此之外,神经网络还可以有多个隐藏层,例如多层感知机、卷积神经网络等。
在这里插入图片描述

3.神经网络和线性回归模型的区别:

在这里插入图片描述

3.1不同点:

  • 线性模型在训练前需要手动提取特征,而神经网络(这里指神经网络的隐藏层)的出现解决了手动提取特征的问题。
  • 神经网络(隐藏层)可以自动提取特征,最后输入线性模型(神经网络输出层)得到最终预测/分类结果。
  • 综上所述,神经网络的隐藏层可以自动提取特征

3.2相同点:

  • 输出层都是线性回归或softmax回归模型。

4.多输出通道的概念:

在这里插入图片描述
一个神经元对应一个参数集(在卷积神经网络中为一个卷积核),同一隐藏层的多个神经元会使用各自的参数集对输入数据进行特征提取,从而得到不同的输出特征图每个特征图对应一个通道,多个神经元提取的各自不同的特征图构成了多通道
如上图所示,该隐藏层为三通道输出,即从三个方面提取到了数据的特征。

二、神经网络在图像识别中的应用:

人脸识别的定义是:训练一个神经网络,输入图片的像素特征,输出图片中人的身份是否是Tom。

  • 首先,对于一张图片,计算机中会表示成1000×1000像素的矩阵,每个网格中记录了该点的像素值。
    在这里插入图片描述
  • 然后将矩阵展开成一个一维向量作为输入特征。
    在这里插入图片描述
  • 输入特征向量被送到第一层隐藏层的神经元,提取特征后将输出激活特征作为第二层神经元的输入,然后第二层输出被送到第三层,最后被送到输出层,由输出层给出预测结果。
    在这里插入图片描述
  • 各层可以提取丰富的特征帮助下一层进行特征提取,提取到的特征逐渐深入。
    例如第一层提取短线特征,第二层根据第一层的输出结果提取到器官特征,第三层则根据第二层输出结果提取到完整的面部特征,最后作为输出层的输入帮助输出层更好的预测。(显然神经网络相比于传统的逻辑回归模型输入像素特征向量预测精度要高
    在这里插入图片描述
    神经网络的一个显著特点是可以自己学习每层需要提取什么特征。

三、神经网络实现:

一个具有四层的神经网络如下:
在这里插入图片描述

  • 输入层称为第0层,神经网络的层数只包括隐藏层和输出层。
  • 第i层的输出由向量a[i]表示,该层神经元的个数决定了向量的长度(每个神经元输出一个数字)。
  • 上标在这里表示第几层

对于神经网络的第三层,拆解如下:
在这里插入图片描述

  • 上标在这里表示第几层的信息
  • 下标在这里表示这是该层第几个神经元的信息。
  • 第二层输出的向量(第二层的激活向量)作为第三层输入。
  • 每个神经元都有各自的参数和模型,输出各自的预测结果(一个数值)。
  • 各个神经元的预测值组合成为该层的激活向量输出。
  • 注释:g是Sigmoid函数。

四、神经网络的向前传播:

向前传播定义:神经网络中的计算是从左向右进行的,各层之间有序地从左向右传播神经元的激活,从而有序地提取特征最后执行预测

下面举例说明向前传播算法:

  • 1.对于输入的图片,要预测该图片中的数字是否为1,,首先将图片的像素特征输入第一层进行计算,输出第一层的激活(特征图)。
    在这里插入图片描述
  • 2.第一层激活输入第二层进行计算:
    在这里插入图片描述
  • 3.最后第三层使用第二层激活作为输入进行计算,根据计算结果输出预测值y^:
    在这里插入图片描述
    单个神经元之间的向前传播过程如下:在这里插入图片描述

五、神经网络的反向传播:

神经网络的向前转播用于提取特征并通过特征进行预测。而神经网络的反向转播用于当前batch通过向前传播预测后进行计算损失与梯度下降反向更新神经网络中的各个神经元的参数。
具体来说:

  • 1.神经网络通常输入以1个batch为单位,当1个batch作为输入进行向前传播:通过神经网络的隐藏层有序提取特征后,输出层根据最后一层隐藏层的输出进行该batch的预测,输出预测结果。
  • 2.使用损失函数计算预测值与真实值之间的损失。
  • 3.计算隐藏层与输出层各个神经元的参数关于损失函数的梯度。具体来说:损失函数是关于神经网络输出层神经元的参数的函数。在反向传播算法中,我们首先仅能通过计算损失函数对于输出层神经元参数的梯度,然后逐层向前传播将输出层梯度(损失函数关于输出层参数的偏导)与隐藏层梯度(输出层参数关于隐藏层参数的偏导)链式法则计算得到隐藏层神经元参数的梯度
  • 4.根据每个参数的梯度,使用梯度下降算法更新各个参数值。
  • 5.输入下一个batch继续训练。

单个神经元之间反向传播计算图如下:
在这里插入图片描述
这里的f就是z。

总结:反向传播是一种基于链式法则的算法,通过将上一层的梯度传播到当前层,逐层计算各层的梯度。其中输出层参数的梯度由损失函数计算得到啊,隐藏层参数的梯度由输出层梯度(损失函数关于输出层参数的偏导)与隐藏层梯度(输出层参数关于隐藏层参数的偏导)链式法则计算得到。

六、神经网络分类与适用领域:

  • 1.多层感知机
  • 2.卷积神经网络
  • 3.循环神经网络
  • 4.Transformer
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姓蔡小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值