Een van de meest gebruikte activeringsfuncties in machine learning, of meer specifiek, neurale netwerken, is de sigmoïde functie. In de backpropagatiestap bij het trainen van een neuraal netwerk moet je de afgeleide van de verliesfunctie vinden ten opzichte van elk gewicht in het netwerk. Om dit te doen, moet je de afgeleide van je activeringsfunctie vinden. Dit artikel is bedoeld om eventuele verwarring over het vinden van de afgeleide van de sigmoïde functie weg te nemen.

Om te beginnen, hier is de sigmoïde functie:

Voor een test, neem de sigmoïde van 5 op uw rekenmachine. U krijgt dan 0,99330714907.

Voor de afgeleide kan deze functie ook geschreven worden als:

Het eerste wat me opviel aan deze functie, is dat het een samenstelling van functies is. De eerste functie is

en de tweede is

Herinner u dat in Calculus, bij een samenstelling van functies, de afgeleide, de eerste functie is ten opzichte van de tweede vermenigvuldigd met de tweede functie ten opzichte van de variabele, in dit geval x. Zo:

Dus de afgeleide van de sigmoïde ten opzichte van x is de afgeleide van de sigmoïde functie ten opzichte van m maal de afgeleide van m ten opzichte van x. Je kunt deze functiesamenstellingsregel zien als een soort tussenberekening die door middel van kruisannulering leidt tot de oorspronkelijke afgeleide die je wilde hebben:

Nu we weten dat de sigmoïdfunctie een samenstelling van functies is, hoeven we om de afgeleide te vinden alleen nog maar het volgende te doen:

  1. Vind de afgeleide van de sigmoidfunctie ten opzichte van m, onze tussenwaarde
  2. Vind de afgeleide van m ten opzichte van x
  3. Multipliceer deze waarden samen

Afgeleide van de sigmoid ten opzichte van m

Laten we nog eens kijken hoe de sigmoidfunctie eruit ziet met m als onze tussenwaarde:

Om de afgeleide hiervan ten opzichte van m te vinden is vrij eenvoudig als we de machtsregel kunnen onthouden:

De afgeleide van x^n is n maal de afgeleide van x tot de macht van n-1.

Dus,

Nu, als we onze oorspronkelijke waarde van m terug substitueren in de vergelijking, krijgen we

Finitief,

Ja! We hebben stap 1 voltooid.

Vind de afgeleide van m ten opzichte van x

Hier is m:

Om de afgeleide te vinden, moeten we de afgeleide van elke term ten opzichte van x vinden. De eerste term is gemakkelijk:

De tweede term is wat ingewikkelder.

Laten we

en

We weten dat

Als het bereiken van e^u niet duidelijk is, lees dan dit.

Nu, nogmaals gebruikmakend van de kettingregel,

Dus, we vermenigvuldigen gewoon die afgeleiden die we net berekend hebben om de afgeleide ten opzichte van x te krijgen:

Alles bij elkaar voor stap 2,

Vermenigvuldig de afgeleiden

Bedenk, dat toen we eenmaal de twee tussenafgeleiden hadden gevonden, we ze moesten vermenigvuldigen. Dus, hier is een snelle samenvatting:

Nu, als je nog weet hoe je moet vermenigvuldigen :), kunnen we dit eindelijk afmaken!

Je kunt nu deze waarde nemen en gebruiken als de afgeleide van de sigmoid functie. Er gebeurt echter iets interessants nadat je dit resultaat hebt gemanipuleerd. Het blijkt dat je de afgeleide als volgt kunt herschrijven:

De afgeleide van de sigmoïde functie is de sigmoïde maal 1 min de sigmoïde. Wow. Ik voel me bedrogen. 🙂