因此,在您使用层、节点和权重训练机器学习算法之后,它究竟如何获得输入向量的预测?我正在使用多层感知器(神经网络)。
根据我目前的理解,您从要预测的输入向量开始。然后你把它发送到你的隐藏层,在那里它将你的偏置项添加到每个数据点,然后将每个数据点的乘积和每个节点的权重(在训练中找到)相加,然后通过训练中使用的相同激活函数。对每个隐藏层重复此操作,然后对输出层执行相同操作。然后输出层中的每个节点都是您的预测。这个对吗?
我在使用 opencv 执行此操作时感到困惑,因为在指南中它说当您使用函数 predict 时:
如果您使用默认参数值 fparam1=0 和 fparam2=0 的默认 cvANN_MLP::SIGMOID_SYM 激活函数,则使用的函数为 y = 1.7159*tanh(2/3 * x),因此输出范围为 [- 1.7159, 1.7159],而不是 [0,1]。
但是,在训练时,文档中也说明 SIGMOID_SYM 使用激活函数:
f(x)= beta*(1-e^{-alpha x})/(1+e^{-alpha x} )
其中 alpha 和 beta 是用户定义的变量。
所以,我不太确定这意味着什么。tanh 函数在哪里发挥作用?任何人都可以解决这个问题吗?谢谢你的时间!
找到它的文档在这里:对 tanh 的引用在函数描述predict下。激活函数的参考是页面顶部的 S 外观图。
由于这是一个一般性问题,而不是特定于代码的问题,因此我没有发布任何代码。