
Příklad: Vytvoření jednoduchého XOR problému řešeného pomocí neuronové sítě v PyBrain
Představme si, že chceme naučit neuronovou síť řešit XOR problém. XOR je logická operace, která má následující pravdivostní tabulku:
A | B | Výstup
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
Postup:
- Importování knihoven:
from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
- Vytvoření neuronové sítě:
net = buildNetwork(2, 2, 1) # 2 vstupní neurony, 2 neurony ve skryté vrstvě, 1 výstupní neuron
- Vytvoření datasetu pro trénink:
ds = SupervisedDataSet(2, 1) # 2 vstupní hodnoty, 1 výstupní hodnota
# Přidání tréninkových vzorů
ds.addSample((0, 0), (0,))
ds.addSample((0, 1), (1,))
ds.addSample((1, 0), (1,))
ds.addSample((1, 1), (0,))
- Trénování neuronové sítě pomocí algoritmu zpětného šíření chyby (backpropagation):
trainer = BackpropTrainer(net, ds)
trainer.trainEpochs(epochs=1000) # Počet epoch tréninku
- Testování naučené neuronové sítě na vstupních datech:
for input, target in ds:
prediction = net.activate(input)
print("Vstup: {}, Očekávaný výstup: {}, Předpověď: {:.2f}".format(input, target, prediction[0]))
V tomto příkladě jsme vytvořili jednoduchou neuronovou síť s jednou skrytou vrstvou, která řeší XOR problém. Neuronová síť má 2 vstupní neurony, 2 neurony ve skryté vrstvě a 1 výstupní neuron. Pro trénink neuronové sítě jsme použili algoritmus zpětného šíření chyby (backpropagation) a tréninkový dataset obsahuje čtyři vzory pro všechny možné kombinace vstupních hodnot A a B. Poté, co jsme neuronovou síť natrénovali, jsme ji otestovali na vstupních datech a zkontrolovali, zda správně předpovídá výstupy pro XOR problém.