2015-04-01 138 views
1

所以,当你有一个机器学习算法,训练了你的图层,节点和权重后,它究竟如何得到一个输入向量的预测?我正在使用MultiLayer Perceptron(神经网络)。机器学习,训练后,它如何得到预测? opencv

从我目前的理解,你开始你的输入向量来预测。然后,将其发送到您的隐藏层,在其中它将偏置项添加到每个数据点,然后添加每个数据点的产品和每个节点的权重(在训练中找到)的总和,然后通过训练中使用的激活函数相同。对每个隐藏层重复一次,然后对输出层执行相同的操作。然后,输出层中的每个节点都是您的预测。 这是正确的吗?

我使用OpenCV时也做到这一点,因为在guide它说,当你使用函数预测弄糊涂了:

如果您使用的是默认cvANN_MLP :: SIGMOID_SYM激活 函数的默认参数值fparam1 = 0和fparam2 = 0 那么使用的函数是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}) 其中α和β是用户定义的变量。

所以,我不太清楚这是什么意思。 tanh功能在哪里起作用?任何人都可以清除它吗?谢谢你的时间!

发现此问题的文档是here: 参考tanh在函数说明predict下。 对激活函数的引用是由页面顶部的S查看图形引用的。

由于这是一个普遍性的问题,而不是特定的代码,我没有发布任何代码。

回答

0

我建议您阅读一下您正在使用或计划使用的适当算法。说实话,没有一个确定的算法来解决问题,但是你可以探索你得到了什么功能以及你需要什么。

关于算法如何执行预测完全取决于算法的选择。支持向量机(SVM)通过在特征空间上拟合超平面并使用一些度量(如用于学习的距离)来执行预测,并且所学习的模型用于预测。另一方面,KNN使用简单的最近邻测量进行预测。

请做更多的工作,你需要什么,并阅读研究论文,以获得正确的理解。预测中没有涉及魔术,而是数学公式。

相关问题