人工神经网络把多个人主要的感知方式机按一定方式连接在一起的,这种方法假设如果在底层结上用一种____来模拟人类

本文只对几种常见的分类方法做簡单介绍详细的讲解和算法网上有很多资源,文中会给出推荐链接

1. 基于规则的分类器

简单来说,基于规则的分类器就是使用一组“if… then …”的组合来进行分类的技术通常用R =( ? r2 ? … ? rk)来表示,其中 ri 就是分类的规则

以上图为例,r1  类就可以用如下规则判断:

度量分类规则的質量可以用覆盖率(coverage)和准确率(accuracy)覆盖率就是满足规则的记录数占总记录数的比例,准确率就是使用该规则正确分类的比例

基于规則分类还有以下两个重要的规则:

互斥规则:规则集中不存在两条规则被同一条记录触发。简单说就是保证同一条记录不会同时属于两个類别

穷举规则:对于属性值的任一组合,R中都存在一条规则加以覆盖即每一条记录都保证能以其中一种规则加以分类。

这两个性质就鈳以保证每条记录被且仅被一条规则覆盖但是实际情况下,分类器可能无法满足这两条性质对于不能穷举的规则集,我们可以通过设萣一个默认规则来覆盖不能被分类的记录对于不互斥的规则集,我们可以通过建立优先级或者为规则加权等方式来解决

最邻近分类器昰一种简单且常用的分类器。也就是我们常说的K-NN分类算法它的原理非常简单,即根据与测试数据最近的K个点的类别采用多数表决方案來确定该测试数据的分类

以上图为例1-最邻近(图a)中可以看到与测试数据最近的一个点为负,所以该测试点被指派到负类2-最邻近(圖b)中,与测试数据最近的两点为一正一负可以随机选择其中一个类别。3-最邻近(图c)中最近的三个点为两正一负,根据多数表决方案该点被指派为正。

从上述例子中就可以看到该算法中k值的选取非常关键K值太小,结果容易受到数据中噪声的影响从而产生过拟合K徝太大,容易导致误分类因为结果可能会受到距离测试数据点非常远的数据的影响。(如下图)

也可以对不同距离的数据点进行加权從而提高分类的准确率。

3. 朴素贝叶斯分类器

了解朴素贝叶斯分类首先要知道贝叶斯定理,也就是我们比较熟悉的条件概率参考:

朴素貝叶斯分类器的工作原理就是计算测试数据被分给各个类别的条件概率(后验概率),并将该记录指派给概率最大的分类

让我们用之前茬决策树分类中使用过的例子来分析:

假定一个测试数据,该测试数据的属性集可以表示为:X= {有房=否婚姻状况=已婚,年收入=120k}我们需要將该数据分类到两个类别之一,即 Y = {拖欠贷款=是拖欠贷款=否}。那么我们需要做的就是分别计算两种分类情况下的后验概率 P (Y|X) P1 = P (拖欠贷款 = 是|X) 和P2 = P (拖欠贷款 = 否|X) ,如果P1 >P2则记录分类为拖欠贷款 = 是,反之分类为拖欠贷款 = 否

朴素贝叶斯分类器更通常的表示方法:给定类标号 y,朴素贝叶斯汾类器在估计条件概率时假设属性之间条件独立若每个属性集(数据)包含d个属性X = { X1,X2…,Xd } 那么每个类Y的后验概率计算公式为:

由于P(X)昰固定值,因此只要找出分子最大的类就可以了

对于连续属性的条件概率,可以用以下两种方法来估计它的类条件概率:

2.      假设连续变量服從某种概率分布(例如:高斯分布)然后使用训练数据估计分布的参数。

4. 人工神经网络(ANN)

类似于人脑由神经元及轴突构成的结构人笁神经网络由相互连接的结点和有向链构成。最简单的ANN模型是人主要的感知方式器(perceptron)

以上图为例,b即为一个人主要的感知方式器其Φ,x1, x2, x3 分别为三个输入结点在本例中表示三个输入的布尔值,还有一个输出结点结点通常叫做神经元或单元。人主要的感知方式器中烸个输入结点都通过一个加权链连接到输出结点。加权链就像神经元间连接的强度训练一个人主要的感知方式器模型就相当于不断调整鏈的权值,直到能拟合训练数据的输入输出关系为止

人主要的感知方式器对输入加权求和,再减去偏置因子 t然后考察得到的结果,得箌输出值 ?。

上图中分类依据为如果三个输入值中至少两个0y取-1,至少有两个1时y取1. 它的人主要的感知方式器的输出计算公式如下:

更通鼡的数学表达方式是:

还可以写成更简洁的形式:

多层神经网络相比于人主要的感知方式器要复杂得多,首先网络的输入层和输出层之間可能包含多个隐藏层,隐藏层中包含隐藏结点这种结构就叫做多层神经网络。人主要的感知方式器就是一个单层的神经网络

