Rete di formazione mediante algoritmi di ottimizzazione

Abbiamo visto come addestrare una rete utilizzando trainer in pybrain. In questo capitolo, utilizzeremo gli algoritmi di ottimizzazione disponibili con Pybrain per addestrare una rete.

Nell'esempio, utilizzeremo l'algoritmo di ottimizzazione GA che deve essere importato come mostrato di seguito:

from pybrain.optimization.populationbased.ga import GA

Esempio

Di seguito è riportato un esempio funzionante di una rete di formazione che utilizza un algoritmo di ottimizzazione 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]))

Produzione

Il metodo di attivazione sulla rete per gli ingressi corrisponde quasi all'uscita come mostrato di seguito -

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