人工神经网络(ANN)及BP算法

1 什么是神经网络

1.1 基本结构

这里写图片描述
说明:

  1. 通常一个神经网络由一个input layer,多个hidden layer和一个output layer构成。
  2. 图中圆圈可以视为一个神经元(又可以称为感知器)
  3. 设计神经网络的重要工作是设计hidden layer,及神经元之间的权重
  4. 添加少量隐层获得浅层神经网络SNN;隐层很多时就是深层神经网络DNN

1.2 从逻辑回归到神经元

LinearRegression模型:
这里写图片描述

sigmoid函数:
这里写图片描述
LR可以理解为如下结构:
这里写图片描述

所以逻辑回归是一个单层感知器(没有隐层)结构。

2 为什么需要神经网络

首先,神经网络应用在分类问题中效果很好。 工业界中分类问题居多。
LR或者linear SVM更适用线性分割。如果数据非线性可分(现实生活中多是非线性的),LR通常需要靠特征工程做特征映射,增加高斯项或者组合项;SVM需要选择核。 而增加高斯项、组合项会产生很多没有用的维度,增加计算量。GBDT可以使用弱的线性分类器组合成强分类器,但维度很高时效果可能并不好。

2.1 非线性可分怎么办

如下图非线性可分
这里写图片描述
从逻辑回归看,单层感知器只能解决线性问题。要解决非线性问题,需要引入多层感知器(加入隐层)。

这时使用两个线性分类器,再求逻辑与就可以达到分类的效果。 注意,最开始的两个线性分类器都是部分正确的分类器

2.2 神经元完成逻辑与

前面说可以使用两个线性分类器的逻辑与可以完成上例的非线性分割。暂时不管两个线性分类器,现在先使用神经元(感知器)达到逻辑与的效果

假设
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这样,g(z)完成逻辑与:
这里写图片描述
调整z的参数,可以实现逻辑或等操作

2.3 流程图

这里写图片描述

可以看到,先有imput layer生产两个线性分类器,在通过两个线性分类器的权重组合构成逻辑与,完成非线性分类。
注意,训练两个线性分类器需要imput的权重,逻辑与又需要两个线性分类器的权重。

2.4 效果

对线性分类器的逻辑与和逻辑或的组合可以完美的对平面样本进行分类
这里写图片描述

隐层决定了最终的分类效果
这里写图片描述
由上图可以看出,随着隐层层数的增多,凸域将可以形成任意的形状,因此可以解决任何复杂的分类问题。实际上,Kolmogorov理论指出:双隐层感知器就足以解决任何复杂的分类问题。

3 神经网络表达力与过拟合

  1. 理论上,单隐层神经网络可以逼近任何连续函数(只要隐层的神经元个数足够)
  2. 虽然从数学上看多隐层和单隐层表达能力一致,但多隐层的神经网络比单隐层神经网络工程效果好很多
  3. 对于一些分类数据(比如CTR预估),3层神经网络效果优于2层神经网络,但如果把层数不断增加(4,5,6层),对最后的结果的帮助没有那么大的跳变
  4. 图像数据比较特殊,是一种深层的结构化数据,深层次的卷积神经网络能更充分和准确的把这些层级信息表达出来
  5. 提升隐层数量或者隐层神经元个数,神经网络的“容量”会变大,空间表达能力会变强
  6. 过多的隐层和神经元结点会带来过拟合问题
  7. 不要试图降低神经网络参数量来减缓过拟合,用正则化或者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)是隐层的输出; f(netk)是输出层的输出O; d是target

5.2 如何反向传播

以三层感知器为例:
这里写图片描述

结合BP网络结构,误差由输出展开至输入的过程如下:
这里写图片描述

有了误差E,通过求偏导就可以求得最优的权重。(不要忘记学习率)
这里写图片描述

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

5.3 举例

这里写图片描述

