Open Source im professionellen Einsatz
Linux-Magazin 07/2007
© photocase.com

© photocase.com

Neuronale Netze mit der Libfann

Magisches Netz

3, 4, 8, 11 - nur wer den dahintersteckenden Algorithmus errät, weiß die nächste Zahl. Doch neuronale Netze setzen Reihen auch fort, ohne den Rechenweg zu kennen - näherungsweise, quasi aus dem Bauch heraus. Sie gleichen damit dem menschlichen Gehirn, dessen Architektur ihr Vorbild ist.

692

Für viele scheinbar triviale Probleme lässt sich nur schwer ein mathematischer Lösungsweg finden. Wer eine Reiseroute durch vorgegebene Städte oder das Layout einer elektronischen Schaltung optimieren will, muss sich mit dem Durchprobieren und Bewerten von Alternativen behelfen. Da die Zahl der möglichen Lösungen für eine Route durch vorgegebene Punkte der Fakultät ihrer Anzahl entspricht, scheitert eine exakte Lösung trotz optimierter Algorithmen leicht am Aufwand.

Wesentlich schneller geht es mit Augenmaß. Wenn ein Mensch nach Gefühl eine Route in die Landkarte zeichnet, findet er eine gute Lösung (wenn auch nicht unbedingt die beste), auch ohne über Optimierungsalgorithmen nachzudenken oder auch nur die Länge der Teilstrecken zu summieren.

Neuronale Netze sind eine Möglichkeit, Digitalerchnern solche intuitiven Lösungen beizubringen. Künstliche neuronale Netze spielen ihre Vorteile gegenüber den Verfahren, die auf Formeln und Logik basieren, immer dann aus, wenn sich der systematische Zusammenhang zwischen Eingabe- und Ausgabewerten nur unzureichend mathematisch erfassen lässt.

Intuition gefragt

Eine typische Anwendung für neuronale Netze ist die Gesichtserkennung, bei der der Rechner aus farbigen Bildpunkten trotz Rauschen oder Verzerrungen Gesichter erkennen soll. Weitere Anwendungen sind die Texterkennung oder Vorhersagen in mathematisch schwer zu fassenden Systemen, etwa der Sonnenfleckenaktivität oder Börsentrends. Neuronale Netze haben den Ruf, das Bauchgefühl eines routinierten Börsianers besser nachzuahmen als rechnerische Verfahren. Das gilt auch für die Vorhersage von Sonnenflecken, die in 22-jährigen, aber nicht vollständig regelmäßigen Zyklen auf der Sonnenoberfläche zu sehen sind. Neuronetzte sagen ihre Häufigkeit besser vorher als Berechnungen, die die Komplexität der Gasdynamik nicht vollständig erfassen können.

Dieser Artikel trainiert ein neuronales Netz für die Vorhersage der Sonnenfleckenaktivität aus den Daten der letzten 30 Jahre. Für die Implementierung des Netzes nutzt er die leistungsfähige Libfann [1]. Von praktischem Wert ist eine solche Vorhersage, weil Sonnenfleckenaktivitäten Störungen bei Funk- und Satellitenübertragungen auslösen können.

Natürliches Vorbild

Künstliche neuronale Netze (Artificial Neural Networks, kurz ANNs) simulieren die Struktur des Gehirns von Menschen und Tieren. Wie ihr natürliches Vorbild bestehen sie aus künstlichen Nervenknoten (Neuronen), die sich in ihrem Zustand über eine Vielzahl von Verbindungen gegenseitig beeinflussen. Aus der unterschiedlichen Gewichtung der Neuronenverbindungen, die den Nervenfasern im Gehirn entsprechen, ergibt sich für ein Muster an den Eingangsneuronen eines Netzes ein bestimmter Ausgangswert.

Durch ein Training, das sich in der Stärke der Neuronenverbindungen niederschlägt, lernen es neuronale Netze, Eingangsmuster mit Ausgabewerten zu assoziieren. Dabei genügt es, dem Netz einen Ausschnitt aus der Ergebnismenge zu präsentieren. Ohne dass ein konkreter Rechenweg bekannt ist, findet das künstliche Gehirn nach einer Trainingsphase dann auch Lösungen, die nicht Teil des Trainings waren.

Abbildung 1 zeigt eine Nervenzelle. Sie besteht aus dem Zellkern und vielen verästelten Ausläufern. Die so genannten Dendriten empfangen Signale von anderen Nervenzellen und leiten die elektrischen Impulse an den Zellkörper weiter. Übersteigt deren Summe einen bestimmten Schwellenwert, wird das Neuron aktiv und sendet über das Axon einen elektrischen Impuls an die mit ihm verbunden Zellen.

Abbildung 1: In der vielfältigen Verästelung der Nervenzellen sehen Neuro-Wissenschaftler die Basis für die Leistungsfähigkeit des Gehirns in Disziplinen wie Mustererkennung oder der Vorhersage schwer zu errechnender Systemzustände.

Ein künstliches Neuron simuliert die wichtigsten Eigenschaften einer Nervenzelle. Es summiert alle Potenziale seiner Dendriten, wendet auf diese Summe eine festgelegte Aktivierungsfunktion an und leitet das Ergebnis an alle verknüpften Zellen weiter (Abbildung 2). Jede Verbindung zu anderen Neuronen hat ein bestimmtes Gewicht und dämpft oder verstärkt das Signal auf dem Weg.

Abbildung 2: Künstliche Neuronen summieren die Reizpotenziale aller Verknüpfungen und leiten sie über gewichtete Verbindungen weiter. Die Anpassung der Verknüpfungsfaktoren verändert das Verhalten des Netzes.

Die Aktivierungsfunktion, die entscheidet, ab welchem Potenzial das Neuron aktiv wird, besteht im einfachsten Fall aus einer Schwellenwertfunktion, die eine Eins liefert, wenn die Summe aller Eingänge über einem bestimmten Wert liegt. Es ist üblich, die Aktivierungsschwelle als Neuron, das so genannte On-Neuron, darzustellen. Wie den Verknüpfungen zwischen den Neuronen lässt sich ihr eine Gewichtung zuweisen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 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

  • 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.

  • Machine Learning

    Der Arbeitgeber von Autor Chris Hinze litt wie vermutlich alle Homepage-Baukasten-Anbieter unter Spammern und illegalen Inhalten. Ein Praxisbericht, der auf der Theorie des Deep Learning beruht.

  • Deep Dream: Google veröffentlicht Visualisierung für neuronale Netze

    Google hat auf Github eine Software zur Visualisierung von neuronalen Netzen unter freier Lizenz bereitgestellt.

  • Deep Learning

    Deep Learning gilt als Hype-Technologie, lässt sich aber auch im Alltag einsetzen und löst nicht nur Automatisierungsaufgaben der Industrie. Gimp-Nutzer Sebastian Mogilowski zeigt in diesem Artikel, wie er mit Hilfe neuronaler Netze seine alten Schwarz-Weiß-Bilder nachträglich koloriert.

  • Ins Gesicht geblickt

    Gesichtserkennung zum Ausprobieren: Das von Intel angestoßene OpenCV holt die Technik auf den eigenen Rechner. Dieser Artikel erläutert, wie sich das SDK in eigenen Programmcode einbinden lässt und wie es sich im Vergleich mit kostenpflichtigen Lösungen schlägt.

comments powered by Disqus

Ausgabe 10/2017

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

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