Ezen az utazáson végig pythont fogok használni abból is a 3.8-as verziót, de a Python 3+ valószínűleg ugyanúgy működni fog. Ezeken kívül még előkerül a Numpy, az kód leegyszerűsítéséért, és a Matplotlib, a vizualizáció miatt.
Tegyük fel, hogy kezdetben 1 neuronunk van és 3 bementi egységünk. Ezek a bemeneti egységek lehetnek a “training data” része vagy másik neuronok kimeneti értékei is. Kezdésnek vegyünk fel 3 random értéket.
inputs = [1, 2, 3]
Minden bemenethez kapcsolódik egy súly is, amiket általában random inicializálunk. Ezek a súlyok paraméterek amiknek a segítségével megkapjuk a kimenetet a bemenetből. Még egy ilyen paraméter lesz, ami a “bias” névre fog hallgatni. Ezek a súlyok és biasok változnak minden training szakaszban. Most még mi adunk meg súlyoknak értéket, hogy megértsük, hogyan is működik.
weights = [0.2, 0.8, -0.5]
Ezek után jön a már említett bias, mivel csak egy neuront modellezünk emiatt csak 1 biasunk lesz, ezt is random választjuk.
bias = 2
A varázslat úgy működik, hogy a neuron összeadja az bementi érték és a súly szórzatát majd a legvéhén hozzáadja a biast. Szóval a kimenet valahogyan így lesz kiszámítva:
output = (inputs[0]*weights[0] +
inputs[1]*weights[1] +
inputs[2]*weights[2] + bias)
Magyarázat: Pythonban az értékek indexelése 0-val kezdődik, szóval amikor azt írjuk, hogy inputs[0]*weights[0] azt annyit jelent, hogy az inputs lista 0 indexű elemét, tehát a lista első tagját megszorozzuk a weights lista 0 indexű elemével, azaz a lista első tagjával.
Mi van ha nem 3 hanem 4 bementi értékünk van? Ebben az esetben a súly listához is hozzá kell adni még egy ranodm választott súlyt, és ezeket az output-ba is be kell tenni, hogy megkapjuk a helyes megoldást.
Disclaimer: A videó és a leírtak nem a saját szerzeményeim. A videó a Sentdex youtube csatornáé, az oldal tartalma pedig a “Neural Networks from Scratch in Python” című könyv alapján készült.