【人工智能 | 机器学习】神经网络

文章目录

  • [1. 神经元模型](#1. 神经元模型)
  • [2. 感知机与多层网络](#2. 感知机与多层网络)
  • [3. 误差逆传播算法(BP)](#3. 误差逆传播算法(BP))
  • [4. 全局最小与局部极小](#4. 全局最小与局部极小)
  • [5. 其他常见神经网络](#5. 其他常见神经网络)
  • [6. 深度学习](#6. 深度学习)

1. 神经元模型

神经网络:具有适应性的 简单单元(神经元)组成的广泛并行互连的网络,其组织能够模拟生物神经系统对真实世界物体作出的交互反应

M-P神经元模型:每个神经元与其他神经元相连。当神经元接收到来自 n 个其他神经元传递过来的 输入信号 ,信号通过 带权重的连接 进行传递,神经元接收到的总输入值与神经元的 阈值 进行比较,通过 激活函数 处理神经元输出

a 为理想激活函数。将输入值映射为输出值 0 或 1,0 对应神经元抑制,1 对应兴奋。

阶路函数不连续、不光滑,因此常用 Sigmoid 函数 作为激活函数。

b 为典型的 Sigmoid 函数,把可能在较大范围内变化的输入值挤压到(0,1)输出范围内,因此也称为 挤压函数

将许多个这样的神经元按一定层次结构连接,得到神经网络


2. 感知机与多层网络

感知机 (Perceptron):也称 阈值逻辑单元 (threshold logic unit)。由两层神经元组成。输入层接收外界输入信号后传递给输出层,输出层是 M-P神经元

x1,x2 可能是上一层神经元传递过来的,也可能是从数据集中获取的。取值范围为 0到1。由 Sigmoid 函数可知
y = 1 ← Σ i w i x i − θ ≥ 0 y = 0 ← Σ i w i x i − θ ≤ 0 y = 1 \leftarrow \Sigma_iw_ix_i-\theta \geq 0 \newline y = 0 \leftarrow \Sigma_iw_ix_i-\theta \leq 0 y=1←Σiwixi−θ≥0y=0←Σiwixi−θ≤0

线性可分问题:


非线性可分问题:使用多层功能神经元,中间层称为隐层(隐含层)。隐含层与输出层神经元都是拥有激活函数的功能神经元

多层前馈神经网络 (multi-layer feedforward neural networks)。常见神经网络的层级结构。每层神经元与下一层神经元全互连,同层级之间神经元不存在连接,也不跨层连接

输出层神经元:接收外界输入
隐层与输出层神经元:处理加工信号
输出层神经元:输出结果

神经网络的学习过程,就是根据训练数据调整神经元之间的 连接权(connection weight),经及每个功能神经元的 阈值


3. 误差逆传播算法(BP)

多层网络的学习能力比单层感知机强。要训练多层网络,需要更强大的学习算法。

误差逆传播算法(error BackPropagation,BP):用于多层前馈神经网络训练(BP网络通常指),也可用于例如递归神经网络。

数学流程

E k E_k Ek 要剩 1 2 \frac{1}{2} 21 是为了后面方便求导

感知机学习算法的权重 Δ w i \Delta w_i Δwi 与 BP算法不同。
权重更新的方向损失函数梯度的负方向 ,可以 最小化损失 。在多层神经网络中,误差的传播需要使用 链式法则 来计算每个权重对最终输出误差的贡献。这涉及到对损失函数进行求导,得到每个权重的梯度。通过使用损失函数的梯度,BP算法可以更好地 泛化到未见过的数据 上,因为它 考虑了整个训练集的误差,而不仅仅是单个样本的误差 。在 多层网络中,误差不是线性可分的,非线性激活函数的使用使得直接使用误差更新权重不适用。


通常学习率设为 0.1

BP 算法工作流程

累积BP算法 与 标准BP算法:标准 BP 针对单个样例 E k E_k Ek 推导。累积 BP 先读取整个训练集一遍再对参数更新。

累积 BP 更新频率低,但很多任务累积误差达到一定程度后再进步会很慢。标准 BP 更新频率高,但不同样例 E k E_k Ek之间可能出现更新效果相互抵消的情况

万能近似定理(universal approximation theorem) (Hornik et al., 1989;Cybenko, 1989) 证明,只需要一个包含足够多神经元隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。但是隐层的个数未明确得出,通常只能试错调整

由于 BP 算法太过强大,因此经常导致过拟合。训练误差持续降低,测试误差却可能上升。

通常用 早停正则化 缓解过拟合
早停(early stopping):将数据分成 训练集 和 验证集。用验证集估计训练。若训练集误差降低但验证集误差升高,则停止训练,返回最小验证集误差的连接权的阈值
正则化(regularization):


4. 全局最小与局部极小

E E E 表示神经网络在训练集上的误差,是关于连接权 w w w 和 阈值 θ \theta θ 的函数。神经网络的训练可看作参数寻优过程。

两种最优:局部极小,全局最小
我们要找的是全局最小。基于梯度的搜索,从某些初始解出发,迭代找局部极小。每次迭代都沿负梯度方向搜索找最优解。若误差函数只有一个局部极小,则局部极小为全局最小;若误差函数有多个局部极小,不能保证找到的解是全局最小。

通常用以下策略试图找到全局最小:

  1. 多组不同参数值初始化多个神经网络,取误差最小的解作为最终参数,从中进行选择
  2. 模拟退火。以一定的概率接受比当前解更差的 "次优解"。站在初始条件找另一组解。若新解比当前解更优,选择新解。若新解比当前解更差,温度高时,以一定概率接受更差的解。随时间推移,搜索范围变窄,减少接受更差解的概率。最终找到全局最优更近似最优解。模拟退火找到的不一定是全局最优,只是多次尝试增加了找到更优解的概率
  3. 随机梯度下降。计算梯度时加入随机因素,即使陷入局部极小点,计算出的梯度仍可能不为零,有机会跳出局部极小继续搜索

上述方式理论上尚缺乏保障


5. 其他常见神经网络

神经网络模型算法繁多,以下为常见的几种

作为了解,原文并未解释太多

  1. 径向基函数网络,RBF
  2. 竞争型学习,ART
  3. 自组织映射,SOM
  4. 级联相差网络
  5. Elman 网络
  6. Boltzmann 机

6. 深度学习

理论上,参数越多,模型复杂度越高,容量越大,能完成更复杂的学习任务。但复杂模型的训练效率低,容易过拟合

深度学习,用大量数据降低过拟合的风险,云计算计算能力的大幅提高缓解训练低效

典型深度学习模型:增加隐层数目。增加隐层数目比增加隐层神经元数目更有效。因为神经元连接权、阈值等参数会更多,还会增加激活函数嵌套的层数。但是多隐层神经网络难以直接用经典算法进行训练。因为误差在多隐层逆传播时,往往会发散,而不能收敛到稳定状态

无监督逐层训练(unsupervised layer-wise training):预训练:每训练一层隐结点,将上一层隐结点的输出作为输入,本层输出作为下一层输入,也可用于重构上一层的输出。微调:通常使用监督学习对整个网络微调。例如:深度信念网络 DBN

权共享(weight sharing):让一组神经元使用相同的连接权

以卷积神经网络 CNN 为例:

总结深度学习就是把关联不密切的输入的数据逐层提取特征转化为关联更密切的输出目标

相关推荐
博雅智信15 分钟前
人工智能计算机视觉学习路线——从基础到深度探索
人工智能·python·学习·计算机视觉·计算机视觉学习路线·申博
程序猿阿伟18 分钟前
《探秘鸿蒙NEXT中的人工智能核心架构》
人工智能·架构·harmonyos
智算菩萨19 分钟前
【OpenCV】第二章 图像处理基础
人工智能·opencv·计算机视觉
游客52022 分钟前
图像处理|腐蚀操作
图像处理·人工智能·python·计算机视觉
橘子味的茶二43 分钟前
opencv 学习(3)
人工智能·opencv·学习
那不勒斯的萤火丶1 小时前
深度学习——回归优化
人工智能·python·深度学习·回归
King.6242 小时前
SQLynx 数据库管理平台 3.6.0 全新发布:全面支持华为数据库和ClickHouse,代码提示更智能!
大数据·数据库·人工智能·sql·mysql·clickhouse·华为
深圳市青牛科技实业有限公司 小芋圆4 小时前
GC8872 是一款带故障报告功能的刷式直流电机驱动芯片, 适用于打印机、电器、工业设备以及其他小型机器。
人工智能·科技·stm32·单片机·嵌入式硬件·机器人
子午5 小时前
基于Python深度学习【眼疾识别】系统设计与实现+人工智能+机器学习+TensorFlow算法
人工智能·python·深度学习
云天徽上6 小时前
【数据可视化-11】全国大学数据可视化分析
人工智能·机器学习·信息可视化·数据挖掘·数据分析