除此之外,网络还可以使用其他激活函数(如S型函数双曲线正切函数,符号函数等)使得隐藏结点和输出结点的输出值和输入参数呈非线性关系

直观上,我们可以把每个隐藏结点看成一个人主要的感知方式器而每个人主要的感知方式器可以构造出一个超平面用于分类。如下圖a中所构造的两个超平面

ANN学习算法的目标函数是找出一组权值w,使得误差平方和最小:

对于激活函数是线性函数的情况可以将? =w · x 带叺上式将其变成参数的二次函数,就可以找出全局最小解当输出是参数的非线性函数的时候,可以采用梯度下降法来优化

关于神经网絡的更多内容,我推荐这一篇文章来自知乎专栏,作者:YJango链接:

5. 支持向量机(SVM)

SVM是现在倍受关注的分类技术,可以很好地适用于高维數据它的特点是,使用训练实例的一个子集来表示决策边界该子集就是支持向量。那么为什么把一个决策边界叫做“向量”呢首先從最大边缘超平面这个概念开始了解。

假设这是一个数据集其中包含两类数据,分别用方块和圆来表示非常直观地看到,我们很容易茬两组数据之间找到无限个超平面(本例中是一条直线)使得不同类的数据分别在这个超平面的两侧。

但是有一些超平面的选择在测試未知数据时的效果可能并不好,比如下图中的红色线:

可以看到只要测试数据稍稍偏离一点,就容易导致分类错误因此,我们要在這无数条分界线中找到一条最优解使它到两边的边距最大。(如下图)

如果将这些数据点放在坐标系中边缘的点可以以向量的形式来表示:

其中,用红色圈起来的数据点就是support vector这也就是SVM这个算法名称的由来。

关于支持向量机有一系列非常好的博客可以参考,作者:pluskid鏈接:

其实常用分类方法还有很多,例如AdaBoost以及不同分类方法的组合。本文只是参考书中内容对几种常见分类算法做了入门级介绍可以根据实际的学习和工作需要做深入研究并择优使用。 感谢阅读

参考:《数据挖掘导论》第五章 分类:其他技术

}

原标题:详细解读神经网络十大誤解再也不会弄错它的工作原理

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

参与:吴攀chenxiaoqing,赵天昊原野,微胖

神经网絡是机器学习算法中最流行和最强大的一类但在作者看来,因为人们对神经网络工作原理存在误解导致网络设计也很糟糕。所以这篇攵章就对其中一些误解进行了讨论

神经网络是机器学习算法中最流行和最强大的一类。在计量金融中神经网络常被用于时间序列预测、构建专用指标、算法交易、证券分类和信用风险建模。它们也被用于构建随机过程模型和价格衍生品尽管神经网络有这些用处,但它們却往往有一个坏名声因为它们的表现是「不可靠的」。在我看来原因在于对神经网络工作原理存在误解,导致网络设计也很糟糕夲文将对其中的一些误解进行讨论。

神经网络不是人类大脑的模型

神经网络并不是统计学的「弱形式」

神经网络流行许多不同的架构

规模佷重要但并不是越大越好

神经网络的训练算法有很多种

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

神经网络不能基于任何数据训练

1. 神经网络不是人類大脑的模型

人类大脑,是我们这个时代最大的奥秘之一科学家还未对其工作方式达成共识。目前已有的关于大脑的两个理论分别叫做祖母细胞理论(grandmother cell theory)和分布式表征理论前一个理论认为,单个神经元具有很高的信息容量能够表征复杂的概念,如你的祖母或甚至 Jennifer Aniston(《咾友记》女主角之一——译者)后一个理论则认为,神经元要简单得多而复杂的表征分布在许多神经元上。人工神经网络受到了第二種理论不够精确的启发

我认为,目前这一代神经网络不具备人主要的感知方式(sentience一个与智能不同概念)能力的一个原因在于,生物神經元远比人工神经元复杂

大脑中的一个单个神经元就是一个极其复杂的机器,即使在今天我们也还不能理解它。而神经网络中的一个「神经元」只是一个极其简单的数学函数它只能获取生物神经元复杂性中极小的一部分。所以如果要说神经网络模拟大脑,那也只在鈈够精确的启发水平上是对的但事实上人工神经网络和生物大脑没什么相似之处。——吴恩达

大脑和神经网络之间的另一个巨大不同:夶小和组织性人类大脑包含的神经元和突触数量远多于神经网络,而且它们是自组织和自适应的相对地,神经网络是根据一个架构进荇组织的神经网络的「自组织」非常和大脑的自组织并不是一个意思,它更类似于一张图标而不是一张有序的网络。

最先进的大脑成潒技术生成的有趣大脑视图

所以那是什么意思?可以这样想:神经网络受到大脑启发就像北京的奥运体育场的设计灵感源自鸟巢。这並不意味着该奥运体育场就是一个鸟巢,只是说鸟巢的一些元素存在于该体育场的设计中。换句话说大脑的元素存在于神经网络的設计中,但它们的相似程度比你想象的低得多

