4.4.2 Aktivierungsfuntkionen - NerimanK/Cloud-Computing-Technology---Google-Home GitHub Wiki
Nachdem Aufbau und Ablauf eines Neuronalen Netzes aufgezeigt wurde, werden in diesem Abschnitt unterschiedliche Aktivierungsfunktionen hinsichtlich Ihrer Vorteile und Nachteile aufgezeigt und erläutert. Eine Aktivierungsfunktion oder auch bekannt als Transferfunktion ist eine Funktion, die den Zusammenhang zwischen dem Netzinput und einem Aktivitätslevel abbildet, welcher in einem zwei-dimensionalem Raum dargestellt wird. Dementsprechend beschreibt die Abszisse den Netzinput und die Ordinate das dazu entsprechende Aktivitätslevel. Mittels der Aktivierungsfunktion kann bestimmt werden, ob Neuronen aktiviert werden oder nicht. Zudem ist die Wahl einer geeigneten Aktivierungs-funktion essentiell, um einen gelungenen Backpropagation zu schaffen. Generell lassen sich Aktivierungsfunktionen in zwei Klassen einteilen - den linearen und den nicht linearen Funktionen.
Die erste Aktivierungsfunktion, welche in dieser Arbeit thematisiert wird ist die Binary Step Function.
Die Binary Step Function ist eine einfache Funktion zur Klassifizierung von binären Klassen. Anliegend wird ein Neuron aktiviert, falls der das Aktivitätslevel f(x) größer als 0 ist. Im Falle, dass f(x) den Wert 0 erreicht, wird dieser nicht aktiviert. So ist es möglich mit der Binary Function binäre Klassifikationen zu ermitteln. In der Praxis sind dies z.B. zur Klassifikation in zwei Klassen. Dennoch sind in der Praxis komplexerer Aufgabenstellungen wie z.B. der Spracherkennung. Solche komplexen Herausforderungen lassen sich mit dieser Aktivierungsfunktion nicht untersuchen. Mittels der Binary Step Function ist es zudem nicht möglich eine Backpropagation durchzuführen, da der Gradient an jeder Stelle x den Wert 0 hat. Somit ist das Trainieren des Modells mittels dem Gradientenverfahren eher ungeeignet.
Eine weitere Aktivierungsfunktion ist die lineare Funktion.
Anliegend werden bei der linearen Funktion die Neuronen stärker aktiviert, je höher der Input Wert ist. In der obigen Abbildung ist zu erkennen, dass der Wertebereich der Funktion zwischen – unendlich bis + unendlich verläuft. Dies kann ein Anlass sein, dass das optimale Minimum nicht bestimmt werden kann und es zu Fehlerwerten führt- da der Wertebereich von Y nicht beschränkt ist. Des Weiteren ist die lineare Funktion im totalen Definitionsbereich linear. Der Gradient ist konstant und ist von x nicht abhängig. Grundsätzlich ist die Voraussetzung für die Backpropagation nicht möglich. Zudem hat man das Problem, dass bei mehreren Layern der Output sich linear zum Input verhält.
Um komplexere Sachverhalte zu bestimmen sind nicht lineare Funktion von Vorteil. In der unten aufgeführten Abbildung ist die Sigmoid Funktion abgebildet.
Der f(x) Wert liegt im Wertebereich zwischen 0 und 1. Im Vergleich zu der linearen Funktion ist der Wertebereich fest bestimmt. Die Sigmoid Funktion wird verwendet um Wahrscheinlichkeiten vorherzusagen, da der Wertebereich zwischen 0 und 1 liegt. Des Weiteren ist zu erfassen, dass die Sigmoid Funktion monoton steigend ist. Das Gradientenvefahren ist anwendbar, da die Ableitung abhängig von x ist. Dies hat zur Folge, dass mittels des Gradientenvefahren der Fehler optimiert werden kann. Dennoch hat die Sigmoid folgende Probleme. Die Ableitung ist im Definitionsbereich nicht monoton steigend. Dies hat zur Folge, dass in der Trainingsphase kein optimales Minimum bestimmt werden kann. Der Gradient ist zudem zwischen dem Definitionsbereich zwischen -3 bis 3 sehr hoch. In dem anderen Definitionsbereich ist der Gradient sehr flach und konvergiert gegen 0. Das bedeutet, dass das Modell in diesem Bereich nicht mehr die Möglichkeit hat zu lernen.
Eine weitere nicht lineare Funktion ist die Tangens Hyperbolicus (Tanh).
Diese Funktionen verhält sich gleichartig, wie die Sigmoid Funktion. Lediglich ist die Tanh symmetrisch zu dem Ursprung, sodass der Wertebereich zwischen -1 bis 1 liegt. Grundsätzlich können negative Eingabewerte ausgewertet wird. Ferner hat Tanh die gleichen Eigenschaften wie die Sigmoid Funktion selbst. Tanh ist im gesamten Definitionsbereich ableitbar. Der Gradient ist abhängig von x und somit ist die Bestimmung eines optimalen lokalen Extremwertes denkbar. Der Nachteil im oben erwähnten Abschnitt bleibt jedoch bestehen.
Eine Möglichkeit um das Problem zu lösen, bietet der Ansatz der „Rectified linear unit“ Funktion (ReLu).
ReLu wird vor allem im Zusammenhang mit Convulutional Neuronal Networks verwendet- welche in der späteren Ausarbeitung genauer erläutert wird. Im Ver-gleich zu der vorgestellten Aktivierungsfunktion hat die ReLu Funktion einen Wer-tebereich zwischen 0 bis unendlich. Das Problem, welches bei der Sigmoid Funkti-on oder der Tanh auftreten mit dem „schwinden“ des Gradienten ist bei der ReLu nicht vorhanden. ReLu berechnet nur positive Werte. Welches zu dem großen Vor-teil führt, dass nicht alle Neuronen gleichzeitig aktiviert werden. Alle negativen Werte erhalten den Wert 0 und sind grundlegend inaktiv. Das neuronale Netz spart Rechenkapazität und wird effizienter. Die ReLu ist beiliegend keine lineare Funktion, welches bedeutet, dass das Gradientenverfahren angewendet werden kann. Allerdings ist ein großer Nachteil, dass der Gradient bei negativem Werten den Wert null erhält. Zum Resultat dessen werden bei der Backpropagation die Gewichte nicht angepasst und somit können „tote“ Neuronen entstehen.
Abschließen stellt sich die Frage, welche der vorgestellten Aktivierungsfunktionen die „richtige“ ist. Dies ist jedoch abhängig von den Aufgabenstellungen. So werden bei Klassifikationen sigmoid Funktionen verwendet und bei CNN die ReLu Funktion (Bing Xu/Mu Li, 2016; Gupta, 2017)