Open-Source-Programmbibliothek für Künstliche Intelligenz

So funktioniert Google TensorFlow

| Autor / Redakteur: Otto Geißler / Nico Litzel

TensorFlow, Open-Source-Softwarebibliothek für maschinelles Lernen, soll die gesamte Community des maschinellen Lernens, von der wissenschaftlichen Forschung über Ingenieure bis hin zu privaten Nutzern, dazu befähigen, in kürzerer Zeit Ideen per Programm-Code miteinander auszutauschen.
TensorFlow, Open-Source-Softwarebibliothek für maschinelles Lernen, soll die gesamte Community des maschinellen Lernens, von der wissenschaftlichen Forschung über Ingenieure bis hin zu privaten Nutzern, dazu befähigen, in kürzerer Zeit Ideen per Programm-Code miteinander auszutauschen. (Bild: Apache License 2.0)

Googles TensorFlow bildet als Open-Source-Tool für verteilte Datenbanksysteme eine innovative Basis für neuronale Netze im Umfeld von Sprache und Bildverarbeitungsaufgaben. Damit setzt Google ein klares Signal, dass maschinelles Lernen nicht mehr nur als einer der vielen IT-Hypes stilisiert wird, sondern in der Realität angekommen ist. Und die Möglichkeiten sind gewaltig.

In den vergangenen Jahrzehnten wurden die Ansätze der Künstlichen Intelligenz (KI) und Statistik eher stiefmütterlich behandelt. Zum einen, weil bei der Statistik am Ende nur Ungenaues und zum anderen, weil bei der KI eigentlich gar nichts dabei herauskam. Nicht ohne Grund, denn lange herrschte das Denken vor, dass Prozesse immer hochgenau beschrieben und realisiert werden müssen.

Doch plötzlich war alles anders: Internethändler Amazon beglückte die Surfer während ihrer Customer-Journey mit Produkt-Empfehlungen, die der Suche entsprechend ähnlich waren. Was war passiert? Dank den Modellen des maschinellen Lernens konnte Amazon zusätzliche Kaufanreize im Laufe einer Informations- bzw. Entscheidungsphase der Kunden bieten. Dabei geht es nicht darum, dass ein Kunde exakt die gleichen Präferenzen präsentiert bekommt wie ein anderer, sondern nur ähnliche. Maschinelles Lernen funktioniert eben mit solchen Häufelungen, Näherungen und Fehlertoleranzen – also mit statistischen Verfahren.

Maschinelles Lernen braucht verteilte Systeme

An dieser Stelle kommt die KI in Form von neuronalen Netzen ins Spiel. Dafür müssen sie aus vielen künstlichen Neuronen und Synapsen bestehen, um auch große Eingaben zielführend verarbeiten zu können. So viele, dass sie auf einen einzelnen Rechner nicht passen. Es muss also ein verteiltes System her. Zum Glück sind große Rechenressourcen mittlerweile deutlich billiger denn je zu haben.

Hinzu kommt, dass die neuronalen Netze nacheinander in Reihe geschaltet werden und so verschiedene Ebenen der Wahrnehmung und des Verstehens abbilden können. Wenn sich zum Beispiel die erste Ebene für die Bilderkennung mit einzelnen Pixeln, der Helligkeit und Farbe beschäftigt, verwendet die nächste Ebene den Output der vorhergehenden Ebene zum Erkennen von Linien, Kanten, Flächen oder Kurven. Mit jeder Ebene wird die vorgängige Information weiter abstrahiert. Das heißt, aus Linien werden geometrische Strukturen und daraus schließlich Gesichter. Mit TensorFlow können auf diese Weise lernende, neuronale Netzwerke erstellt werden.

TensorFlow – Turbo für die Forschung

Die Open-Source-Softwarebibliothek für maschinelles Lernen TensorFlow ist der direkte Nachfolger von Googles erstem Deep Learning Tool DistBelief. „Wir hoffen, dass TensorFlow die gesamte Community des maschinellen Lernens, von der wissenschaftlichen Forschung über Ingenieure bis hin zu privaten Nutzern, dazu befähigt, in kürzerer Zeit Ideen per Programm-Code miteinander auszutauschen“, sagt Sundar Pichai, CEO von Google. Auf diese Weise beschleunigt sich Forschung und Entwicklung, indem die Technologie immer weiter verfeinert und verbessert werden kann.

Aufgrund der verbesserten Flexibilität und Leistungsfähigkeit können neue, wenig getestete Modelle viel einfacher trainiert werden. Im Vergleich zu anderen Bibliotheken des maschinellen Lernens, die häufig mit voreingestellten Modellen angeboten werden, kann TensorFlow eigene Modelle selbst entwickeln und editieren. Darüber hinaus ist eine Übersetzung des Codes in andere Programmiersprachen nicht erforderlich. TensorFlow ist nicht nur auf großen verteilten Systemen, sondern auch auf einer Vielzahl von Plattformen wie zum Beispiel Smartphones, Embedded Devices und einzelnen Rechnern lauffähig.

Wie funktioniert TensorFlow?