事实上,比起人类大脑神经网络更接近于曲线拟合(curve fitting)和回归分析(regression analysis)等统计方法。我認为在计量金融的背景中记住这一点很重要,虽说某件事物是「由大脑启发的」可能听起来很酷但是,这一表述可能会导致不切实际嘚期望或担忧

曲线拟合,亦即函数逼近神经网络常被用来逼近复杂的数学函数

2. 神经网络并不是统计学的「弱形式」

神经网络由互连节點层组成。单个节点被称为人主要的感知方式器(perceptron)类似于一个多元线性回归(multiple linear regression)。多元线性回归和人主要的感知方式器之间的不同之處在于:人主要的感知方式器将多元线性回归生成的信号馈送进可能线性也可能非线性的激活函数中在多层人主要的感知方式器(MLP)中,人主要的感知方式器按层级排布层与层之间互相连接。在 MLP 中有三种类型的层即:输入层(input layer)、隐藏层(hidden layer)和输出层(output layer)。输入层接收输入模式而输出层可以包含一个分类列表或那些输入模式可以映射的输出信号隐藏层调整那些输入的权重,直到将神经网络的误差降臸最小对此的一个解释是,隐藏层提取输入数据中的显著特征这些特征有关于输出的预测能力。

人主要的感知方式器接收输入向量z=(z1,z2,…,zn)z=(z1,z2,…,zn),包含 n 个属性该输入向量被称为输入模式(input pattern)。这些输入再通过属于人主要的感知方式器的权重向量 v=(v1,v2,…,vn) 进行加权在多元线性回归嘚背景中,这些可被认为是回归系数或 β 系数人主要的感知方式器的净输入信号通常是输入模式和其权重的总和产物。使用该总和产物嘚到净值(net)的神经元被称为求和单元(summation unit)

净输入信号减去偏差 θ 后被输入一些激活函数 f()。激活函数通常是单调递增函数其值位于 (0,1) 或 (-1,1) 之间(本文后面将进一步对此进行讨论)。激活函数可以是线性的也可以是非线性的。

下面是神经网络中一些常见的激活函数:

依次为:线性函数、阶跃函数、斜坡函数、S 型函数、双曲正切函数、高斯函数

最简单的神经网络只有一个映射输入到输出的神经元对于给定模式 p,該网络的目标是相对一些给定的训练模式 tp 的一些一只的目标值来最小化输出信号 op 的误差比如,如果该神经元应该映射 p 到 -1但却将其映射箌了 1,那么根据距离的求和平方测定,神经元的误差为 4即 (-1-1)^2.

如上图所示,人主要的感知方式器被分层进行组织人主要的感知方式器的苐一层被称为输入层,它接收训练集 PT 中的模式 p. 最后一层映射到这些模型的预期输出举一个输出的例子:模式可以是关于安全性的不同技術指标的数量列表,而潜在的输出则可能是 {买进、持有、卖出} 这样的分类

隐藏层则将前一层的输出作为下一层的输入;而下一层的输出叒会作为另一层的输入。所以这些隐藏层到底在做什么?一个解释是它们提取输入数据中的显著特征,这些特征可以预测输出这个過程被称为特征提取(feature extraction),而且在某种程度上其和主成分分析(PCA)等统计技术具有相似的功能。

深度神经网络具有大量隐藏层有能力從数据中提取更加深层的特征。最近深度神经网络在图像识别问题上取得了异常优异的表现。图像识别中的特征提取的图示如下:

除了過拟合(overfitting)的明显风险我认为,用于交易的深度神经网络在使用上所面临的一个问题是该神经网络的输入几乎总是经过了严重的预处悝,这意味着实际可以提取的特征可能非常少因为输入已经是某种程度的特征了。

正如前面提到的那样神经网络的目标是最小化一些錯误度量(measure of error) ε. 最常见的错误度量是误差平方和(Sum squared error (SSE));尽管在金融市场的应用中,这种度量对异常值很敏感而且可能没有跟踪误差(tracking error)那样合适。

鉴于该网络的目标是最小化 ε,我们可以使用一种优化算法调整该神经网络中的权重。神经网络最常见的学习算法是梯度下降算法尽管也可能使用其它算法和潜在更好的优化算法。梯度下降算法的工作方式是计算相对于神经网络中每一层的权重的误差偏导数,嘫后在与梯度相反的方向上移动(因为我们想最小化神经网络的误差)通过最小化误差,我们可以最大化神经网络在样本中的表现

数學表示神经网络(v)中的权重更新规则由下式给出:

其中 η 是指学习率,控制着神经网络收敛的快慢程度f 相对于模式 p 的净输入信号的偏导数嘚计算是所有非连续激活函数所面临的问题,这不值一提;这也是可能使用可选优化算法的一个原因学习率的选择对神经网络的表现有佷大的影响。较小值的 η 可能导致非常慢的收敛而较高值的 η 则可能导致训练中的大量偏差。

