【问题标题】:How to use the Encog NEAT network with unsupervised learning?如何在无监督学习中使用 Encog NEAT 网络?
【发布时间】:2015-12-26 08:43:55
【问题描述】:

我想知道您是否可以利用 Encog 框架来使用一种具有无监督学习的 NEAT 网络。我想利用他们的自我组织,因为我的系统没有季节性特征。据我所知,只看到了使用 NEAT 监督的网络示例。

【问题讨论】:

  • 我认为解决方案是NeuralDataSet validationSet = new BasicNeuralDataSet(input,null);,但事实并非如此。它抛出异常尝试在空对象引用上调用接口方法'double [] org.encog.ml.data.MLData.getData()'

标签: neural-network artificial-intelligence encog


【解决方案1】:

免责声明:我对 ML 和 Encog 的了解很少。

我相信the "boxes" example 实际上是使用 Encog 的 NEAT 功能进行无监督学习的演示。

要进行无监督学习,请实现CalculateScore 接口,并在创建网络时将该评分评估器传递给NEATUtil.constructNEATTrainer(pop, score)

在示例中,BoxesScore 实现了该接口并调用TrialEvaluation 来计算适应度:

public double calculateFitness() {
    final double threshold = BoxesScore.EDGE_LEN * BoxesScore.SQR_LEN;
    double rmsd = Math.sqrt(this.accDistance / 75.0);
    double fitness;
    if(rmsd > threshold) {
        fitness = 0.0;
    } else {
        fitness = (((threshold-rmsd) * 100.0) / threshold) + (this.accRange / 7.5);
    }

    return fitness
}

您将从其余代码中看到,结果不是一些硬编码的测试用例列表和预期结果。

因此,只要您可以定义“适合度”对您的解决方案意味着什么,您就可以使用 Encog 的 NEAT 实现进行无监督学习。

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 2013-03-24
    • 1970-01-01
    • 2017-12-08
    • 2019-02-20
    • 2017-06-27
    • 2018-10-01
    • 2017-08-11
    • 1970-01-01
    相关资源
    最近更新 更多