TensorFlow ermöglicht es, jedwede neuronalen Netze durch gerichtete zyklenfreie Graphen darzustellen. Während die Kanten die Inputs und Outputs der einzelnen Rechenschritte repräsentieren, sind die Knoten für die Verarbeitung aller Inputs zu Outputs zuständig. Das bedeutet, an den Knoten eines solchen Graphen erfolgen die mathematischen Operationen, während die Graphenkanten die mehrdimensionalen Datenarrays (Tensoren) abbilden, die zwischen den einzelnen Knoten kommunizieren.

Für einen sogenannten Input kann zum Beispiel über ein Sampling mit gesprochener Sprache, das heißt Recording von Klangwerten in kurzen Abständen, ein Eingangsvektor (Tensor 1. Ordnung) erstellt werden. Oder ein Schwarz-Weiß-Bildausschnitt lässt sich in eine Pixelmatrix (Tensor 2. Ordnung) oder ein Farbbild in drei Pixelmatrizen mit den Komponenten rot, grün und blau (Tensor 3. Ordnung) überführen. Grafikkarten eignen sich dazu ideal, weil sie darauf optimiert sind, sehr schnell und eine große Anzahl an Berechnungen zu ermöglichen. Kein Wunder, dass TensorFlow das GPU-Computing unterstützt und davon außerordentlich profitieren kann.

Jedoch mit solchen Graphen alleine ist eine Bild- bzw. Spracherkennung noch lange nicht realisierbar. Denn für die jeweilige Aufgabe müssen die Rechner vorab trainiert werden. Dies geschieht, indem die Trainingsdaten den Rechnern iterativ zugeführt und gleichzeitig die Gewichtungen innerhalb des Graphen variiert werden. Dadurch wird der Output so verändert, dass sich dieser dem anvisierten Ausgabewert immer mehr approximiert. Diese optimierten Verfahrensweisen bei der Annäherung an den gewünschten Output sind eine der wichtigsten Durchbrüche bei neuronalen Netzen in den vergangenen Jahren.

Darüber hinaus sollte regelmäßig anhand separater Testdaten überprüft werden, ob das Training auch für beliebige bzw. anderweitige Inputdaten Wirkung zeigt. Treten beim Ergebnis keine Verbesserungen mehr ein, ist das Training beendet. Ein großes Plus von TensorFlow: Der Graph kann über die für das Training bestehenden Rechnergrenzen hinweg abgebildet und damit errechnet werden. Das gilt als eine entscheidende Pionierleistung von Google!

Anwendungsbereiche für TensorFlow

Die TensorFlow-Bibliothek ist für einen sehr breiten Anwendungsbereich geeignet. Zum Beispiel für die Industrie, Wirtschaft, den Finanzsektor oder die Medizin. Die Bandbreite reicht zum Beispiel von der Sprachübersetzung über die Früherkennung von Hautkrebs bis hin zur Vorbeugung von Blindheit bei Diabetikern. Schlussendlich kann jeder bei entsprechendem Fachwissen die intelligenten TensorFlow-Technologien anwenden.

TensorFlow ist natürlich auch für Google-Angebote wie zum Beispiel „Google Bilder“ (Bildidentifikation), „Google Maps“ (Kartendienst) oder „Google Translate“ im Einsatz. Dieser maschinelle Übersetzungsdienst nutzt mittels einer Phrasen-basierten Maschinenübersetzung einen Schlüsselalgorithmus der TensorFlow-Technologie. Zudem greift das KI-Projekt „DeepMind“ ebenfalls auf die TensorFlow-Bibliothek zurück. Innerhalb kürzester Zeit etablierte sich TensorFlow zu einem allgemein bewährten Standard, der Forscher, Ingenieure und Softwareentwickler bei der Entwicklung innovativer und leistungsstarker Softwareanwendungen unterstützt.

Mehr als nur Lernen

Neuronale Netzwerke stehen heute technologisch noch weit am Anfang. Trotzdem sind sie bisweilen schon in der Lage, selbst und ohne beaufsichtigtes Training zu lernen. Können Maschinen also schon jetzt so lernen, wie wir Menschen es aus einer scheinbaren – geheimnisvollen Verbindung aus Erinnerung und Verallgemeinerung – tun? Diese knifflige Frage ist aus heutiger Sicht nicht so leicht zu beantworten. Dafür müssten wir unser Gehirn erst einmal selber besser verstehen lernen. Gerade hier sind noch sehr viele Fragen offen.

Doch das Google-Team glaubt fest an das große Potenzial dieser Kombination aus „Generalization“ und „Memorization“. Aktuell laufen bereits Testreihen, um gleichzeitig ein umfangreiches lineares Modell (zum Erinnern) mit einem tiefen neuralen Netzwerk (zur Verallgemeinerung) zu trainieren. Gelingt es, diese beiden Stärken zu bündeln, so käme man dem Wunsch nach menschlichem Lernen schon ein Stückchen näher. Bei Google wird eine solche Technologie „Wide and Deep Learning“ bezeichnet. Dieser Ansatz eignet sich vor allem für generische Regressions- und Klassifikationsprobleme im großen Maßstab – aber mit nur wenigen Daten. Damit sollen erstaunliche Ergebnisse möglich sein, die sogar über das reine Erkennen und Erinnern hinaus in den Bereich der Erschaffung neuer Informationen vordringen. Diese Vorstöße werden sich in Zukunft mehren. Dank der Quelloffenheit tragen softwarebasierte Technologien dazu bei, die maschinelle Intelligenz noch schneller zu verbessern.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45050379 / Künstliche Intelligenz)