Deep Learning

Zweig des maschinellen Lernens
Geschichtete Repräsentation von Bildern auf mehreren Abstraktionsebenen.[1]

Deep Learning (deutsch: mehrschichtiges Lernen, tiefes Lernen[2] oder tiefgehendes Lernen) bezeichnet eine Methode des maschinellen Lernens, die künstliche neuronale Netze (KNN) mit zahlreichen Zwischenschichten (englisch hidden layers) zwischen Eingabeschicht und Ausgabeschicht einsetzt und dadurch eine umfangreiche innere Struktur herausbildet.[3][4][5] Es ist eine spezielle Methode der Informationsverarbeitung.

Geschichte, Entwicklung und VerwendungBearbeiten

Nach Jürgen Schmidhuber waren die Group method of data handling-KNNs (GMDH-ANN) der 1960er-Jahre von Oleksij Iwachnenko die ersten Deep-Learning-Systeme des Feedforward-Multilayer-Perzeptron-Typs.[6][7][8] Weitere Deep-Learning-Ansätze, vor allem aus dem Bereich des maschinellen Sehens, begannen mit dem Neocognitron, das von Kunihiko Fukushima 1980 entwickelt wurde. Im Jahr 1989 verwendeten Yann LeCun und Kollegen den Backpropagation-Algorithmus für das Training mehrschichtiger KNNs, mit dem Ziel, handgeschriebene Postleitzahlen zu erkennen.[9]

Der Begriff „Deep Learning“ wurde im Kontext des maschinellen Lernens erstmals 1986 von Rina Dechter verwendet, wobei sie hiermit ein Verfahren bezeichnet, bei dem alle verwendeten Lösungen eines betrachteten Suchraums aufgezeichnet werden, die zu keiner gewünschten Lösung geführt haben. Die Analyse dieser aufgezeichneten Lösungen soll es ermöglichen anschließende Versuche besser zu steuern und somit mögliche Sackgassen in der Lösungsfindung frühzeitig zu verhindern.[10] Heutzutage wird der Begriff jedoch vorwiegend im Zusammenhang mit künstlichen neuronalen Netzen verwendet und tauchte in diesem Kontext erstmals im Jahr 2000 auf, in der Veröffentlichung Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications von Igor Aizenberg und Kollegen.[11][12][13]

Die jüngsten Erfolge von Deep Learning Methoden, wie der Go-Turniergewinn des Programmes AlphaGo gegen die weltbesten menschlichen Spieler, gründen sich neben der gestiegenen Verarbeitungsgeschwindigkeit der Hardware auf den Einsatz von Deep Learning zum Training des in AlphaGo verwendeten neuronalen Netzes.[14] Diese Netze nutzen künstlich erzeugte Neuronen (Perzeptron), um Muster zu erkennen.

Für Beiträge zu neuronalen Netzwerken und Deep Learning erhielten Yann LeCun, Yoshua Bengio und Geoffrey Hinton 2018 den Turing Award.[15]

EinleitungBearbeiten

 
Links: Eingangsschicht (input layer) mit in diesem Fall drei Eingangsneuronen. Rechts: Ausgabeschicht mit den Ausgangsneuronen, in diesem Bild zwei. Die mittlere Schicht wird als verborgen bezeichnet (hidden layer), da ihre Neuronen weder Eingänge noch Ausgänge sind. Hier ist nur eine verborgene Schicht zu sehen, aber viele Netzwerke haben deutlich mehr. Die notwendige Anzahl von Ebenen, ab denen man von „Deep Learning“ spricht, ist nicht genau festgelegt.

