【问题标题】:Machine Learning, After training, how exactly does it get a prediction? opencv机器学习,经过训练,它究竟是如何得到预测的? opencv
【发布时间】:2015-06-06 14:34:36
【问题描述】:

因此,在您对机器学习算法进行训练后,使用您的层、节点和权重,它究竟如何获得输入向量的预测?我正在使用多层感知器(神经网络)。

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

我在使用 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} ) 其中 alpha 和 beta 是用户定义的变量。

所以,我不太确定这意味着什么。 tanh 函数在哪里发挥作用?任何人都可以解决这个问题吗?感谢您的时间!

找到它的文档是here: 对 tanh 的引用位于函数描述 predict 下。 激活函数的参考是页面顶部的 S 形图。

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

【问题讨论】:

    标签: opencv machine-learning prediction perceptron multi-layer


    【解决方案1】:

    我建议您阅读有关您正在使用或计划使用的适当算法的信息。老实说,没有一个明确的算法可以解决问题,但您可以探索您拥有哪些功能以及您需要什么。

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

    请根据您的具体需求做更多的工作,并通读研究论文以获得正确的理解。预测并不涉及魔法,而是数学公式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2020-06-15
      • 2012-03-27
      • 2020-02-21
      • 2020-07-01
      • 2019-05-16
      • 2020-12-03
      相关资源
      最近更新 更多