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 tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import numpy as np
Vytvoření neuronové sítě:
model = Sequential()
model.add(Dense(2, input_dim=2, activation='relu')) # skrytá vrstva s 2 neurony a ReLU aktivační funkcí
model.add(Dense(1, activation='sigmoid')) # výstupní vrstva s 1 neuronem a sigmoid aktivační funkcí
# Vstupní data
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=float)
# Očekávané výstupy
Y = np.array([0, 1, 1, 0], dtype=float)
Trénování neuronové sítě:
model.fit(X, Y, epochs=500, verbose=0) # Počet epoch tréninku: 500
Testování naučené neuronové sítě na vstupních datech:
print(model.predict(X).round())
V tomto příkladě jsme vytvořili jednoduchou neuronovou síť s jednou skrytou vrstvou, která řeší XOR problém. Neuronová síť má 2 neurony ve skryté vrstvě s ReLU aktivační funkcí a 1 neuron výstupní vrstvy s sigmoid aktivační funkcí. Pro trénink neuronové sítě jsme použili dataset obsahující čtyři vzory pro všechny možné kombinace vstupních hodnot. 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.
A jak lze vyzkoušet funkci programu?
Pokud chcete otestovat funkčnost kódu, budete muset nainstalovat knihovnu TensorFlow do vašeho prostředí Pythonu. Jestliže používáte Jupyter Notebook, můžete následovat tyto kroky:
Otevřete nový notebook v Jupyteru.
Zkopírujte a vložte každý kódový blok z mého předchozího příspěvku do nové buňky v notebooku. Každý blok by měl být ve své vlastní buňce, aby mohl být spuštěn samostatně.
Spusťte buňky postupně, od první až do poslední.
Pokud ještě nemáte nainstalovaný TensorFlow, můžete jej nainstalovat přímo z Jupyter Notebooku spuštěním následujícího příkazu v nové buňce:
!pip install tensorflow
Pokud pracujete v jiném prostředí (jako je PyCharm, Atom, atd.), měl by postup být podobný, ale instalace TensorFlowu může vyžadovat použití příkazové řádky nebo konzole daného prostředí.
Výsledkem bude natrénovaná neuronová síť, která je schopna řešit XOR problém. Poslední buňka v notebooku by měla vytisknout předpovědi modelu na tréninkové data, které by měly odpovídat očekávaným výstupům XOR problému ([0, 1, 1, 0]). Výsledek může být mírně odlišný v závislosti na náhodné inicializaci modelu a jeho tréninkového procesu, takže pokud nevidíte očekávaný výsledek, zkuste model znovu natrénovat.
A zde je již ukázka celého programu včetně výstupu ve vývojovém prostředí PyCharm:
Hit 'Generate & Copy' button to generate embed code. It will be copied
to your Clipboard. You can now paste this embed code inside your website's HTML where
you want to show the List.