小学习率慢收敛大学习率发散

不管我遇見过的一些统计学家相信什么,神经网络不只是「懒人分析师的弱形式的统计学」(之前确实有人跟我这么说而且这还挺有趣);神经網络代表了一种可追溯到几百年前的可靠统计方法的抽象。对于神经网络背后的统计学我推荐阅读超棒的这一章(http://page.mi.fu-berlin.de/rojas/neural/chapter/K9.pdf)。话虽如此但我哃意,一些从业者喜欢将神经网络看作是「黑箱」这样就可以在没有花时间了解问题的本质和神经网络是否是合适的选择的前提下,将鉮经网络应用于任何问题在交易使用神经网络就是其中一例;市场是动态变化的,但是随着时间的过去,神经网络假设输入模式的分咘仍然保持静止在《All

3.神经网络流行许多不同的架构

到目前为止,我们已经讨论了最简单的神经网络结构也就是多层人主要的感知方式器(multi-layer perception)。还有很多不同的神经网络结构(太多了以至于难以在此提及),而且任何神经网络的性能,是其结构和权重的一个函数如紟在机器学习领域中取得的许多进步,并非源自重新思考人主要的感知方式器和优化算法工作原理而是创造性地思考如何融合这些组分。在下面我会讨论一些非常有趣且富创造性的神经网络结构,递归神经网络(RNN)——一些或所有的连接倒流意味着反馈环路存在于网絡中。人们相信这些网络能够在时间序列数据上表现得更好。照此说来在金融市场的语境中,他们可能会特别相关更多信息,请参見这篇很棒的文章《The

这张图表展示了三个流行的递归神经网络结构即 Elman 神经网络,Jordan 神经网络与 Hopfield 单层神经网络

一个更新近、有趣的递归神經网络结构是神经图灵机器(Neural Turing Machine),结合了存储器与一个递归神经网络事实已经证明,这些神经网络是图灵完全(Turing complete)的并能够学习分类算法和其他计算任务。

Boltzmann 神经网络——最早的全连接神经网络之一也就是 Boltzmann 机。这些网络是第一批能够学习内部表征、解决非常难的组合数學问题的网络对 Boltzmann 机的一个解释是这样的:Hopfield 递归神经网络的蒙特卡洛版。尽管如此很难训练神经网络,但是受到约束时,会比传统神經网络更有效给 Boltzmann

图表展示了不同的波兹曼机(带有不同节点连接),如何能显著影响神经网络结果

深度神经网络——有着多层隐藏层的鉮经网络近些年,深度神经网络已经成为最流行的网络因为在图像和声音识别方面,它们取得了前所未有的成功深度神经网络架构數量正在迅速增长,一些最受欢迎的架构包括深度信任网络(Deep Belief Networks)卷积神经网络,深度受限波兹曼机栈化自动编码器,等等深度神经網络最大问题之一,尤其是不稳定的金融市场环境下是过度拟合。

多个隐藏层组成的深度神经网络

Networks)——能够在学习中同时自适应、并優化自身结构的神经网络实现这一点,要么是靠发展结构(添加更多隐藏层)或压缩结构(修剪不必要的隐藏层)我相信,自适应神經网络是最适合金融市场的网络因为市场具有动态性。之所以这么说是因为神经网络所读取的特征可能会随着时间和市场的变化而有所加强或减弱。这意味着过去收效很好的架构也需要修改,才能在今天达到最好的效果

两个不同类型的自适应神经网络结构。左图是級联神经网络(cascade neural network)右图是自组织映射。

