人工神经网络:一些误解(四)

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

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

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

并不是所有的数据都可以去训练神经网络

神经网络表现很差的最大原因之一是人们没有正确的进行预处理即将被送入神经网络的数据。数据标准化和去除冗余信息和异常值都应该在数据被训练前完成,这样才有可能提高神经网络性能。

数据标准化

数据必须标准化,因为神经网络由通过加权连接在一起的各种感知器层组成。每个感知器都包含一个激活函数,每个激活函数都有一个有效范围(径向基函数除外)。神经网络中的输入必须要在这个范围内缩放,以便神经网络能够区分不同的输入模式。

例如,考虑一个神经网络交易系统,它接收关于一组证券的指标作为输入,并输出每个证券是应该买还是卖。其中一个输入是安全性的价格(我们正在使用Sigmoid激活函数)。然而,大多数证券的成本在每股5美元到15美元之间,而Sigmoid函数的输出接近1.0。因此,所有证券的Sigmoid函数的输出将为1.0,所有的感知器都将触发,神经网络将不会学习到任何有用的知识。

神经网络对未处理的数据进行训练,并不会产生任何价值。

异常清除

异常值是一组数据中明显跟整体数据风格不一样的数值。异常值会导致统计技术出现问题,如回归分析和曲线拟合,因为当模型试图适应异常值时,模型在所有其他数据上的表现会恶化。

78db635875f3e438e2cc41b46ac8c988ee397d1c 

此图显示了从线性回归的训练数据中移除异常值的效果,结果与神经网络相当。

上图显示,试图将异常值纳入线性回归模型会导致数据集的拟合效果不佳。异常值对非线性回归模型(包括神经网络)的影响也是同样的。因此,最好的做法是从训练数据集中移除异常值。但识别异常值本身就是一个挑战。这个教程将介绍一些用于异常值检测和删除的现有技术。

删除冗余

当两个或两个以上高度相关(多重共线性)的自变量被输入神经网络时,这会对神经网络的学习能力产生负面影响。高度相关的输入也意味着由每个变量呈现的特征信息量很小,因此可以消除不太重要的自变量。消除冗余变量的另一个好处是可以让神经网络的训练时间可以更短,自适应神经网络可以用来修剪冗余连接和感知器。

神经网络可能需要重新训练

神经网络并不是训练完之后,就能一劳永逸的,因为神经网络可能会随着时间的推移而停止工作。这不是因为神经网络不靠谱,而是因为金融市场的本身就是一个不确定性很高的行业。金融市场是复杂的适应性系统,意味着它们在不断变化。昨天的工作经验在明天可能就行不通了。这个特性被称为非平稳或动态优化问题,而神经网络在处理它们方面并不是特别擅长。

像金融市场这样的动态环境对神经网络来说非常困难。我们现在有两种方法是可以随时间对神经网络进行再训练或使用动态神经网络。随着时间的推移,动态神经网络“跟踪”环境变化,并相应地调整其架构和权重。随着时间的推移它们对动态问题是自适应,可以使用多解元启发式优化算法来跟踪随时间变化的局部最优解。另一种算法是多群优化算法,即粒子群优化的一个衍生物。此外,具有增强的多样性或内存的遗传算法也可以证明在动态环境中是稳健的。

342f8da84bc80529a3dabca61af2cbf8b527f764

下图演示了遗传算法随着时间的推移如何在动态环境中发现新的最优值。这种算法也适用于模仿贸易拥挤,即市场参与者挤占有利可图的交易策略,从而耗尽交易机会,导致交易变得不那么有利可图。 

神经网络不是黑盒子

神经网络本身就是一个黑匣子。这给希望使用它们的人带来了很多问题,例如,基金经理不知道神经网络如何做出交易决策,因此不可能评估神经网络学习的交易策略的风险。同样,使用神经网络进行信用风险建模的银行也无法证明为什么客户有特定的信用评级。我们前面说过,最先进的特征提取算法已经被开发来包装成一些神经网络架构。这些算法从神经网络中提取知识作为数学表达式、符号逻辑、模糊逻辑或决策树。

1629046232429b30ded8069a19f9be137bf98663

·数学规则:算法已经开发出来,可以从神经网络中提取多条线性回归线。这些技术的问题在于规则通常很难理解;因此,这些并不能解决“黑盒子”问题。

·命题逻辑:命题逻辑是处理离散值变量操作的数学逻辑分支。这些变量(如AB)通常为TRUEFALSE,但它们可以占用离散范围内的值,例如{BUYHOLDSELL}

逻辑运算可以应用于这些变量,如ORANDXOR。结果称为谓词,也可以使用存在或全部量词来对集合进行量化,这是谓词和命题逻辑之间的区别。如果我们有一个简单的神经网络,即价格(P),简单移动平均线(SMA)和指数移动平均线(EMA)作为输入,并且我们可以得到像这样的规则。

