Tensorflow
Inhaltsverzeichnis
Was ist Tensorflow?
Definition
Tensorflow ist eine Open-Source-Softwarebibliothek für die Datenfluss-Programmierung für eine Vielzahl von Aufgaben. Es ist eine symbolische Mathematikbibliothek und wird auch für maschinelle Lernanwendungen, wie neuronale Netzwerke, verwendet. Es findet Verwendung sowohl für die Recherche als auch für die Produktion bei Google.
Tensorflow wurde vom Google Brain-Team für den internen Gebrauch von Google entwickelt. Am 9. November 2015 wurde es unter der Open-Source-Lizenz Apache 2.0 veröffentlicht.
Entwicklung
Ab 2011 entwickelte Google Brain DistBelief als ein proprietäres maschinelles Lernsystem, das auf tiefen lernenden neuronalen Netzwerken basiert. Seine Verwendung wuchs schnell in verschiedenen Alphabet-Unternehmen sowohl in der Forschung als auch in kommerziellen Anwendungen.
Google beauftragte mehrere Computerwissenschaftlicher, darunter auch Jeff Dean, mit der Vereinfachung und Umgestaltung der Codebase von DistBelief in eine schnellere, robustere Bibliothek für Anwendungen, die zu Tensorflow wurde.
Im Jahr 2009 hatte das Team unter der Leitung von Geoffrey Hinton allgemeine Backpropagation und andere Verbesserungen implementiert, die die Erzeugung neuronaler Netze mit wesentlich höherer Genauigkeit ermöglichten, z. B. eine Verringerung von 25 % der Fehler bei der Spracherkennung.
Tensorflow
Es ist das System der zweiten Generation von Google Brain. Version 1.0.0 wurde am 11. Februar 2017 veröffentlicht. Während die Referenzimplementierung auf einzelnen Geräten ausgeführt wird, kann Tensorflow auf mehreren CPUs und GPUs ausgeführt werden (mit optionalen Erweiterungen CUDA und SYCL für allgemeine Berechnungen auf Grafikverarbeitungseinheiten). Tensorflow ist für 64-Bit-Linus-, MacOS-, Windows- und Mobile-Computing-Plattformen, einschließlich Android und iOS, verfügbar.
Die flexible Architektur ermöglicht die einfache Bereitstellung von Berechnungen auf einer Vielzahl von Plattformen (CPUs, GPUs, TPUs) und von Desktops über Servercluster bis hin zu mobilen Geräten und Edge-Geräten.
Berechnungen von Tensorflow werden als zustandorientierte Datenflussdiagramme ausgedrückt. Der Name Tensorflow leitet sich von den Operationen ab, die solche neuronalen Netzwerke mit mehrdimensionalen Datenarrays ausführen, die als Tensoren bezeichnet werden. Während der Google I/O-Konferenz im Juni 2016 gab Jeff Dean an, dass 1.500 Repositorien auf GitHub Tensorflow erwähnt hätten, von denen nur 5 von Google stammten.
Tensor Processing Unit (TPU)
Im Mai 2016 hat Google seine Tensor Processing Unit (TPU) vorgestellt, eine anwendungsspezifische integrierte Schaltung (ein sog. Hardware-Chip), die speziell für das maschinelle Lernen entwickelt und für Tensorflow erstellt wurde. TPU ist ein programmierbarer Al-Beschleuniger, der einen hohen Durchsatz an Arithmetik mit niedriger Genauigkeit (z. B. 8-Bit) bereitstellt und auf die Verwendung oder Ausführung von Modellen ausgerichtet ist, anstatt sie zu trainieren.
Google gab bekannt, dass sie seit mehr als einem Jahr TPUs in ihren Rechenzentren betrieben haben und dass diese eine um eine Größenordnung besser optimierte Leistung pro Watt für maschinelles Lernen liefern.
Im Mai 2017 gab Google die zweite Generation sowie die Verfügbarkeit der TPUs in Google Comopute Engine bekannt. Die TPUs der zweiten Generation bieten eine Leistung von bis zu 180 Teraflops – und wenn sie in Cluster von 64 TPUs organisiert sind – bis zu 11,5 Petaflops.
Im Februar 2018 ab Google bekannt, dass sie TPUs auf der Google Cloud-Plattform als Betaversion zur Verfügung stellen würden.
Lite
Google kündigte im Mai 2017 mit Tensorflow Lite einen Software-Stack speziell für die Android-Entwicklung an, der mit Android Oreo beginnt.
Anwendungen
Am 26. Oktober 2015 wurde RankBrain offiziell von Google veröffentlicht, unterstützt von Tensorflow.
Google hat auch Colaboratory veröffentlicht, eine Tensorflow-Jupyter-Notebook-Umgebung, für die keine Einrichtung erforderlich ist.
Machine Lerning Crash Course (MLCC)
Am 1. März 2018 veröffentlichte Google seinen Machine Learning Crash Course (MLCC). Ursprünglich konzipiert, um Google-Angestellte mit praktischen Grundlagen für künstliche Intelligenz und maschinelles Lernen auszustatten, hat Google seine kostenlosen Tensorflow-Workshops in mehreren Städten der Welt eingeführt, bevor der Kurs schließlich der Öffentlichkeit zugänglich gemacht wurde.
Merkmale
Tensorflow bietet stabile Python– und C-APIs – und ohne Abwärtskompatibilität für die API: C ++, Go, Java, JavaScript und Swift (frühes Release). Drittanbieter-Pakete sind für C #, Haskell, Julia, R, Scala, Rust, OCaml und Crystal verfügbar.
Anwendungen
Zu den Anwendungen, für die Tensorflow die Grundlage bildet, gehören automatisierte Bildaufnahmesoftware wie DeepDream. RankBrain wickelt jetzt eine beträchtliche Anzahl von Suchanfragen ab und ersetzt und ergänzt herkömmliche statische, auf Algorithmen basierende Suchergebnisse.
Maschinelles Lernen
Maschinelles Lernen ist die wissenschaftliche Untersuchung von Algorithmen und statistischen Modellen, die Computersysteme verwenden, um ihre Leistungen bei einer bestimmten Aufgabe schrittweise zu verbessern. Algorithmen für maschinelles Lernen bilden ein mathematisches Modell von Beispieldaten, die als “Trainingsdaten” bezeichnet werden, um Vorhersagen oder Entscheidungen zu treffen, ohne explizit für die Ausführung der Aufgabe programmiert zu sein.
Algorithmen für maschinelles Lernen werden in den Anwendungen der E-Mail-Filterung, der Erkennung von Netzwerk-Eindringlingen und bei Computer Vision eingesetzt, wo es unmöglich ist, einen Algorithmus mit spezifischen Anweisungen zur Ausführung der Aufgabe zu entwickeln. Maschinelles Lernen steht in engem Zusammenhang mit Computerstatistiken, bei denen Vorhersagen mithilfe von Computern getroffen werden.
Das Studium der mathematischen Optimierung liefert Methoden, Theorien und Anwendungen im Bereich des maschinellen Lernens. Data Mining ist ein Studienbereich und konzentriert sich auf explorative Datenanalyse durch unüberwachtes Lernen. Maschinelles Lernen wird in seiner Anwendung auf Geschäftsproblemen auch als Predictive Analytics bezeichnet.
Aufgaben des maschinellen Lernens (Beispiel)
Maschinelle Lernaufgaben werden in mehrere große Kategorien eingeteilt. Beim beaufsichtigten Lernen baut der Algorithmus ein mathematisches Modell eines Datensatzes auf, der sowohl die Eingaben als auch die gewünschten Ausgaben enthält. Wenn die Aufgabe beispielsweise bestimmt, ob ein Bild ein bestimmtes Objekt enthält, würden die Trainingsdaten für einen überwachten Lernalgorithmus Bilder mit und ohne dieses Objekt (Eingabe) enthalten und jedes Bild hätte eine Bezeichnung (Ausgabe), die angibt, ob es das Objekt enthielt.
Tipp
In besonderen Fällen ist die Eingabe möglicherweise nur teilweise verfügbar oder auf spezielle Rückmeldungen beschränkt. Halbüberwachte Lernalgorithmen entwickeln mathematische Modelle aus unvollständigen Trainingsdaten, wobei einem Teil der Probeeingaben die gewünschte Ausgabe fehlt.
Sie haben noch Fragen?