Open Source im professionellen Einsatz
Linux-Magazin 11/2017
© Olga Bosnak, 123RF

© Olga Bosnak, 123RF

Neuronale Netze lernen aus Fehlern und merken sich Erfolge

Auto statt Ziege

Das aus Gameshows bekannte Ziegenproblem kann eine lohnende Jungfernfahrt für angehende Statistiker sein. Lässt sich die Wahlentscheidung zwischen Ziegen und Auto mit einem neuronalen Netzwerk und einigen Trainingsläufen erlernen? KI-Meister Mike Schilli probiert es aus.

418

Online PLUS

Im Screencast demonstriert Michael Schilli das Beispiel: http://www.linux-magazin.de/Ausgaben/2017/11/plus

In einer Spielshow darf ein Kandidat zwischen drei verschlossenen Türen wählen, hinter denen ein Auto als Hauptpreis, eine Ziege und noch eine Ziege warten (Abbildung 1). Der Kandidat entscheidet sich zunächst für eine Tür, der Moderator öffnet eine andere, hinter der eine Ziege meckert. Wie kommt der Kandidat am wahrscheinlichsten zum Hauptpreis: Indem er seine Wahl beibehält oder zur noch verbleibenden geschlossenen Tür wechselt?

Abbildung 1: Ziegenproblem auf Wikipedia.

Wie man auf [2] oder [3] nachlesen kann, lohnt es sich für den Kandidaten, zu wechseln, denn damit verdoppelt er seine Gewinnchancen. Doch wie lernt ein neuronales Netzwerk die optimale Spielstrategie aus Belohnung bei Gewinnen und Bestrafung bei Verlusten?

Vorbild Mensch

Zunächst gilt es – wie immer beim Machine Learning – die Ein- und Ausgabedaten fachgerecht hinzubiegen. Ein KI-System ist ja kein Hexenkessel, in den man die Probleme irgendwie hineinwirft und aus dem anschließend fertige Lösungen einfach heraussprudeln. Vielmehr lösen KI-Algorithmen nur eine kleine Zahl präzise definierter Probleme.

Zur Lösung der Aufgabe nutzt der verwendete Algorithmus ein mehrschichtiges neuronales Netzwerk, das drei Eingabeparameter erwartet: Erstens die Tür, die der Kandidat ausgewählt hat, zweitens die Tür, die der Moderator daraufhin geöffnet hat, und drittens schließlich die noch verbleibende verschlossene Tür.

In der mittleren, verborgenen Schicht ist jedes künstliche Neuron mit jedem Eingangsneuron der ersten Schicht verbunden. Auch wenn ein neuronales Netzwerk nicht ganz wie ein menschliches Gehirn arbeitet, kann man diese massenhaften Verknüpfungen doch als Abbild menschlichen Designs auslegen. Jedes der inneren Neuronen der verdeckten Schicht feuert wiederum Impulse an alle Neuronen der Ausgangsschicht ab.

Zuckerbrot und Peitsche

In der Trainingsphase soll das Netzwerk aus alten Spielshows eine Strategie lernen, um abhängig von der aktuellen Türenkonstellation jene mit dem Preis auf dem Ausgabeneuron vorherzusagen. In einigen Tausend Durchgängen speist das Skript dem KI-System jeweils die drei Eingangsparameter ein und vergleicht den am Ausgang anliegenden Wert mit der Tür, die zum Auto führt. Hat das System die richtige Tür vorhergesagt, wird es belohnt. Liegt es falsch, muss es über einen Feedback-Mechanismus die Parameter seiner Neuronen anpassen.

Die Trainingsläufe nennt man im KI-Fachjargon Episodes. Oft ist es hilfreich, die Neuronenparameter nicht gleich bei jedem Datensatz anzupassen, sondern erst nach einem so genannten Batch von Eingangswerten. Das spart Rechenzeit und verhindert, dass das System ungebremst die Gewichte herumwuchtet, sich aufschaukelt und keine Lösung findet.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Snapshot

    2, 5, 7, 10, 12 – und welche Zahl kommt als nächste? Michael Schilli testet, ob sich von Psychologen erdachte Intelligenztests mit modernen KI-Automaten knacken lassen.

  • Tensorflow erreicht Version 1.0

    Tensorflow 1.0 verspricht Stabilität für sein Python API und beschleunigt die aktuelle und zukünftige Arbeit mit der Einführung des domain-spezifischen XLA Compilers.

  • Perl-Snapshot

    Zum Stöbern in vorbeirauschenden Paketen im lokalen Netzwerk leistet Platzhirsch Wireshark gute Dienste. Wer lieber eigene Tools baut, greift auf die Kommandozeilenversion Tshark zurück.

  • Verständnisfrage

    Als Prüfer Programmcode oder Multiple-Choice-Fragen elektronisch auszuwerten ist nicht allzu schwer. Doch das Korrektursystem zur Linux-Vorlesung an der Hochschule Heidelberg versteht nicht nur vorformulierte Textbausteine, sondern auch Freitextantworten.

  • Python asynchron

    Das Python-Modul Asyncio bringt neuen Schwung in vernetzte Anwendungen. Als Alternative zu Threads kann ein Entwickler es geschickt mit bestehenden Python-Bibliotheken kombinieren.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.