GNU neural network – gneural network
Mit dem GNU neural network gibt es Neuigkeiten in der Welt der freien Software. Vor kurzem ist die erst Version (0.0.1) von Gneural Network erschienen, ein neuronales Netzwerk mit der Besonderheit, dass der Code der GPL Lizenz unterliegt und damit frei verfügbar ist. Warum ist das aber so interessant?
GNU neural network – gneural network
Die großen kommerziellen Konzerne Google (AlphaGo), Microsoft und IBM (Watson) haben in den letzten Jahren viele Millionen in die Entwicklung eigener neuronaler Netzwerke gesteckt. Ziel war die Entwicklung einer lernfähigen künstlichen Intelligenz. Ziel des GNU Projekts ist es diese Forschungsergebnisse nun auch der breiten Masse zugänglich zu machen. Tatsächlich gibt es zu diesem recht komplexen Thema kein vergleichbares Projekt.
Neuronales Netz
Seit den 60er Jahren gelten neuronale Netze als die große Hoffnung eine echte künstliche Intelligenz zu erschaffen. Unter einem neuronalen Netz versteht man ein Computerprogramm, dass den Aufbau eines Gehirns simuliert. Es gibt zahlreiche Knoten die eine logische Aufgabe erfüllen (z.B. addieren, Und-Verknüpfung, Invertieren, …) und mit anderen Konten Verknüpfungen herstellen. Die wichtigste Eigenschaft eines solchen Systems ist seine Lernfähigkeit. Man bezeichnet es auch als Maschinenlernen. Aus einer rudimentären Logik entwickelt sich über viele Generationen eine Logik die spezialisiert darauf ist gewisse Probleme zu lösen. Es werden neue Knoten hinzugefügt, andere wieder entfernt und neue Verknüpfungen der Knoten untereinander erstellt. Die Maschine schreibt dabei Code selbstständig, die Ergebnisse der Software werden von außen bewertet und anhand dessen Ergebnis lebt die neue Struktur weiter, oder stirbt wieder. Das klingt alles sehr komplex, ein einfaches Beispiel zeigt aber wie das tatsächlich abläuft.
Beispiel aus der Geschichte der künstlichen Intelligenz
Wie so oft ist der Grund für die Entwicklung neuer Technologien das Militär. So steckte die US Army Millionen Dollar in ein prestigeträchtiges Unternehmen, man wollte eine künstliche Intelligenz erschaffen, ein neuronales Netzwerk trainieren, dass zielsicher Satellitenfotos und Luftbildaufnahmen nach militärischen Gesichtspunkten analysieren kann.
Die erste Aufgabe war eigentlich sehr simpel: das Programm soll feststellen, ob auf dem Bild ein militärisches Ziel (z.B. ein Panzer) zu sehen ist oder nicht. Als Ergebnis lieferte die KI ein Ja oder Nein. Ein Mensch Bewertete danach das Ergebnis, damit das neuronale Netz die Änderung weiter verwendete oder wieder entfernte. Zuerst waren die Ergebnisse noch sehr zufällig, im Laufe der Evolution des Systems bildete sich langsam ein klareres Muster und die Ergebnisse wurden besser. Die künstliche Intelligenz begann zu lernen.
Das Problem jedes neuronalen Netzes ist folgendes: es lernt etwas, jedoch kann man von Außen nur recht schwer Einfluss darauf nehmen was es lernt. Am Beispiel der militärischen Software war das Endergebnis ernüchternd. Millionen wurden dafür ausgegeben, dass man ein Programm züchtet, dass im Endeffekt Luftaufnahmen mit Wolken von Luftaufnahmen ohne Wolken unterscheiden konnte. Warum? Ganz einfach: bei schlechten Wetter findet man keine Panzer, bei gutem Wetter ist es sehr viel wahrscheinlicher Panzer oder Panzer ähnliche Strukturen auf dem Bild zu erkennen. Genau diese offensichtliche Tatsache hat das Programm nach unzähligen Evolutionsstufen gelernt.
Fazit
GNU neural network ist ein sehr guter Ansatz um das spannende Thema neuronale Netze auch in die Open Source Welt zu bringen. Leider findet die Entwicklung in Unternehmen hinter verschlossenen Türen statt, im besten Fall bekommt man die Software zu kaufen. Ein frei verfügbares lernfähiges neuronale Netz wäre eine gute Basis für spannende KI Projekte unter Linux oder FreeBSD.
Was denkt ihr darüber?