Die in der Anfangszeit der künstlichen Intelligenz gelösten Probleme waren für den Menschen intellektuell schwierig, aber für Computer einfach zu verarbeiten. Diese Probleme ließen sich durch formale mathematische Regeln beschreiben. Die wahre Herausforderung an die künstliche Intelligenz bestand jedoch in der Lösung von Aufgaben, die für die Menschen leicht durchzuführen sind, deren Lösung sich aber nur schwer durch mathematische Regeln formulieren lassen. Dies sind Aufgaben, die der Mensch intuitiv löst, wie zum Beispiel Sprach- oder Gesichtserkennung.[3]

Eine computerbasierte Lösung für diese Art von Aufgaben beinhaltet die Fähigkeit von Computern, aus der Erfahrung zu lernen und die Welt in Bezug auf eine Hierarchie von Konzepten zu verstehen. Hierbei ist jedes Konzept durch seine Beziehung zu einfacheren Konzepten definiert. Durch das Sammeln von Wissen aus der Erfahrung vermeidet dieser Ansatz die Notwendigkeit für die menschlichen Bediener, all das Wissen, das der Computer für seine Arbeit benötigt, formal spezifizieren zu müssen. Die Hierarchie der Konzepte erlaubt es dem Computer, komplizierte Konzepte zu erlernen, indem er sie aus einfacheren zusammensetzt. Wenn man ein Diagramm zeichnet, das zeigt, wie diese Konzepte übereinander aufgebaut werden, dann ist das Diagramm tief, mit vielen Schichten. Aus diesem Grund wird dieser Ansatz in der künstlichen Intelligenz „Deep Learning“ genannt.[3][16]

Es ist schwierig für einen Computer, die Bedeutung von rohen sensorischen Eingangsdaten zu verstehen, wie beispielsweise in der Handschrifterkennung, wo ein Text zunächst nur als eine Sammlung von Bildpunkten existiert. Die Überführung einer Menge von Bildpunkten in eine Kette von Ziffern und Buchstaben ist sehr kompliziert. Komplexe Muster müssen aus Rohdaten extrahiert werden. Das Lernen oder Auswerten dieser Zuordnung scheint unüberwindbar schwierig, wenn sie manuell programmiert werden würde.[3]

Eine der häufigsten Techniken in der künstlichen Intelligenz ist maschinelles Lernen. Maschinelles Lernen ist ein selbstadaptiver Algorithmus. Deep Learning, eine Teilmenge des maschinellen Lernens, nutzt eine Reihe hierarchischer Schichten bzw. eine Hierarchie von Konzepten, um den Prozess des maschinellen Lernens durchzuführen. Die hierbei benutzten künstlichen neuronalen Netze sind wie das menschliche Gehirn gebaut, wobei die Neuronen wie ein Netz miteinander verbunden sind. Die erste Schicht des neuronalen Netzes, der sichtbaren Eingangsschicht, verarbeitet eine Rohdateneingabe, wie beispielsweise die einzelnen Pixel eines Bildes. Die Dateneingabe enthält Variablen, die der Beobachtung zugänglich sind, daher „sichtbare Schicht“.[3]

Diese erste Schicht leitet ihre Ausgaben an die nächste Schicht weiter. Diese zweite Schicht verarbeitet die Informationen der vorherigen Schicht und gibt das Ergebnis ebenfalls weiter. Die nächste Schicht nimmt die Informationen der zweiten Schicht entgegen und verarbeitet sie weiter. Diese Schichten werden als versteckte Ebenen (englisch hidden layers) bezeichnet. Die in ihnen enthaltenen Merkmale werden zunehmend abstrakt. Ihre Werte sind nicht in den Ursprungsdaten angegeben. Stattdessen muss das Modell bestimmen, welche Konzepte für die Erklärung der Beziehungen in den beobachteten Daten nützlich sind. Dies geht über alle Ebenen des künstlichen neuronalen Netzes so weiter. Das Ergebnis wird in der sichtbaren letzten Schicht ausgegeben. Hierdurch wird die gewünschte komplizierte Datenverarbeitung in eine Reihe von verschachtelten einfachen Zuordnungen unterteilt, die jeweils durch eine andere Schicht des Modells beschrieben werden.[3][4][16][17]

