Multilayer Perceptron (MLP)

Notace

MLP je feed-forward architektura NN, kde jsou neurony rozděleny do vrstev — jedné vstupní, jedné výstupní a libovolného počtu skrytých vrstev uprostřed. Input layer má index 0. Každý neuron v i-té vrstvě je napojen na každý neuron v (i + 1)-ní vrstvě.

  •  — množina input neuronů

  •  — množina output neuronů

  •  — množina všech neuronů

  • Neurony mají indexy , , …​

  •  — vnitřní potenciál neuronu po skončení výpočtu

  •  — výstup neuronu po skončení výpočtu

  •  — hodnota formálního jednotkového vstupu (kvůli biasům)

  •  — váha spojení z neuronu do neuronu (dst ← src)

  •  — bias — váha z formální jednotky do neuronu

  •  — množina neuronů , jenž mají spojení do (j ← i)

  •  — množina neuronů , do nichž vede spojení z (j → i)

Aktivita

Pravidlo pro výběr neuronů při výpočtu

V i-tému kroku vezmi i-tou vrstvu.

Vnitřní potenciál neuronu

Aktivační funkce neuronu

(třeba logistic sigmoid)

Stav nevstupního neuronu

resp.

Aktivační funkce

Unit step function
Logistic sigmoid

Kde je steepness parametr.

logistic sigmoid

Hyperbolic tangens (tanh)
Rectified Linear Unit (ReLU)

Důkazy

Boolovské funkce

Věta

Dvouvrstvý MLP, kde každý neuron má za unit step function, je schopný spočítat libovolnou boolovskou funkci .

Důkaz

Pro každý vstup takový, že , zkonstruujeme neuron jehož výstup bude 1, právě když jeho vstup je :

  • Všechny neurony zapojíme do jednoho neuronu, jenž počítá OR.

Podmnožiny vstupního prostoru (3 vrstvy)

Věta

Třívrstvý MLP, kde každý neuron má za unit step function, dovede aproximovat libovolnou "rozumnou" podmnožinu vstupního prostoru.

Důkaz

Daná podmnožina se dá obalit hyperkostkami (t.j. čtverci 2D, kostkami ve 3D, …​) — na to stačí dvě vrstvy (první udává nadroviny, druhá volí, která "strana" nadroviny ohraničuje hyperkostku). Třetí vrstva je pak OR, který spojuje hyperkostky nadefinované v prvních dvou vrstvách.

Podmnožiny vstupního prostoru (2 vrstvy)

Věta (Cybenko 1989)

Dvouvrstvý MLP, kde každý hidden neuron má za nějakou sigmoidal funcion, tedy platí:

a pokud každý output neuron má lineární , pak tato síť dovede aproximovat libovolnou "rozumnou" množinu  — tedy pro "většinu" vektorů platí, že , právě když výstup sítě pro vstup .

Libovolná spojitá funkce (3 vrstvy)

Věta

Třívrstvý MLP, kde každý output neuron má lineární (pass-through) a ostatní mají za logistic sigmoid, dovede "spočítat" libovolnou funkci . "Spočítat" zde znamená, že pro každé platí , kde je výstup sítě a je povolená chyba.

Důkaz

mlp any function

Libovolná spojitá funkce (2 vrstvy)

Věta (Cybenko 1989)

To samé co věta výše, ale zvládl to jen se dvěma vrstvami.

Výpočetní síla

Uvažme neuronové sítě, které:

  • jsou rekurentní (mají cykly),

  • mají reálné váhy,

  • mají jeden input a jeden output neuron,

  • mají paralelní pravidlo pro výběr neuronů při výpočtu — všechny neurony se vyhodnotí v každém kroku,

  • mají aktivační funkci

Slova kódujeme jako reálná čísla následujícím způsobem:

Warning
Takže např. z bude . Všimni si té zaražející jedničky na konci. Jak jinak bys poznal, že to slovo skončilo.

Síť rozpoznává jazyk , pokud počítá funkci , kde , takovou, že:

Note

Rekurentní neuronové sítě s racionálními vahamy jsou ekvivalentní Turingovým strojům.

  • Pro každý rekurzivně spočetný jazyk existuje taková síť s méně než 1000 neurony, která jej rozpoznává.

  • Problém zastavení je nerozhodnutelný pro takové sítě s alespoň 25 neurony.

  • Existuje "univerzální" NN (stejně jako je "univerzální" TM).

Note

Rekurentní neuronové sítě s reálnými vahami jsou silnější než Turingovy stroje.

  • Pro každý jazyk existuje taková síť s méně než 1000 neurony, která jej rozpoznává.

Prakticky jsou ale takové sítě extrémně velké. Hodnota NN tak spočívá spíš v jejich schopnosti se učit, možnosti generalizace, robustnosti (chyby v inputu je jen tak nerozhodí) a masivní paralelizaci.