人工神经网络和bp神经网络的区别,bp人工神经网络模型

1 什么是神经网络1.1 基本结构说明:通常一个神经网络由一个input layer,多个hidden layer和一个output layer构成。图中圆圈可

1 什么是神经网络?

1.1 基本结构

bbfb7f0fbbf74054b570a1fc4f23ca40~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=GyfJaqG7uesdgzfT%2FuGb9oXORTM%3D

为了显示:

神经网络通常由输入层、多个隐藏层和输出层组成。

照片中的圆圈可以被认为是神经元(也称为感知器)

设计神经网络的一个重要任务是设计隐藏层和神经元之间的权重。

添加少量隐藏层以获得浅层神经网络SNN。许多隐藏层通常是深度神经网络(DNN)。

1.2 从逻辑回归到神经元

线性回归模型:

20f47cb8f37a4987a5180d40ff574659~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=iYW0zpyGfFFQUolO80ON5RFKvYk%3D

S 型函数:

17f623309104401ab80ae725c242f219~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=zqV11aArGQhl%2F17CVQvOKTehyEI%3D

LR可以理解为如下结构:

934c80e79dbf416f97be4baee8732afa~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=vDicz1YIeujGhV6BitkzIneU20U%3D

因此,逻辑回归是单层感知器(无隐藏层)结构。

2 为什么我们需要神经网络?

首先,神经网络应用程序可以很好地解决分类问题。 分类问题在工业中很常见。

LR或线性SVM适合线性分割。如果数据是非线性可分的(现实生活中大多是非线性的),LR通常必须依靠特征工程进行特征映射,并添加高斯或组合项来帮助SVM选择内核。 添加高斯项或耦合项会产生不必要的维度并增加计算量。 GBDT可以使用弱线性分类器组合成强分类器,但如果维度非常高,它可能表现不佳。

2.1 如何处理非线性可分性

如下图所示,非线性可分离是可能的。

190644358beb43e987c533cb3db85b6e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=R%2Brzq3EWGo%2Fsqpy8mhRxczl8VN4%3D

从逻辑回归的角度来看,单层感知器只能解决线性问题。为了解决非线性问题,我们需要引入多层感知器(添加隐藏层)。

此时使用两个线性分类器,并通过逻辑与来达到分类效果。 请注意,前两个线性分类器都是部分正确的分类器。

2.2 神经元完成逻辑与

如前所述,可以使用两个线性分类器的逻辑与来完成上例的非线性分割。我们暂时忽略两个线性分类器,使用神经元(感知器)来实现逻辑与的效果。

假设

caa33b7d0ab84eb7afe531020b86b513~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=uCc%2FGU6hsQxah%2FKKE67y30N9vV8%3D

d8a1b9fab7764969808fed1d544adb79~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=iwaR%2F0Znh3HP05rojIxO68mhYV4%3D

b211f9e0e9e04d1da4be4b7bb26775bb~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=fyF7ElJYZqj1CdrEw%2BMOQ9ItG7I%3D

f2fdb38b386c428d869b08d236a64c5f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=%2BDjVWtxvXjc3fb1vtHleaibW2do%3D

这样,g(z)就完成了逻辑与。

a8fc3284dde941d18f143a15e09e81e1~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=XPhj4jIRR5deD0CqEUdmXQqLAkA%3D

通过调整z的参数,我们可以实现析取等运算。

2.3 流程图

0874f40325d34a58a88194dbebdfe14d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=QtFmV847W2djFWEhVCTV%2FD4ummc%3D

我们可以看到,输入层首先生成两个线性分类器,然后将两个线性分类器的权重组合起来形成逻辑与,完成非线性分类。

请注意,训练两个线性分类器需要输入权重,逻辑与需要两个线性分类器权重。

2.4 效果

0342ab581b2d40ff9462d778094ffa8c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=q1m02Fmg6Wf5r1rFJGVRknYZIWk%3D

结合线性分类器的逻辑与和逻辑或可以对平坦样本进行完整分类。

隐藏层决定了最终的分类效果

7f7b3779e779423bab522995ea51a654~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=%2FOO2hgAvtc0VSPPgfy2IHnre4eo%3D

从上图可以看出,随着隐藏层数量的增加,凸区域可以形成任意形状,甚至可以解决复杂的分类问题。事实上,柯尔莫哥洛夫理论指出,双隐层感知器足以解决复杂的分类问题。

3 神经网络的表达能力和过度拟合

理论上,单隐层神经网络可以逼近任何连续函数(只要隐层神经元数量足够)。

从数学上讲,多隐层和单隐层具有相同的表示能力,但多隐层神经网络比单隐层神经网络具有更好的工程效果。

