1 什么是神经网络?
1.1 基本结构
为了显示:
神经网络通常由输入层、多个隐藏层和输出层组成。
照片中的圆圈可以被认为是神经元(也称为感知器)
设计神经网络的一个重要任务是设计隐藏层和神经元之间的权重。
添加少量隐藏层以获得浅层神经网络SNN。许多隐藏层通常是深度神经网络(DNN)。
1.2 从逻辑回归到神经元
线性回归模型:
S 型函数:
LR可以理解为如下结构:
因此,逻辑回归是单层感知器(无隐藏层)结构。
2 为什么我们需要神经网络?
首先,神经网络应用程序可以很好地解决分类问题。 分类问题在工业中很常见。
LR或线性SVM适合线性分割。如果数据是非线性可分的(现实生活中大多是非线性的),LR通常必须依靠特征工程进行特征映射,并添加高斯或组合项来帮助SVM选择内核。 添加高斯项或耦合项会产生不必要的维度并增加计算量。 GBDT可以使用弱线性分类器组合成强分类器,但如果维度非常高,它可能表现不佳。
2.1 如何处理非线性可分性
如下图所示,非线性可分离是可能的。
从逻辑回归的角度来看,单层感知器只能解决线性问题。为了解决非线性问题,我们需要引入多层感知器(添加隐藏层)。
此时使用两个线性分类器,并通过逻辑与来达到分类效果。 请注意,前两个线性分类器都是部分正确的分类器。
2.2 神经元完成逻辑与
如前所述,可以使用两个线性分类器的逻辑与来完成上例的非线性分割。我们暂时忽略两个线性分类器,使用神经元(感知器)来实现逻辑与的效果。
假设
这样,g(z)就完成了逻辑与。
通过调整z的参数,我们可以实现析取等运算。
2.3 流程图
我们可以看到,输入层首先生成两个线性分类器,然后将两个线性分类器的权重组合起来形成逻辑与,完成非线性分类。
请注意,训练两个线性分类器需要输入权重,逻辑与需要两个线性分类器权重。
2.4 效果
结合线性分类器的逻辑与和逻辑或可以对平坦样本进行完整分类。
隐藏层决定了最终的分类效果
从上图可以看出,随着隐藏层数量的增加,凸区域可以形成任意形状,甚至可以解决复杂的分类问题。事实上,柯尔莫哥洛夫理论指出,双隐层感知器足以解决复杂的分类问题。
3 神经网络的表达能力和过度拟合
理论上,单隐层神经网络可以逼近任何连续函数(只要隐层神经元数量足够)。
从数学上讲,多隐层和单隐层具有相同的表示能力,但多隐层神经网络比单隐层神经网络具有更好的工程效果。
对于一些敏感数据(例如CTR估计),3层神经网络比2层神经网络更好,但随着层数不断增加(4、5、6),它有助于收集最终数据。结果没有太大变化。
图像数据是一种深层结构数据,深度卷积神经网络可以更完整、更准确地表示这些层次的信息。
增加隐藏层或隐藏层中神经元的数量会增加神经网络的“容量”并增强其空间表示能力。
过多的隐藏层和神经元节点会导致过拟合问题
不要尝试减少神经网络参数的数量来减缓过度拟合,而是使用正则化或dropout。
4 神经网络结构
4.1 网络结构
n 个输入,m 个概率
4.2 传递函数/激活函数
将前面每一层的输入线性变换为wx+b后,神经网络的结构中还使用了一种称为传递函数或激活函数的sigmoid函数。
除了sigmoid之外,还有tanh、relu等其他激活函数。激活函数使线性结果变得非线性。
4.2.1 为什么需要转移功能?
简单理解,如果不添加激活函数,无论有多少个隐藏层,最终的结果仍然是原始输入的线性变化。这样,用一个隐藏层就可以达到结果。拥有多层感知器是没有意义的。
因此,每个隐藏层都配备了提供非线性变化的激活函数。
4.2.2 引入两个激活函数
双S 函数也称为tanh 函数。
5 BP算法
5.1 网络结构
1. 使用前向传播求出损失,并使用反向传播返回误差。
2.根据误差信号修改各层权重
3. f是激活函数,f(netj)是隐藏层的输出,d是输出层的输出。
5.2 反向传播方法
我们以三层感知器为例。
结合BP网络结构,误差从输出到输入的扩展过程如下:
利用误差E,我们可以通过偏导数得到最优权重。 (不要忘记学习率)
BP算法属于delta学习规则类,这类算法通常被称为误差梯度下降算法。 此类算法要求变换函数可微(满足sigmoid)。
5.3 示例
图像中的元素:
2 个输入。
隐藏层: b1、w1、w2、w3、w4(都有初始值)
输出层:b2、w5、w6、w7、w8(初始值给定)
5.3.1 正向运算计算误差
然后报错:
5.3.2 反向传播
求误差相对于w5 的偏导过程。
更新参数:
求误差相对于w1 的偏导数。
请注意,w1 影响两个输出中的误差
所有权重都可以通过上述过程更新,然后迭代更新,直到满足条件。
原文:https://blog.csdn.net/leiting_imecas/article/details/60463897
如果你想了解Python、人工智能、自动化运维技术的最新动态,关注我,私信回复“Python”,每日咨询更新。此外,我最近整理了一套Python 集。您可以免费分享基础系统教育视频。关注我的微头条更新。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/80671.html