如何使用pybrain的黑盒优化方法训练神经网络以处理监督数据集?

我已经尝试使用pybrain,并了解如何生成具有自定义架构的神经网络,并使用反向传播算法对其进行监督数据集的训练。

然而,我对优化算法以及任务、学习代理和环境的概念感到困惑。

例如:我如何使用pybrain的遗传算法来实现一个神经网络,以对XOR数据集进行分类?

(1) pybrain.tools.shortcuts.buildNetwork(2, 3, 1)

(2) pybrain.optimization.GA()


回答:

我终于搞明白了!一旦你知道怎么做,总是很容易的!

本质上,GA的第一个参数是适应度函数(文档中称为评估器),它必须将第二个参数(个体,文档中称为可评估的)作为其唯一参数。

在这个例子中,将训练用于XOR

from pybrain.datasets.classification import ClassificationDataSet# 下面的行可以替换为所选的算法,例如# from pybrain.optimization.hillclimber import HillClimberfrom pybrain.optimization.populationbased.ga import GAfrom pybrain.tools.shortcuts import buildNetwork# 创建XOR数据集d = ClassificationDataSet(2)d.addSample([0., 0.], [0.])d.addSample([0., 1.], [1.])d.addSample([1., 0.], [1.])d.addSample([1., 1.], [0.])d.setField('class', [ [0.],[1.],[1.],[0.]])nn = buildNetwork(2, 3, 1)# d.evaluateModuleMSE将nn作为其第一个且唯一的参数ga = GA(d.evaluateModuleMSE, nn, minimize=True)for i in range(100):    nn = ga.learn(0)[0]

上述脚本执行后的测试结果:

In [68]: nn.activate([0,0])Out[68]: array([-0.07944574])In [69]: nn.activate([1,0])Out[69]: array([ 0.97635635])In [70]: nn.activate([0,1])Out[70]: array([ 1.0216745])In [71]: nn.activate([1,1])Out[71]: array([ 0.03604205])

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注