对于一些敏感数据(例如CTR估计),3层神经网络比2层神经网络更好,但随着层数不断增加(4、5、6),它有助于收集最终数据。结果没有太大变化。

图像数据是一种深层结构数据,深度卷积神经网络可以更完整、更准确地表示这些层次的信息。

增加隐藏层或隐藏层中神经元的数量会增加神经网络的“容量”并增强其空间表示能力。

过多的隐藏层和神经元节点会导致过拟合问题

不要尝试减少神经网络参数的数量来减缓过度拟合,而是使用正则化或dropout。

4 神经网络结构

4.1 网络结构

3be0153d2e89482f9efb736162ad6662~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=u8colrILI8EidFfXEg1yabF61cA%3D

n 个输入,m 个概率

4.2 传递函数/激活函数

将前面每一层的输入线性变换为wx+b后,神经网络的结构中还使用了一种称为传递函数或激活函数的sigmoid函数。

除了sigmoid之外,还有tanh、relu等其他激活函数。激活函数使线性结果变得非线性。

4.2.1 为什么需要转移功能?

简单理解,如果不添加激活函数,无论有多少个隐藏层,最终的结果仍然是原始输入的线性变化。这样,用一个隐藏层就可以达到结果。拥有多层感知器是没有意义的。

因此,每个隐藏层都配备了提供非线性变化的激活函数。

4.2.2 引入两个激活函数

34c90b6f60fe416c9ed362474d291c41~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=7X4ioB%2BZaVn1LnDjyRMuuEi%2B9Tk%3D

双S 函数也称为tanh 函数。

5 BP算法

5.1 网络结构

352b30329b3d47c795639b3e4b317f52~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=fdkBn0ivdoSOghSwD86nlxNRL4o%3D

1. 使用前向传播求出损失,并使用反向传播返回误差。

2.根据误差信号修改各层权重

3. f是激活函数,f(netj)是隐藏层的输出,d是输出层的输出。

5.2 反向传播方法

我们以三层感知器为例。

3835cdc10e724b30955368ebba73f299~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=EaEX%2BPF5HI3XadPs5Q4vIM0W2DE%3D

结合BP网络结构,误差从输出到输入的扩展过程如下:

3b70a5761f4e417093ab65e1a3b3cc6d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=Qy4TsKJiSgMa37QOD21on%2BeHbY0%3D

利用误差E,我们可以通过偏导数得到最优权重。 (不要忘记学习率)

a11726b9f7d94127bf4eb285214c79fc~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=UbteukPqGuVQZLEgQlUQCrPEc7s%3D

BP算法属于delta学习规则类,这类算法通常被称为误差梯度下降算法。 此类算法要求变换函数可微(满足sigmoid)。

5.3 示例

d4ef682067d94de88c7edeb7954f8684~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=wkdqMcCwz%2FOwhzL8nj%2BCizJIeqQ%3D

图像中的元素:

2 个输入。

隐藏层: b1、w1、w2、w3、w4(都有初始值)

输出层:b2、w5、w6、w7、w8(初始值给定)

5.3.1 正向运算计算误差

cc1efe5f70474905a5faa040baad5f10~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=U8863fdTwJzzU2y2bkVyVA3iwy4%3D

然后报错:

e5dabbb98dab44329d6ca8cea6f8711f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=TgOjL%2BuJHJs5tfKeVAq8J5YPuSA%3D

5.3.2 反向传播

求误差相对于w5 的偏导过程。

b3cc661ab6234dc3883e2cb7f216a928~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=I9vuXS%2FaJR6MpzV6REKJVhxIKCI%3D

更新参数:

6bc7c9a786a4429daab779c892769a40~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=A3jxbykJ4TJNxuSAiuEAVV3XBmw%3D

求误差相对于w1 的偏导数。

34f4548c1ca24d3ebc48dcaaefc7cc7c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717726420&x-signature=2%2F%2Bp3Mj3JVuXrA4tKW0dFJWJSVY%3D

请注意,w1 影响两个输出中的误差

所有权重都可以通过上述过程更新,然后迭代更新,直到满足条件。

原文:https://blog.csdn.net/leiting_imecas/article/details/60463897

如果你想了解Python、人工智能、自动化运维技术的最新动态,关注我,私信回复“Python”,每日咨询更新。此外,我最近整理了一套Python 集。您可以免费分享基础系统教育视频。关注我的微头条更新。

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/80671.html

(0)
小条's avatar小条
上一篇 2024年5月31日 上午10:13
下一篇 2024年5月31日 上午10:17

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注