Komplexität und Grenzen der ErklärbarkeitBearbeiten

Tiefe neuronale Netze können eine Komplexität von bis zu hundert Millionen einzelnen Parametern und zehn Milliarden Rechenoperationen pro Eingangsdatum aufweisen. Die Interpretierbarkeit der Parameter und Erklärbarkeit des Zustandekommens der Ergebnisse ist hier nur noch eingeschränkt möglich und erfordert den Einsatz spezieller Techniken, die unter Explainable Artificial Intelligence zusammengefasst werden. Ein weiterer Seiteneffekt des Deep Learning ist die Anfälligkeit für Falschberechnungen, die durch subtile, bei zum Beispiel Bildern für Menschen nicht sichtbare, Manipulationen der Eingabesignale ausgelöst werden können. Dieses Phänomen wird unter Adversarial Examples zusammengefasst.[18]

ProgrammbibliothekenBearbeiten

Neben der meist in Schulungsbeispielen zum Verständnis der internen Struktur vorgestellten Möglichkeit, ein neuronales Netz komplett eigenhändig zu programmieren, gibt es eine Reihe von Softwarebibliotheken,[19] häufig Open Source, lauffähig auf meist mehreren Betriebssystemplattformen, die in gängigen Programmiersprachen wie zum Beispiel C, C++, Java oder Python geschrieben sind. Einige dieser Programmbibliotheken unterstützen GPUs oder TPUs zur Rechenbeschleunigung oder stellen Tutorials zur Benutzung dieser Bibliotheken bereit. Mit ONNX können Modelle zwischen einigen dieser Tools ausgetauscht werden.

LiteraturBearbeiten

WeblinksBearbeiten

