Jednou z nejčastěji používaných aktivačních funkcí ve strojovém učení, přesněji v neuronových sítích, je sigmoidní funkce. V kroku zpětného šíření při trénování neuronové sítě je třeba najít derivaci ztrátové funkce vzhledem ke každé váze v síti. K tomu je třeba najít derivaci aktivační funkce. Cílem tohoto článku je objasnit nejasnosti ohledně hledání derivace sigmoidní funkce.

Na začátek uvádíme sigmoidní funkci:

Na zkoušku si na kalkulačce vezměte sigmoidní funkci o velikosti 5. Měli byste dostat 0,99330714907.

Pro účely derivace lze tuto funkci zapsat také jako:

První věc, které jsem si na této funkci všiml, je, že jde o složení funkcí. První funkce je

a druhá je

Připomeňme si, že v kalkulačce, když existuje složení funkcí, derivace, je první funkce vzhledem k druhé vynásobená druhou funkcí vzhledem k proměnné, v tomto případě x. Takto:

Takže derivace sigmoidy vzhledem k x je derivace sigmoidální funkce vzhledem k m krát derivace m vzhledem k x. Toto pravidlo o složení funkcí si můžete představit jako jakýsi mezivýpočet, jehož výsledkem je původní derivace, kterou jste chtěli získat křížovým zrušením:

Teď, když víme, že sigmoidní funkce je složením funkcí, stačí nám k nalezení derivace, že:

  1. Najděte derivaci sigmoidní funkce vzhledem k m, naší mezilehlé hodnotě
  2. Najděte derivaci m vzhledem k x
  3. Vynásobte tyto hodnoty dohromady

Derivace sigmoidy vzhledem k m

Podívejme se zpět, jak vypadá sigmoidní funkce s m jako naší mezilehlou hodnotou:

Najít její derivaci vzhledem k m je poměrně jednoduché, pokud si zapamatujeme mocninné pravidlo:

Derivace x^n je n krát derivace x na mocninu n-1.

Takže,

Nyní, dosadíme-li naši původní hodnotu m zpět do rovnice, dostaneme

Nakonec,

Já! Krok 1 jsme splnili.

Najděte derivaci m vzhledem k x

Tady je m:

Pro nalezení derivace musíme najít derivaci každého členu vzhledem k x. První člen je snadný:

Druhý člen je trochu složitější.

Nechme

a

.

Víme, že

Pokud se dostaneme k e^u, není to jasné, přečtěte si prosím toto.

Nyní opět použijeme řetězové pravidlo,

Takže prostě vynásobíme ty derivace, které jsme právě vypočítali, abychom dostali derivaci vzhledem k x:

Všechno pro krok 2,

Vynásobte derivace

Připomeňme si, že jakmile jsme našli obě meziprodukce, museli jsme je vynásobit. Takže tady je rychlé shrnutí:

Nyní, pokud si pamatujete, jak se násobí :), to můžeme konečně dokončit!

Tuto hodnotu nyní můžete vzít a použít jako derivaci sigmoidní funkce. Po manipulaci s tímto výsledkem však nastane zajímavá věc. Ukazuje se, že derivaci můžete přepsat takto:

Derivace sigmoidní funkce je sigmoida krát 1 minus sigmoida. Páni. Cítím se podveden 🙂

.