被错误理解的人工神经网络(三)!

简介: 那些年我们错误理解了人工神经网络,想知道错在什么地方吗?快来学习一下吧。

被错误理解的人工神经网络(一)!

被错误理解的人工神经网络(二)!

本文我们聊聊另外两个人工神经网络的误解:许多算法都需要自己来写?;神经网络训练需要大量的数据?

许多训练算法存在于神经网络中

神经网络的学习算法试图优化神经网络的权重,直到满足一些停止条件。这种情况通常是在网络错误达到训练集合的可接受水平时,验证集上的网络错误开始恶化时或者当指定的计算预算已经用尽时。神经网络最常见的学习算法是反向传播:这是一种使用随机梯度下降的算法,这在本系列前面已经讨论过。反向传播包含两个步骤:

  1.  前馈通道:将训练数据集通过网络并记录神经网络的输出,并计算网络的误差。
  2.  向后传播:误差信号通过网络传回,神经网络的权重使用梯度下降进行优化。

这种方法存在一些问题。一次调整所有权重可导致神经网络在权重空间中的明显移动,梯度下降算法非常慢,并且梯度下降算法易受局部最小值影响。前两个问题可以通过使用梯度下降变种包括动量梯度下降(速传),涅斯捷罗夫的加速动力(NAG)梯度下降的自适应梯度算法AdaGrad),弹性传播(RPROP)以及均方根传播RMSProp)来解决。从下面的图片可以看出,经典的梯度下降算法可以有显着的改进。

558b93866486aeacb77a3d79d3ad5344283b7551

也就是说,这些算法无法克服局部最小值,并且在尝试同时优化神经网络的体系结构和权重时也不太有用。为了实现这一点,我们需要全局优化算法。目前两种流行的全局优化算法是粒子群优化(PSO)和遗传算法(GA)。

神经网络矢量表示

全局优化算法通过将神经网络编码为权重矢量来完成,每个权重表示神经网络中连接的权重。我们可以使用大多数元启发式搜索算法来训练神经网络。这种技术在深度神经网络中效果不佳,因为它会使矢量变得太大。

1309e31fc6bf5d2621396419de82c9f692031238

该图说明了神经网络如何以矢量符号表示并与搜索空间的概念相关。

粒子群优化

为了训练使用PSO的神经网络,我们可以构建这些神经网络的总体/群体。每个神经网络都被表示为一个权重向量,并根据其从全球最佳粒子及其个人最佳位置进行调整。

在完成训练数据集的一个前馈通过之后,适应度函数被计算为重建的神经网络的总和平方误差,这种方法主要考虑的是权重更新的速度。这是因为如果权重调整过快,神经网络的总和平方误差将停滞并且不会发生学习。

5f68b02aabfa56a6cce8e44bc095a9e70ae3c528

该图显示了粒子在单个群体粒子群优化算法中如何相互吸引。

遗传算法

为了使用遗传算法训练神经网络,我们首先构建代表神经网络的矢量群体。然后,我们将三个遗传算法应用于该群体,以发展更好的神经网络。这三个遗传算法是:

  1. 选择:使用一次前馈通过后计算的每个网络的总和平方误差,我们对神经网络的总体进行排序。总体中最高的x%被选择为“生存”到下一代,并用于交叉。
  2. 交叉:总体基因的顶部x%被允许相互交叉,这个过程形成“后代”。在上下文中,每个后代都将代表一个来自两个“父”神经网络的权重的新神经网络。
  3. 突变:该遗传算法需要保持群体的遗传多样性。选择一小部分进行突变,这些神经网络中的一些权重将在特定范围内随机调整。
807f57bd3724d59cfe51eec81c7e5c8a03bd9a9b

该算法是将选择、交叉和突变应用于表示为矢量的神经网络群体。

除了这些基于人群的启发式搜索算法,其他算法已被用于训练神经网络,包括增添了动力反向传播,差分进化模拟退火,和许多更多。就个人而言,我建议使用局部和全局优化算法的组合来克服两者的缺点。

神经网络并不总是需要大量的数据

