用于预测的人工神经网络

我一直在研究试图预测股票价格的研究论文。我注意到这些论文中,使用了以下几种类型的激活函数来处理输出:单极性Sigmoid、双极性Sigmoid、双曲正切、径向基函数。

我的问题如果上述类型的激活函数之一被应用于输出,那么它如何用于预测股票价格,例如$103.56这样的数值?因为这些函数中的大多数的取值范围在(0,1)或(-1,1)之间。

回复@bakkal在作为ANN的输入之前,输入数据根据MATLAB中定义的‘zscore’函数进行了标准化,其中减去了均值并用数据的方差进行了除法。目标输出也根据目标函数进行了标准化,按其最大值进行了除法,同时考虑了各自激活函数的上下限(单极性Sigmoid为(0,1),双极性Sigmoid和双曲正切函数为(-1, 1))。

你好,如下所述,如果激活函数没有应用于输出,那么能否解释一下粗体部分的段落,谢谢。


回答:

我们使用标准化将目标值映射到(0, 1)或(-1, 1)或根据您的激活函数所需的任何范围。通常,我们也将输入值映射到接近(-1, 1)的范围。最常用于缩放输入值的标准化方法是高斯标准化。如果输入向量是x,并且您使用的是numpy数组,那么以下是x的高斯标准化:

xScaled = (x-x.mean())/(x.std())

其中mean()给出平均值,std()给出标准差。

另一种标准化方法是:

xScaled = (x-x.min())/(x.max()-x.min())

这将输入向量值缩放到(0,1)范围内。

因此,您使用标准化的输入和输出值来加快学习过程。您也可以参考Andrew Ng的课程来了解为什么会这样。当您想将标准化值重新缩放回其实际值时,可以使用反标准化。例如,对于上述(0,1)标准化,反标准化将是:

x = x.min() + (x.max()-x.min())*xScaled

您可以同样获得高斯情况的反标准化。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注