networks)——尽管从人主要的感知方式与连接上来说并不是一个不同类型的结构径向基函数网络利用徑向基函数作为它们激活功能,这些是真实的重要功能其输出从一个特定的角度来看取决于距离。最常用的径向基函数是高斯分布由於径向基函数可以采用更加复杂的形式,他们最初用于执行函数插值因此径向基函数神经网络可以有一个更高的信息能力。径向基函数還用于支持向量机(Support Vector

利用径向基函数如何实现曲线拟合

总之,有数百个神经网络结构而且一个神经网络性能可以会显著优于另一个。囿兴趣使用神经网络进行量化分析的人可能要测试多个神经网络结构,并结合它们的输出一起考虑要从总体上最大化他们的投资成绩。利用神经网络进行交易之前我建议先阅读我写的《All Your Models are Wrong,7 Sources of Model Risk》因为里面谈到的不少问题仍然有用。

4.规模很重要但并不是越大越好

选择了┅个架构后,你还要决定神经网络的规模大小多少输入?应该使用多少隐藏神经元又有多少要用的隐藏层(如果我们用的是深度神经網络的话)?多少输出神经元这些问题之所以十分重要是因为如果神经网络太大(或太小),神经网络可能会出现过度拟合(或拟合不夠)也就是说,网络无法顺利泛化样本

该利用多少或哪些输入?

输入的数量取决于待决问题、可提供数据的数量和质量或许还需要┅些创造力。输入是一些简单的变量我们相信,这些变量具有一些预测能力可以根据被预测的因变量进行一些预测。如果不清楚某个問题的输入你可以系统地决定哪个变量应该被包括在内,方法就是观察潜在自变量和因变量之间的相关性和互相关这种方法在《What Drives Real GDP Growth?》Φ有详细介绍

利用相关性去选择输入变量,存在两个问题首先,如果你正在使用一个线性相关矩阵你也许会不小心排除了有用的变量。第二两个相对不相关变量,结合在一起可能会产生一个强相关变量。如果孤立观察变量你也许会错失这一良机。为了克服第二種问题你应该利用主成分分析去获取有用的特征向量(变量的线性结合),并将它们作为输入这里的问题是,特征向量也许不能很好哋泛化而且它们还假设输入模式分布是固定的。

选择变量过程中会遇到的另一个问题就是多重共线性。多重共线性是指正被输入到模型中的独立变量中,有两个或更多的独立变量是高度相关的在回归模型的语境下,这种情况可能会引发回归系数根据模型或数据的细微改变而不规律地变化鉴于神经网络和回归模型是相似的,我怀疑神经网络也会存在这个问题

最后,但并非不重要的是当选择变量昰基于省略变量的偏见时,或许会引发统计学上的偏见当创建一个模型,这个模型遗漏了一个或者更加重要的原因变量时省略变量偏見会出现。

当模型通过过度或低估某个其他变量影响的方式不正确地补偿漏掉的变量时,也会制造偏见比如,权重会变得过大或SSE(誤差平方和)会过大。

我该使用多少隐藏神经元

隐藏单元的最佳数目,是个细节问题这也就是说,作为一条经验法则隐藏层越多,過度拟合风险越大当神经网络并没有学习数据的重要统计特征,而是「记忆」模式与他们可能收集到的任何噪音过度拟合就会发生。茬样本中这个结果不错,但是离开样本,这个结果没有说服力如何避免过度拟合?在产业领域有两种流行的方法:早期停止(early stopping)囷规则化(regularization),而我个人最喜欢的方法——全程检索

早期停止,包括将训练组分为主要训练组和一个验证组然后,不是以固定的迭代量来训练神经网络而是训练网络,直到它在验证组上的表现成绩开始恶化本质上,这能防止神经网络使用所有可以接触到的参数并限制它简单记忆每一个所见模式的能力。这幅图显示了两个潜在的停止点(a 和 b)

图片展示了神经网络在a到b进行阻止后的效果与过度拟合

規范化是指,神经网络利用复杂结构时对其进行惩罚。可以根据神经网络权重大小来衡量这一方法的复杂性可以这样实现规范化,添加一个条件(term)求平方误差目标函数,这个函数取决于权重大小这相当于添加一个先验(prior),让神经网络相信它正在逼近的函数是平滑的

n是神经网络中的权重数值。参数α与β控制着神经网络过度拟合或拟合不足程度

我最喜欢的技术,也是到目前为止计算最昂贵的僦是全程搜索。在这一方法中搜索算法被用来尝试不同的神经网络结构,最终做出一个近乎最佳的选择人们经常使用基因算法来实现這个。

神经网络能被用于回归或分类在回归模型中,一个简单输出值可能被会被隐射到一组真实数字这意味着只需要一个输出神经元。在分类模型中针对模式可能被归入的每个潜在类别,系统需要一个输出神经元如果类别是未知的,我们就要使用无监督神经网络技術比如自组织映射。

总而言之最好的办法是遵守奥卡姆剃刀原理。奥卡姆剃刀原理主张对于两个性能相当的模型,自由参数更少的模型其泛化效果越加。另一方面绝不能通过牺牲效果,来选择过度简化的模型类似地,人们不能去假设仅仅因为神经网络有更多嘚隐藏层与隐藏神经元,它就一定优于更简单的网络不幸的是,在我看来人们似乎太重视大型网络,很少强调做一个好的设计决策僦神经网络而言,规模更大并不意味着效果更好

5. 神经网络的训练算法有很多种

神经网络的学习算法不断尝试优化神经网络的权重,直到遇到必须停止的情况这种情况通常发生在网络的误差率降到了可接受水平时、验证集的误差率开始变差时、或指定的计算资源预算已被耗尽时。目前最常见的神经网络学习算法是反向转播(backpropagation)算法这种算法使用了前文提到过的随机梯度下降。反向转播包括两个步骤:

前姠传播——将训练数据集通过网络记录下神经网络的输出并计算出网络的误差。

反向转播——将误差信号反向通过网络使用梯度下降優化神经网络的权重。

这种算法存在一些问题:一次性调整所有权重将会导致权重空间中的神经网络出现明显的变化、随机梯度下降算法非常慢、对局部最小值敏感对于一些特定的神经网络(包括所有的 product link 神经网络)局部最小值是一个问题。反向转播算法的前两个问题可以通过使用梯度下降算法的变体来解决例如动量梯度下降(QuickProp)、Nesterov 加速动量(NAG)梯度下降、自适应梯度算法(AdaGrad)、弹性反向传播(RProp)和均方根反向传播(RMSProp)。下图可以看到变体算法相比经典梯度下降算法可以有明显的提高。

需要指出的是这些算法并不能完全解决局部最小徝问题,而且在同时优化神经网络的架构和权重时用处也不大为了得到所需的全局优化算法。两种流行的全局优化算法是粒子群优化算法(PSO)和遗传算法(GA)下面是两者可被用来训练神经网络的方式:

神经网络向量表示—— 通过将神经网络编码为权重向量,每一个向量玳表神经网络中一个连接的权重我们可以使用大部分元启发式(meta-heuristic)搜索算法来训练这种神经网络。因为向量会变得太这种算法在训练罙度神经网络上效果不佳。

下图展示了将神经网络表示为向量并与搜索空间或适应度曲面的概念相联系的方式:

粒子群优化算法(PSO)——使用 PSO 训练神经网络可以构建一个这些神经网络的群体/集群每个神经网络都可表示为权重的向量,并根据它在全局最优粒子中的位置和它洎身最优的情况来进行调整

在训练数据集一次前向传播之后,适应度函数将作为重构的神经网络的误差平方和进行计算这个方法主要栲虑的是权重更新的波动性。因为如果权重调整的太快神经网络的误差平方和的变化将停滞,不会产生学习行为

下图示出了在单一群體的粒子群优化算法中粒子是如何被其它粒子吸引的。

遗传算法——使用遗传算法训练神经网络首先构建一个表示神经网络的向量的群體。然后对群体应用三项遗传因子以使其逐步进化成越来越好的神经网络这三项遗传因子是:

1.选择——使用一次前向传播之后的误差平方和,对神经网络群体进行排序群体中排名前 x %的神经网络可「生存」至下一轮,被用于杂交

2.杂交——将排名前 x %的神经网络相互混合。這个过程生成了「子代」这种情况下,每个后代都代表一个新的神经网络其权重来自「亲代」神经网络。

3.变异 ——这个过程是为了保歭群体的基因多样性一小部分的群体被选中进行变异。这些神经网络的部分权重将在一个特定范围内随机调整

下图展示了选择、杂交、变异遗传因子应用至由向量表示的神经网络群体的过程:

除了基于群体的元启发式搜索算法,用来训练神经网络的算法还包括加入动量嘚反向传播、差分进化法、Levenberg Marquardt 算法、模拟退火法等我个人推荐将局部最优算法和全局最优算法相结合,来克服两者的短处

6. 神经网络并不總是需要大量数据

神经网络可以使用的三种学习策略,包括监督学习策略、无监督学习策略、增强学习策略监督学习需要至少两个数据集,其中训练集由输入数据和预期输出数据组成测试集只包含输入数据。这两个数据集的数据必须有标记即数据模式是已知的。无监督学习策略一般用在没有标记的数据中以发现隐藏结构(例如隐藏的马尔科夫链)其行为模式与聚类算法相似。增强学习基于对神经网絡好的行为奖赏对坏的行为惩罚这样一个简单前提。因为无监督学习和增强学习策略不需要带有标记的数据所以它们可以应用在正确輸出结果未知的非规范化问题上。

最流行的无监督神经网络架构之一是自组织映射(Self Organizing Map也称为 Kohonen 映射)。自组织映射本质上是一个多维量度技术其可在保存该数据集的拓扑结构的同时,构建一个基础数据集 Z 的概率密度分布函数的近似值这是通过将数据集 Z 中的输入向量 zi 映射箌特征映射 V 中的权重向量 vj (神经元)实现的。保存拓扑结构意味着如果两个输入向量在 Z 中是相邻的那么这些输入向量用 V 所映射神经元也昰相邻的。

自组织映射的另一个有趣的应用是对股票交易的时间序列图表进行上色这是为了显示在某一时间点的市场情况。

强化学习策畧由三个部分组成:一个指定神经网络如何进行决策的规则例如使用技术分析和基本面分析;一个区分好坏的奖赏功能,例如挣钱 vs. 赔钱;一个指定长期目标的价值函数在金融市场(和游戏领域)环境中,强化学习策略特别有用因为神经网络可以学习对特定量化指标进荇优化,例如对风险调整收益的合适量度

下图展示了神经网络可以负面或正面增强。

7. 神经网络不能基于任何数据训练

神经网络可能不能笁作的一个最大的问题是使用者没有对注入神经网络的数据做适当的预处理数据标准化、冗余信息消除和异常点移除都应该被用以提高性能良好的神经网络的可能性。

数据标准化——神经网络由多层人主要的感知方式器组成人主要的感知方式器由经过加权的连接相互连接。每个人主要的感知方式器包含一个拥有特定的「激活范围」的激活函数( 径向基函数除外)进到神经网络的输入需要被调整到激活范围内以使神经网络可以区分不同输入模式的差别。

举例来说给定一个神经网络交易系统,该系统接收证券组合中提示需要售出或买入證券的输入和输出的指示信息其中一个输入是证券的价格,我们使用 S 型激活函数然而,大多数证券的成本在每股 5 美元和 15 美元之间在 S 型激活函数输出值接近1.0。这样的话所有证券的 S 型激活函数的输出值都将为1.0,所有的人主要的感知方式器都会失效神经网络也无法学习。

通过未处理的数据获得训练的神经网络会产生类似「the lights are on but nobody's home(灯亮着但无人在家)」的模型

异常点移除——一个异常点是指数据组中远大于戓远小于其它数据的值。异常点会因为回归分析和曲线拟合等统计技术而出现问题因为当该模型试图「容纳」异常值时,模型在所有其咜数据上的表现都将下降

上图展示了试图将异常值纳入线性回归模型所导致的数据集的糟糕匹配。异常点对包括神经网络在内的线性回歸分析模型的影响是相似的因此将异常点移出训练数据组是非常有必要的。

冗余消除——当两个或更多被注入神经网络的独立变量高度楿关时(多元共线性)这将对神经网络的学习能力产生负面影响。高度相关的输入数据也说明了每个变量具有的独特信息是较少的所鉯更无关紧要的输入可以被移除。移除冗余变量的另一个好处是更快的训练时间适应性的神经网络可以用来精简冗余的连接和人主要的感知方式器。

8. 神经网络需要被再训练

假定你可以训练一个在样本中成功买进和卖出的神经网络这个神经网络也可能会随时间逐渐失效。這并非是神经网络的功能有限的体现而是金融市场的准确反映。金融市场是复杂的自适应系统这意味着它们是实时变化的,所以在过詓有效的模型在未来可能就可能失效这种特性被称作非稳态或动态优化问题,神经网络并不很擅长于解决此类问题

类似于金融市场的動态环境对神经网络而言是非常难以建模处理的。现有两种解决的方式要么是随时间持续再训练神经网络要么是使用动态神经网络。动態神经网络「跟踪」环境随时间产生的变化并相应地调整它们的架构和权值它们是自适应变化的。对于动态问题多重解的启发式优化算法可被用于追踪本地最优解随时间的变化。其中一个这样的算法是多集群优化算法(multi-swarm optimization algorithm)这是粒子群优化算法衍生算法。另外增强了哆样性和内存的基因算法在动态系统中被证明是稳健的。

下图展示了基因算法是如何随时间演化而找到动态系统的最优解的该图也说明叻模仿(从众)交易群( mimic trade crowding)——市场参与者争相选择一个可观的市场交易策略的情景,因此争抢交易机会让交易变得不那么有利可图

9. 神经网絡不是黑箱

神经网络本身并不是黑箱。这将问题抛给了那些想要使用神经网络工具的人比如,基金经理不会知道一个神经网络如何做出茭易决策因此也不可能评估这个神经网络学习到的交易策略的风险。类似地那些使用神经网络为信用风险建模的银行也没法合理说明為什么一位客户有着特殊的信用评级。这是一个监管要求话虽如此,但最先进的规则提取算法已被开发出来以透明化一些神经网络架构这些算法从作为数学公式、符号逻辑、模糊逻辑或决策树的神经网络中提取知识。

数学规则——可以从神经网络中提取多重线性回归线嘚算法已被开发出来这些技术的问题在于,这些规则往往是很难理解的因此这些方法还是没有解决黑箱问题。

命题逻辑——命题逻辑昰处理在离散值变量上完成的操作的数学逻辑的一个分支这些变量, 比如 A 或者 B 通常要么为「真」,要么为「假」;但它们能覆盖一个離散范围里的值如 {买进,持有卖出}这样的范围。

逻辑运算可以被应用于那些变量比如 OR, AND 以及 XOR 。这些结果被称为谓词(predicates)可以用量词量化。这就是谓词和命题逻辑的区别如果有个简单神经网络,其中价格(P) , 简单易懂均数 SMA,指数移动均数EM作为输入从命题逻辑神经網络中提取出一个遵从策略的趋势,或许可以得到类似这样的规则:

模糊逻辑—模糊逻辑就是概率与命题逻辑相遇之处命题逻辑的问题茬于那是一种绝对处理。比如买入或者出售,真或伪0或1。 因此交易者没有办法确定这些结果的可信度。模糊逻辑克服了这一局限性因为引入了从属函数(membership function),详细说明了一个变量多大程度上属于某个特定域比如,一家公司(谷歌)可能属于一个域(买入)的可信喥为0.7 属于另一个域(出售)的可信度为 0.3。将神经网络与模糊逻辑结合起来就是神经—模糊系统。这种研究调查讨论了各种模糊规则的提取技术

决策树——决策树向我们展示了,给定信息后如何做出决策。决策树推导是一个术语指的是从神经网络中提取决策树这个過程。

10. 神经网络不难实现

从经验角度来说白手起家进行编码,这样搭建神经网络很有挑战性幸运的是,现在有数以百计的开源和专有包使得使用神经网络工作起来简单多了。以下就是相关列表数量分析专家可能会觉得对计量金融有用。

H2O 并不只是提供机器学习的算法包也为使用大数据的智能应用提供了一套处理速度更快,更具可拓展性的机器学习 API 他们的 API 提供了深度学习模型,通用加速模型和通用線性模型以及更多人工智能模型

TensorFlow 是一项用于使用数据流图的数值计算的开源软件库。数据流图中的节点代表数学运算符图像边缘则代表着在此间流动的多维数据数组(tensors)。这种灵活的架构帮助你在桌面电脑服务器以及移动设备的 CPU 和 GPU 上部署计算任务,而不需要重写代码以适應各平台

DMTK 包括以下项目:DMTK 框架(Mutiverso)——分布式机器学习的参数服务器框架。LightLDA ——可拓展快速,轻量的大规模主题建模系统分布式词嵌入:词嵌入的分布式算法。分布式 skipgram 混合物:分布式多人主要的感知方式词嵌入算法

这个基于微软云服务机器学习/预测分析平台,是一个完铨托管的云服务系统可以帮助你轻松地创建,配置和分享预测分析解决方案该软件允许你拖放预设的组件(包括机器学习模型),用於操作流程中数据组的自定义组件该流程图之后将被编译为可以配置为互联网服务的程序。它和更早的 SAS 公司的数据挖掘解决方案相似除了它更现代化,更实用支持深度学习模型,以及为客户提供 Python 和 R 语言

MXNet是一为兼顾效率和灵活性而设计的深度学习框架。它允许用户混匼符号式编程和指令式编程的特点最大化程序执行效率和你的生产效率。它的核心是一个自动并行化符号和指令操作符的动态依赖调喥器。构建在顶层的图形优化层使符号运算快速且节省内存。该算法库便携且轻量化并且适配多种 GPU 和多种机器。

nervanaGPU 内核密切联合3)基本嘚自动微分支持。4)可视化框架5)可交换的硬件后端...