神经网络可以使用三种学习策略,即监督学习策略,无监督学习策略或强化学习策略。监督式学习策略至少需要两个数据集,一个由预期输出的输入量组成的训练集,以及一个由没有预期输出的输入组成的测试集。这两个数据集都必须包含标记数据,即预先知道目标的数据模式。无监督学习策略通常用于发现未标记数据中的隐藏结构(如,隐马尔可夫链),它们的行为与聚类算法类似。强化学习是基于一个简单的前提,就是奖励好行为的神经网络并惩罚他们的坏行为。由于无监督和强化学习策略不要求数据被标记,因此它们可以应用于很多我们人类未知的问题。

无监督学习

最受欢迎的无监督神经网络体系结构之一是自组织映射(也称为Kohonen映射)。自组织映射基本上算是一种多维缩放技术,它可以构建一个基本数据集Z概率密度函数的近似值,同时保留该数据集的拓扑结构。这可以通过将数据集Z中的输入向量zi映射到特征映射V中的权重向量v j(神经元)来完成。保留拓扑结构仅仅意味着如果两个输入向量在Z中靠近在一起,那么这些输入向量映射到的神经元V 也将靠近在一起。

e42f7ca3bfaa9d30d5f0492d8ac60e23e2c72ee7

有关自组织映射的更多信息以及如何使用它们来生成较低维度的数据集,请单击此处SOM Self-Organizing Maps)的另一个有趣的应用是着色股票交易的时间序列图,这是为了显示当时的市场状况。这个网站提供了一个详细的教程和代码片段来实现改进外汇交易策略的想法。

强化学习

强化学习策略由三部分组成。规定神经网络如何做出决策的规则,例如使用技术指标和基本指标。奖罚函数区分好与坏,例如赚钱与赔钱。还需要有一个指定的长期目标的价值函数。在金融市场(和游戏)中,强化学习策略特别有用,因为神经网络可以学习优化特定数量,例如风险调整后回报的适当度量

fa0ecb8fcccbac1be87964720c3b920dacb097f8

该图显示了神经网络如何被负面或正面地强化。

  数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由阿里云云栖社区组织翻译。

文章原标题《artificial-neural-networks-some-misconceptions》,

作者:Jayesh Bapu Ahire  译者:虎说八道,审校:。

文章为简译,更为详细的内容,请查看原文

相关文章
|
6月前
|
机器学习/深度学习 数据处理
用人工神经网络对混凝土的强度进行建模
用人工神经网络对混凝土的强度进行建模
WK
|
2月前
|
机器学习/深度学习 自然语言处理 算法
PSO算法和人工神经网络有什么不同
PSO算法(粒子群优化)与人工神经网络(ANN)在原理、应用及优化方式上差异显著。PSO模拟鸟群行为,通过粒子协作在解空间中搜索最优解;而ANN模仿大脑神经元结构,通过训练学习输入输出映射,适用于模式识别、图像处理等领域。PSO主要用于优化问题,实时性高,结果直观;ANN则在处理复杂非线性关系方面更强大,但结构复杂,训练耗时长,结果解释性较差。实际应用中需根据需求选择合适技术。
WK
24 0
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战
Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战
130 0
|
4月前
|
机器学习/深度学习 算法 数据可视化
Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战
Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战
116 0
|
6月前
|
机器学习/深度学习 传感器 芯片
LabVIEW利用人工神经网络辅助进行结冰检测
LabVIEW利用人工神经网络辅助进行结冰检测
41 0
|
6月前
|
机器学习/深度学习 算法 计算机视觉
人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例
人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例
|
6月前
|
机器学习/深度学习 编解码 算法
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
|
6月前
|
机器学习/深度学习 算法 数据挖掘
SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型
SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型
|
6月前
|
机器学习/深度学习 存储 计算机视觉
sas神经网络:构建人工神经网络模型来识别垃圾邮件
sas神经网络:构建人工神经网络模型来识别垃圾邮件
|
6月前
|
机器学习/深度学习 人工智能 算法
人工神经网络是什么
人工神经网络是什么
68 0