b47da31d2eac6b074ceca4b35ea1d08cae732908

  • 模糊逻辑:模糊逻辑是概率和命题逻辑结合的地方。命题逻辑的问题在于绝对交易,例如BUYSELLTRUEFALSE01。因此,对于交易者而言,无法确定这些结果的置信度。模糊逻辑通过引入指定变量属于特定域的成员函数来克服此限制。例如,一家公司(GOOG)可能属于{域名{购买},域名{}}。神经网络和模糊逻辑的组合被称为神经模糊系统——本研究调查讨论了各种模糊规则提取技术。
  • 决策树:决策树显示在给定某些信息时如何做出决定。本文介绍如何使用遗传编程演进安全分析决策树,决策树归纳是从神经网络中提取决策树的过程。

41e1511228aeca9b9b7fc2858da39821133e6497 

一个使用决策树表示简单交易策略的例子:三角形框表示决策节点,这些可能是买入,持有或出售公司。

神经网络不难实施

根据我之前的经验,如果从头开始编写神经网络是一件非常具有挑战性的事情。但幸运的是,现在有数百个开源和专用软件包可以使神经网络的工作变得更容易。点击可以获得可供量化金融使用的数据包列表。该列表并非详尽无遗,按字母顺序排列。如果你有任何其他意见或要添加的框架,请通过评论部分分享。

正如我所提到的,现在有数百个机器学习库和框架。在提交任何一种解决方案之前,我建议你做一个最适合的分析,以查看哪些开源或专有机器学习软件包或软件最符合你的使用案例。一般来说,定量金融软件工程和模型开发中遵循的一条很好的规则就是不要重蹈覆辙。也就是说,对于任何足够先进的模型,你应该期望编写一些自己的代码。

结论

神经网络是一类功能强大的机器学习算法。它们基于坚实的统计基础,并已成功应用于金融模型以及多年的交易策略。尽管如此,由于在实践中使用它们的人失败过,所以它们的声誉不是很好。在大多数情况下,不成功的神经网络都可以追溯到不适当的神经网络设计决策和对其工作原理的一般误解。本文旨在阐明其中的一些误解,希望他们能够帮助成功的实施神经网络。

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

以上为译文。

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

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

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

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

相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
人工智能之从零理解人工神经网络
人工智能并非是一个新型的词汇,从十九世纪五十年代开始,人们就开始探索为机器赋予类似人的智能能力。限于当时的基础数学理论不够完善,人工智能的发展并不顺利。直到九十年代发展出了基于统计学的数学工具,人工智能才得到飞速的发展。
179 5
人工智能之从零理解人工神经网络
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
脑科学与人工神经网络ANN的发展历程
脑科学与人工神经网络ANN的发展历程
128 0
|
8月前
|
机器学习/深度学习 调度
【FFNN负荷预测】基于人工神经网络的空压机负荷预测(Matlab代码实现)
【FFNN负荷预测】基于人工神经网络的空压机负荷预测(Matlab代码实现)
|
9月前
|
机器学习/深度学习 计算机视觉
基于人工神经网络的车牌识别系统的研究(Matlab代码实现)
基于人工神经网络的车牌识别系统的研究(Matlab代码实现)
125 1
基于人工神经网络的车牌识别系统的研究(Matlab代码实现)
|
4月前
|
机器学习/深度学习 自然语言处理 算法
一分钟了解人工神经网络(ANN)
人工神经网络(Artificial Neural Network,简称ANN)是一种模仿生物神经网络的算法数学模型,用于进行信息处理和模式识别。 人工神经网络的基本原理是模拟人脑中神经元之间的相互连接和信息传递。它由多个人工神经元(节点)组成,这些神经元通过连接权重相互传递信号,并通过激活函数对输入信号进行处理。如果网络不能准确识别输入,系统就会调整权重。经过充分的训练后,它将始终如一地识别出正确的模式。
|
4月前
|
机器学习/深度学习 自然语言处理 算法
Python高级算法——人工神经网络(Artificial Neural Network)
Python高级算法——人工神经网络(Artificial Neural Network)
86 0
|
4月前
|
机器学习/深度学习 人工智能 算法
数学建模——人工神经网络模型
数学建模——人工神经网络模型
|
11月前
|
机器学习/深度学习 人工智能 算法
基于Transformer的人工神经网络,将有机结构的图像转换为分子结构
基于Transformer的人工神经网络,将有机结构的图像转换为分子结构
180 0
|
8月前
|
机器学习/深度学习 算法 调度
【经济调度】基于多目标宇宙优化算法优化人工神经网络环境经济调度研究(Matlab代码实现)
【经济调度】基于多目标宇宙优化算法优化人工神经网络环境经济调度研究(Matlab代码实现)
|
8月前
|
机器学习/深度学习 数据采集 数据可视化
基于Kaggle训练集预测的多层人工神经网络的能源消耗的时间序列预测研究(Matlab代码实现)
基于Kaggle训练集预测的多层人工神经网络的能源消耗的时间序列预测研究(Matlab代码实现)