Red de formación mediante algoritmos de optimización

Hemos visto cómo entrenar una red usando instructores en pybrain. En este capítulo, utilizaremos algoritmos de optimización disponibles con Pybrain para entrenar una red.

En el ejemplo, utilizaremos el algoritmo de optimización de GA que debe importarse como se muestra a continuación:

from pybrain.optimization.populationbased.ga import GA

Ejemplo

A continuación se muestra un ejemplo funcional de una red de entrenamiento que utiliza un algoritmo de optimización de GA:

from pybrain.datasets.classification import ClassificationDataSet
from pybrain.optimization.populationbased.ga import GA
from pybrain.tools.shortcuts import buildNetwork

# create XOR dataset
ds = ClassificationDataSet(2)
ds.addSample([0., 0.], [0.])
ds.addSample([0., 1.], [1.])
ds.addSample([1., 0.], [1.])
ds.addSample([1., 1.], [0.])
ds.setField('class', [ [0.],[1.],[1.],[0.]])

net = buildNetwork(2, 3, 1)
ga = GA(ds.evaluateModuleMSE, net, minimize=True)

for i in range(100):
net = ga.learn(0)[0]

print(net.activate([0,0]))
print(net.activate([1,0]))
print(net.activate([0,1]))
print(net.activate([1,1]))

Salida

El método de activación en la red para las entradas casi coincide con la salida como se muestra a continuación:

C:\pybrain\pybrain\src>python example15.py
[0.03055398]
[0.92094839]
[1.12246157]
[0.02071285]