我一直在研究试图预测股价的研究论文。我在这些文章中已经注意到,激活功能使用以下类型的激活功能之一应用于输出。单极乙状结肠,双极乙状结肠,Tan双曲线,径向基函数。
我的问题 如果将上述类型的激活函数之一应用于输出,那么如何使用它来预测股票价格,即价值为103.56美元?因为大多数这些函数的最小值或最大值介于(0,1)或(-1,1)之间。
回复bakkal 在作为ANN的输入之前,输入是 根据中定义的'zscore'函数进行归一化 MATLAB,其中减去平均值和值 除以数据的方差。 目标产出是 也根据目标函数进行归一化,除以 他们的最大值,记住上下 对于单极激活函数的限制((0,1) sigmoid,(-1,1)为双极S形和tan双曲函数。)
嗨,如下所述,如果激活功能未应用于输出,则有人可以用粗体解释该段落,谢谢。
答案 0 :(得分:3)
如果您正在寻找像103.56这样的连续输出,那么您正在使用神经网络来实现回归(而不是分类)。在这种情况下,您不会在输出上应用激活层。您的输出将是前一层加权输入的总和。
也就是说,没有什么可以阻止你在网络中的隐藏层上使用激活层(例如创建中间特征,然后用于回归)
为什么激活功能的使用不像归一化功能?如果我们使用激活功能,我们还需要规范化吗?因为激活功能会像标准化一样起作用吗?
<强>正常化强>
嗯,不完全是feature normalization,例如获取所有历史股票价格数据,找到max,min,std dev等,并应用转换,以便所有历史数据适合于例如[0,1]。
为什么这样?因为你的历史数据可能有来自AMZN的价格可以高达500美元,但它的市值是2000亿美元。这两个特征price
和market cap
之间的差异很大,这对某些数值算法来说并不好。所以你所做的是将它们标准化为一些标准化的规模,以便所有价格都在[0,1]之间,并且所有市场上限都是[0,1]。例如。这有助于反向传播算法。
<强>激活强>
现在激活功能做了不同的事情,它就是为了创造一种激活效果,就像神经元发射或不发射一样。激活函数接受输入说[-inf,+ inf]并尝试将其捕捉到[-1,+ 1]中。这与正常化
不同现在,激活效果如何帮助回归?那么好吧在股票方面,预测便士股票的价格(比如约400万美元的公司)可能与预测蓝筹股(约2000亿美元公司)的价格大不相同,所以你可能希望有一个基于便士开启/关闭的功能/大帽。该功能可用于更好地回归预测价格。
答案 1 :(得分:0)
我们根据您的激活函数使用规范化将目标值映射到范围(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
您可以类似地获得高斯情形的反向归一化。