格式化中 2019-06-27
摘要: 那些年我们错误理解了人工神经网络,想知道错在什么地方吗?快来学习一下吧。
本文我们聊聊另外两个人工神经网络的误解:许多算法都需要自己来写?;神经网络训练需要大量的数据?
许多训练算法存在于神经网络中
神经网络的学习算法试图优化神经网络的权重,直到满足一些停止条件。这种情况通常是在网络错误达到训练集合的可接受水平时,验证集上的网络错误开始恶化时或者当指定的计算预算已经用尽时。神经网络最常见的学习算法是反向传播:这是一种使用随机梯度下降的算法,这在本系列前面已经讨论过。反向传播包含两个步骤:
前馈通道:将训练数据集通过网络并记录神经网络的输出,并计算网络的误差。
向后传播:误差信号通过网络传回,神经网络的权重使用梯度下降进行优化。
这种方法存在一些问题。一次调整所有权重可导致神经网络在权重空间中的明显移动,梯度下降算法非常慢,并且梯度下降算法易受局部最小值影响。前两个问题可以通过使用梯度下降变种包括动量梯度下降(速传),涅斯捷罗夫的加速动力(NAG)梯度下降的自适应梯度算法(AdaGrad),弹性传播(RPROP)以及均方根传播(RMSProp)来解决。
也就是说,这些算法无法克服局部最小值,并且在尝试同时优化神经网络的体系结构和权重时也不太有用。为了实现这一点,我们需要全局优化算法。目前两种流行的全局优化算法是粒子群优化(PSO)和遗传算法(GA)。
神经网络矢量表示
全局优化算法通过将神经网络编码为权重矢量来完成,每个权重表示神经网络中连接的权重。我们可以使用大多数元启发式搜索算法来训练神经网络。这种技术在深度神经网络中效果不佳,因为它会使矢量变得太大。
该图说明了神经网络如何以矢量符号表示并与搜索空间的概念相关。
粒子群优化
为了训练使用PSO的神经网络,我们可以构建这些神经网络的总体/群体。每个神经网络都被表示为一个权重向量,并根据其从全球最佳粒子及其个人最佳位置进行调整。
在完成训练数据集的一个前馈通过之后,适应度函数被计算为重建的神经网络的总和平方误差,这种方法主要考虑的是权重更新的速度。这是因为如果权重调整过快,神经网络的总和平方误差将停滞并且不会发生学习。
该图显示了粒子在单个群体粒子群优化算法中如何相互吸引。
遗传算法
为了使用遗传算法训练神经网络,我们首先构建代表神经网络的矢量群体。然后,我们将三个遗传算法应用于该群体,以发展更好的神经网络。这三个遗传算法是:
选择:使用一次前馈通过后计算的每个网络的总和平方误差,我们对神经网络的总体进行排序。总体中最高的x%被选择为“生存”到下一代,并用于交叉。
交叉:总体基因的顶部x%被允许相互交叉,这个过程形成“后代”。在上下文中,每个后代都将代表一个来自两个“父”神经网络的权重的新神经网络。
突变:该遗传算法需要保持群体的遗传多样性。选择一小部分进行突变,这些神经网络中的一些权重将在特定范围内随机调整。
该算法是将选择、交叉和突变应用于表示为矢量的神经网络群体。
除了这些基于人群的启发式搜索算法,其他算法已被用于训练神经网络,包括增添了动力反向传播,差分进化,模拟退火,和许多更多。就个人而言,我建议使用局部和全局优化算法的组合来克服两者的缺点。
神经网络并不总是需要大量的数据
神经网络可以使用三种学习策略,即监督学习策略,无监督学习策略或强化学习策略。监督式学习策略至少需要两个数据集,一个由预期输出的输入量组成的训练集,以及一个由没有预期输出的输入组成的测试集。这两个数据集都必须包含标记数据,即预先知道目标的数据模式。无监督学习策略通常用于发现未标记数据中的隐藏结构(如,隐马尔可夫链),它们的行为与聚类算法类似。强化学习是基于一个简单的前提,就是奖励好行为的神经网络并惩罚他们的坏行为。由于无监督和强化学习策略不要求数据被标记,因此它们可以应用于很多我们人类未知的问题。
无监督学习
最受欢迎的无监督神经网络体系结构之一是自组织映射(也称为Kohonen映射)。自组织映射基本上算是一种多维缩放技术,它可以构建一个基本数据集Z的概率密度函数的近似值,同时保留该数据集的拓扑结构。这可以通过将数据集Z中的输入向量zi映射到特征映射V中的权重向量v j(神经元)来完成。保留拓扑结构仅仅意味着如果两个输入向量在Z中靠近在一起,那么这些输入向量映射到的神经元V 也将靠近在一起。
有关自组织映射的更多信息以及如何使用它们来生成较低维度的数据集,请单击此处。SOM( Self-Organizing Maps)的另一个有趣的应用是着色股票交易的时间序列图,这是为了显示当时的市场状况。这个网站提供了一个详细的教程和代码片段来实现改进外汇交易策略的想法。
强化学习
强化学习策略由三部分组成。规定神经网络如何做出决策的规则,例如使用技术指标和基本指标。奖罚函数区分好与坏,例如赚钱与赔钱。还需要有一个指定的长期目标的价值函数。在金融市场(和游戏)中,强化学习策略特别有用,因为神经网络可以学习优化特定数量,例如风险调整后回报的适当度量。
该图显示了神经网络如何被负面或正面地强化。
本文由阿里云云栖社区组织翻译。
文章原标题《artificial-neural-networks-some-misconceptions》
本文为云栖社区原创内容,未经允许不得转载。
人工神经网络的初学者很可能都会面临一些问题。人工神经网络的灵感来自于生物学的神经网络。为了简单起见,在计算机科学中,它被表示为一系列的网络层。输入层中的神经元数量等于正在处理的数据中的输入变量的数量。