EinzelnachweiseBearbeiten

  1. Hannes Schulz, Sven Behnke: Deep Learning: Layer-Wise Learning of Feature Hierarchies. In: KI - Künstliche Intelligenz. Band 26, Nr. 4, November 2012, ISSN 0933-1875, S. 357–363, doi:10.1007/s13218-012-0198-z (springer.com [abgerufen am 13. Januar 2020]).
  2. Herbert Bruderer: Erfindung des Computers, Elektronenrechner, Entwicklungen in Deutschland, England und der Schweiz. In: Meilensteine der Rechentechnik. 2., völlig neu bearbeitete und stark erweiterte Auflage. Band 2. De Gruyter, 2018, ISBN 978-3-11-060261-6, Wörterverzeichnis zur Technikgeschichte, S. 408 (eingeschränkte Vorschau in der Google-Buchsuche [abgerufen am 23. November 2019]).
  3. a b c d e f Ian Goodfellow, Yoshua Bengio, Aaron Courville: Deep Learning. MIT Press, abgerufen am 19. Februar 2017 (englisch).
  4. a b David Kriesel: Ein kleiner Überblick über Neuronale Netze. (PDF; 6,1 MB) In: dkriesel.com. 2005, abgerufen am 21. Januar 2019.
  5. Li Deng, Dong Yu: Deep Learning: Methods and Applications. 1. Mai 2014 (microsoft.com [abgerufen am 17. Mai 2020]).
  6. Ivakhnenko, A. G. and Lapa, V. G. (1965). Cybernetic Predicting Devices. CCM Information Corpo-ration.
  7. Jürgen Schmidhuber: Deep learning in neural networks: An overview. In: Neural Networks. 61, 2015, S. 85, arxiv:1404.7828 [cs.NE].
  8. Jürgen Schmidhuber: Critique of Paper by "Deep Learning Conspiracy" (Nature 521 p 436). people.idsia.ch, Juni 2015, abgerufen am 12. April 2019.
  9. Yann LeCun et al.: Backpropagation Applied to Handwritten Zip Code Recognition, Neural Computation, 1, pp. 541–551, 1989, abgerufen am 11. Mai 2020.
  10. Dechter, Rina (1985). Learning while searching in constraint-satisfaction problems. University of California, Computer Science Department, Cognitive Systems Laboratory, cs.ucla.edu, abgerufen am 14. Mai 2020.
  11. Horváth & Partners: „Künstliche Intelligenz wird alles ändern“ (ab 0:11:30) auf YouTube, 9. Mai 2016, abgerufen am 6. November 2018 (Vortrag von Jürgen Schmidhuber).
  12. Jürgen Schmidhuber: Deep Learning since 1991. In: people.idsia.ch. 31. März 2017, abgerufen am 1. Dezember 2018.
  13. Igor Aizenberg, Naum N. Aizenberg, Joos P.L. Vandewalle: Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications. Springer Science & Business Media, 14 March 2013, ISBN 978-1-4757-3115-6.
  14. Demis Hassabis: AlphaGo: using machine learning to master the ancient game of Go. In: blog.google. Google, 27. Januar 2016, abgerufen am 16. Juli 2017 (englisch).
  15. Alexander Neumann: Deep Learning: Turing Award für Yoshua Bengio, Geoffrey Hinton und Yann LeCun – heise online. In: heise.de. 28. März 2019, abgerufen am 29. März 2019.
  16. a b Michael Nielsen: Neural Networks and Deep Learning. Determination Press, abgerufen am 21. Februar 2017 (englisch).
  17. Li Deng, Dong Yu: Deep Learning: Methods and Applications. In: Microsoft Research (Hrsg.): Foundations and Trends in Signal Processing Volume 7 Issues 3-4. 1. Mai 2014, ISSN 1932-8346 (englisch, microsoft.com [abgerufen am 22. Februar 2017]).
  18. Leilani H. Gilpin, David Bau, Ben Z. Yuan, Ayesha Bajwa, Michael Specter: Explaining Explanations: An Overview of Interpretability of Machine Learning. In: 2018 IEEE 5th International Conference on Data Science and Advanced Analytics (DSAA). IEEE, Turin, Italy 2018, ISBN 978-1-5386-5090-5, S. 80–89, doi:10.1109/DSAA.2018.00018 (ieee.org [abgerufen am 8. Dezember 2019]).
  19. Dan Clark: Top 16 Open Source Deep Learning Libraries and Platforms. KDnuggets, April 2018, abgerufen am 8. Januar 2019 (englisch).
  20. Keras Documentation. In: Keras: Deep Learning library for Theano and TensorFlow. Abgerufen am 6. März 2017 (englisch).
  21. Why use Keras? In: keras.io. Abgerufen am 8. Januar 2020 (englisch): „Keras is also a favorite among deep learning researchers, coming in #2 in terms of mentions in scientific papers uploaded to the preprint server arXiv.org. Keras has also been adopted by researchers at large scientific organizations, in particular CERN and NASA.“
  22. Torch | Scientific computing for LuaJIT. Abgerufen am 17. Februar 2017 (englisch).
  23. Rainald Menge-Sonnentag: Maschinelles Lernen: Facebook veröffentlicht Open-Source-Framework für Torch. In: heise.de. 24. Juni 2016, abgerufen am 17. Februar 2017.
  24. The Microsoft Cognitive Toolkit. In: microsoft.com. Abgerufen am 11. August 2017 (amerikanisches Englisch).
  25. Startseite. In: paddlepaddle.org. Abgerufen am 17. Februar 2017 (englisch).
  26. Alexander Neumann: Baidu gibt Deep-Learning-System als Open Source frei. In: heise.de. 2. September 2016, abgerufen am 17. Februar 2017.
  27. Theano. In: deeplearning.net. Abgerufen am 20. September 2019 (englisch).
  28. Apache MXNet (Incubating) – A flexible and efficient library for deep learning. In: mxnet.apache.org. Abgerufen am 5. September 2019 (englisch).