Machine Learning Algorithmus: Neuronale Netzwerke

Autor: Michelle Berger
Human nerve cell, artworkFoto: GettyImages

Nachdem das Trendscouting Team den k-means Algorithmus in einer Blogreihe erläutert hat, widme ich mich heute den Neuronalen Netzwerken als Form eines „supervised“ (deutsch: überwacht) Machine Learning Algorithmus. Wie in meinem letzten Artikel erklärt, geht es bei einem „supervised“ Prozess darum, eine Zielvariable vorherzusagen. Ich beziehe mich wieder auf mein Klassifizierungsbeispiel, in welchem ich ein Modell bauen möchte, das anhand von Kundenmerkmalen vorhersagt, ob ein Kunde ein Kredit püntklich zurück zahlen wird (1) oder nicht (0).

Jetzt aber zurück zu einem Neuronalen Netzwerk, das eigentlich wie Neuronen in der Biologie funktioniert. Eine Zelle hat verschiedene Dendriten, über die sie Reize (Inputs) aufnimmt. Anschließend werden diese Reize im Zellkörper verarbeitet und Signale an weitere Neuronen gesendet. Folgende Grafik verdeutlicht diesen Prozess.

https://www.dasgehirn.info/grundlagen/kommunikation-der-zellen/bild-aufbau-eines-neurons

Wir haben also einen Input, einen Verarbeitungs-/Prozessschritt und einen Output. In meinem Beispiel wären also die Inputvariablen die verschiedenen Kundenmerkmale (Alter, Einkommen, etc.) und der Output die Zielvariable, welche angibt, ob der Kunde den Kredit püntklich zurückzahlt (1) oder nicht (0). In dem Prozessschritt werden die Inputs in eine „Transferfunktion“ f(x) gegeben und mit einem Faktor w („Gewicht“) multipliziert. Anschließend wird ein weiterer Wert („+b“) addiert, den sogenannten „bias“ (Verzerrung).  Die Gewichte w sowohl der bias b werden durch den Trainingsprozess des Modells immer wieder angepasst, sodass die Fehlerquote der falsch klassifizierten Daten minimiert wird. An dieser Stelle noch einmal die Erinnerung aus meinem letzten Artikel: Wir trainieren das Modell mit den Trainingsdaten und verifizieren es mit den Testdaten, bei denen wir bereits den Wert der Zielvariable kennen und somit die Qualität des Modells beurteilen können. Bei der Anpassung der Variablen findet also das „Lernen“ statt. Anschließend wird der Wert der Transferfunktion f(x) in die Aktivierungsfunktion a(x) gegeben, die dann entscheidet, ob der Output der Zielvariable 1 oder 0  ist.

in Anlehnung an: https://www.learnopencv.com/understanding-feedforward-neural-networks/

Mathematisch sieht das ganze wie folgt aus. Hier beschreibt x unsere Inputdaten, w die Gewichtung und b den Bias.

1. Transferfunktion:

2. Aktivierungsfunktion:

 

Das „einfachste“ Neuronale Netzwerk mit nur einem Neuron („Single Perceptrons“) sucht nach einer linearen Funktion, die die Daten in die zwei Klassen der Zielvariable einteilt. Stellen Sie sich also vor, die blauen Punkte sind unsre Kunden, die den Kredit pünktlich zurück zahlen (1) und die organgenen Punkte repräsentieren die Kunden, die den Kredit nicht zurückzahlen (0). Bei solch einer Verteilung wäre eine lineare Einteilung hilfreich, da wir nur wenige Datenpunkte hätten, die flasch klassifiziert werden (also die blauen Punkte links der Line und die organenen Punkte rechts neben der Linie).

Dieser Algorithmus hat aber einen offensichtlichen Nachteil: Er kann nur lineare Funktionen bilden, das hilft uns in den meisten Fällen nicht weiter. Stellen Sie sich vor, Sie versuchen folgende Datensätze durch eine lineare Linie zu trennen.

Das funktioniert nicht wirklich, aber dafür gibt es eine Lösung und zwar das „Feedforward Neural Network“.  Hier hat man nicht nur ein Neuron, in dem eine Transform- und Aktivierungsfunktion stattfindet, sondern mehrere. Diese liegen in einer sogenannten „versteckten Schicht“ („hidden layer“) und können beliebig viele sein.

Wenn Sie das ganze einmal selbst testen möchten, kann ich Ihnen diese Web Anwendung  (s. Screenshot unten) empfehlen. Dort können Sie mit auf verschiedene Datensets unterschiedliche Neuronale Netze anwenden und die Anzahl der „hidden layers“ und „hidden neurons“ verändern.

Screenshot von Webanwendung

 

Welcher Machine Learning Algorithmus interessiert Sie sonst?

Ich freue mich über Ihr Feedback!

 

Quellen:

https://appliedgo.net/perceptron/http://ufldl.stanford.edu/tutorial/selftaughtlearning/SelfTaughtLearning/

https://www.toptal.com/machine-learning/an-introduction-to-deep-learning-from-perceptrons-to-deep-networks

http://blog.frankfurt-school.de/machine-learning-modern-data-analytics-artificial-intelligence/?lang=de

https://www.learnopencv.com/understanding-feedforward-neural-networks/

18. Januar 2018, 8:33 Uhr

Diesen Artikel bewerten


Vielen Dank für Ihre Wertung. Ihre Wertung:
Aktuell ist noch keine Bewertung vorhanden. Seien Sie der Erste! Durchschnittliche Bewertung des Artikels: 4.78 Anzahl abgegebener Bewertungen: 9

Hinterlassen Sie eine Antwort

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


2 × fünf =