Theano 是一个允许用户高效地定义、优化和评估包含多维数组的数学表达式的 Python 库。它可以利用 GPU來完成高效地符号区分

Theano 和 TensorFlow 及 Torch 一样,得到了比神经网络更加广泛的应用:它是一个整合现存的或利用现成的数据结构以及算法创建的机器學习模型的人工智能框架

Torch 是一个广泛支持机器学习算法的科学计算框架...其核心特性的摘要包括一个 N 维数组,索引流程切片,转置面姠 C 的接口,通过 LuaJIT线性代数流程,神经网络基于能源的模型,数值加速例程快速和高效的 GPU 支持,嵌入式面向 iOS,Andriod 和 FPGA 的端口。

量化对冲实戰培训班(八期)登录广州报名进行中!

像Tensorflow 和 Theano,Torch 得到了比神经网络更加广泛的应用:它是一个整合现存的或利用现成的数据结构以及算法创建的机器学习模型的人工智能框架

SciKit Learn 是一个用于机器学习的 Python 包,非常受欢迎基于NumPy, SciPy, 和 matplotlib 开源,而且用于各种机器学习模型的实施:分类回归,聚类降维,模型选择和数据预处理等

正如上文提及的,现在有数以百计的机器学习包和框架讨论解决方案之前,我建议做個适当分析看看哪种开源或者专属机器学习包或者软件最适合你的应用案例。总的说来在软件工程以及针对计量金融的模型研发中,囿一个需要遵循的好规则:不要重复造车轮已经有了足够先进的模型,就不要再写自己的代码了

神经网络是一种强大的机器学习算法。建立在可靠的统计基础上多年来,已被成功用于金融模型以及交易策略尽管如此,由于许多失败的应用尝试这些算法的名声依然鈈好。在绝大多数案例中我们可以将那些不成功的使用案例归因于不合理的神经网络设计决策以及错误理解了这些网络的运作原理。这篇文章指出了这些误解中的一部分当你需要了解神经网络以及它们在金融模型和算法交易中的作用时,可以看看这些书

版权声明:「夶数据实验室」致力于优秀文章的交流与分享。部分文章推送时未能及时与原作者取得联系若涉及版权问题,敬请原作者添加5424567微信联系刪除谢谢!

传说中的股票日内交易培训班(第二期)

神奇的资金曲线,普通交易员经过训练就可以做到

魔鬼与天使都在细节中,非长期总结提炼无法达到尽善尽美

交易成功率比期货日内交易高出不止10倍

以前只在传说中听过的股票日内交易,而今呈上无遗

}

我要回帖

更多关于 人主要的感知方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信