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]