如何训练神经网络监督的数据集采用pybrain黑箱优化?(How to train a neural

2019-08-18 19:25发布

我身边有与pybrain位出场,并了解如何使用自定义的架构产生的神经网络,并利用BP算法训练他们来监督数据集。

但是我通过优化算法和任务的观念,学习代理商和环境相混淆。

例如:如何将实现一个神经网络,例如(1)使用pybrain遗传算法(2)的数据集XOR分类?

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

(2) pybrain.optimization.GA()

Answer 1:

我终于摸索出来! 它总是很容易,一旦你知道如何!

本质上,第一个参数的GA是必须采取的第二个参数(个人,在文档称为评估)作为其唯一ARG适应度函数(称为评价者在文档)。

在这个例子将训练到XOR

from pybrain.datasets.classification import ClassificationDataSet
# below line can be replaced with the algorithm of choice e.g.
# from pybrain.optimization.hillclimber import HillClimber
from pybrain.optimization.populationbased.ga import GA
from pybrain.tools.shortcuts import buildNetwork

# create XOR dataset
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 takes nn as its first and only argument
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])


文章来源: How to train a neural network to supervised data set using pybrain black-box optimization?