图中元素:
两个输入;
隐层: b1, w1, w2, w3, w4 (都有初始值)
输出层:b2, w5, w6, w7, w8(赋了初始值)

5.3.1 前向运算 计算误差

这里写图片描述
则误差:
这里写图片描述

5.3.2 反向传播

求误差对w5的偏导过程
这里写图片描述

参数更新:
这里写图片描述

求误差对w1的偏导
这里写图片描述

注意,w1对两个输出的误差都有影响
通过以上过程可以更新所有权重,就可以再次迭代更新了,直到满足条件。

<think>好的,用户想要查找BP神经网络的结构图示例图解。首先,我需要确认用户的需求是了解BP神经网络的结构,可能需要包括输入层、隐藏层输出层的图示,以及各层之间的连接反馈机制。接下来,我应该回忆BP神经网络的基本结构,确保结构图的准确性。 根据已有的知识,BP神经网络通常是多层前馈网络,包括输入层、至少一个隐藏层输出层。信号向前传播,误差反向传播。需要确认是否有标准的结构图示例,或者是否需要自己描述结构。 用户提供的引用中有关于BP神经网络的推导实验的内容[^4],可能相关的信息,但没有直接提到结构图。可能需要根据这些引用中的描述来构造结构图。 接下来,需要考虑如何用文字清晰描述结构图,可能包括各层节点数、连接权重、激活函数的位置等。同时,要确保使用正确的LaTeX格式,如行内公式用$...$,独立公式用$$...$$,并正确分段。 可能需要分步骤描述结构图:输入层、隐藏层、输出层,以及反向传播的过程。此外,用户可能需要了解各层的作用,如输入层接收数据,隐藏层处理特征,输出层产生结果,以及如何通过误差反向调整权重。 另外,用户可能需要知道BP神经网络的典型应用,如分类、回归等,但当前问题主要集中在结构图。需要确保回答中引用相关文献,如引用[4]中提到的Softmax函数在输出层的应用,可以指出这一点。 最后,生成的相关问题需要围绕结构图展开,如层数选择、激活函数的作用、训练步骤应用场景等。确保问题有助于用户进一步理解BP神经网络的结构功能。 总结步骤: 1. 描述BP神经网络的基本结构,包括各层及其作用。 2. 提供结构图的文字示例,可能用节点箭头表示连接。 3. 解释前向传播反向传播过程。 4. 引用相关文献支持描述,如激活函数的使用。 5. 生成相关问题,帮助用户深入理解结构图相关概念。</think>### BP神经网络结构图说明 BP神经网络通常由输入层、隐藏层(可多层)输出层构成,结构示例如下: ``` 输入层 隐藏层 输出层 O ---------- O ----------- O | \ / | \ / | | \ / | \ / | O ---\--/--- O --\-----/---O | \/ | \ / | | /\ | \ / | O ---/--\--- O -----X------O | / \ | \ | | / \ | \| O ---------- O ----------- O ``` **各层功能说明:** 1. **输入层**:接收外部数据,节点数=输入特征维度。例如识别手写数字时,若图像为$28×28$像素,则输入层有784个节点[^4]。 2. **隐藏层**:进行非线性变换,节点数可调。常用Sigmoid、ReLU等激活函数,如: $$ \sigma(z) = \frac{1}{1+e^{-z}} $$ 3. **输出层**:生成最终结果,节点数=分类类别数(分类任务)或1个节点(回归任务)。若使用Softmax函数,输出会转换为概率分布[^4]。 **前向传播过程**: 输入数据逐层计算,第$l$层第$j$个节点的输出为: $$ a_j^{(l)} = \sigma\left( \sum_{i} w_{ji}^{(l)} a_i^{(l-1)} + b_j^{(l)} \right) $$ 其中$w_{ji}$为权重,$b_j$为偏置。 **反向传播过程**: 通过计算损失函数$L$对权重的梯度$\frac{\partial L}{\partial w_{ji}}$,从输出层到输入层逐层调整参数[^4]。
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值