Kapitel 1. Maschinelles Lernen für Computer Vision
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Stell dir vor, du sitzt in einem Garten und beobachtest, was um dich herum vor sich geht. In deinem Körper sind zwei Systeme am Werk: Deine Augen fungieren als Sensoren und erzeugen Repräsentationen der Szene, während dein kognitives System das, was deine Augen sehen, verarbeitet. So siehst du vielleicht einen Vogel, einen Wurm und eine Bewegung und erkennst, dass der Vogel den Weg entlang gelaufen ist und einen Wurm frisst (siehe Abbildung 1-1).
Die Computer Vision versucht, die menschlichen Sehfähigkeiten zu imitieren, indem sie Methoden für die Bilderzeugung (Nachahmung des menschlichen sensorischen Systems) und die maschinelle Wahrnehmung (Nachahmung des menschlichen kognitiven Systems) bereitstellt. Die Nachahmung des menschlichen Wahrnehmungssystems konzentriert sich auf die Hardware und auf die Gestaltung und Platzierung von Sensoren wie Kameras. Der moderne Ansatz zur Nachahmung des menschlichen kognitiven Systems besteht aus Methoden des maschinellen Lernens (ML), die verwendet werden, um Informationen aus Bildern zu extrahieren. Diese Methoden behandeln wir in diesem Buch.
Wenn wir zum Beispiel ein Foto von einem Gänseblümchen sehen, ist unser menschliches kognitives System in der Lage, es als Gänseblümchen zu erkennen (siehe Abbildung 1-2). Die maschinellen Lernmodelle zur Bildklassifizierung, die wir in diesem Buch entwickeln, ahmen diese menschliche Fähigkeit nach, indem sie von Fotos von Gänseblümchen ausgehen.
Maschinelles Lernen
Wenn du in den frühen 2010er Jahren ein Buch über Computer Vision gelesen hättest, hätten die Methoden, mit denen Informationen aus Fotos extrahiert werden, nichts mit maschinellem Lernen zu tun gehabt. Stattdessen hättest du etwas über Rauschunterdrückung, Kantenfindung, Texturerkennung und morphologische (formorientierte) Verfahren gelernt. Mit den Fortschritten in der künstlichen Intelligenz (genauer gesagt, den Fortschritten im maschinellen Lernen) hat sich das geändert.
Künstliche Intelligenz (KI) erforscht Methoden, mit denen Computer menschliche Fähigkeiten imitieren können. Maschinelles Lernen ist ein Teilbereich der KI, der Computern beibringt, dies zu tun, indem er ihnen eine große Menge an Daten zeigt und sie anweist, daraus zu lernen. Expertensysteme sind ein weiterer Teilbereich der KI - Expertensysteme bringen Computern bei, menschliche Fähigkeiten nachzuahmen, indem sie sie so programmieren, dass sie menschlicher Logik folgen. Vor den 2010er Jahren wurden Bildverarbeitungsaufgaben wie die Klassifizierung von Bildern üblicherweise durch die Entwicklung maßgeschneiderter Bildfilter erledigt, die die von Experten festgelegte Logik umsetzen. Heutzutage wird die Bildklassifizierung durch Faltungsnetzwerke, eine Form des Deep Learning, erreicht (siehe Abbildung 1-3).
Nimm zum Beispiel das Bild des Gänseblümchens in Abbildung 1-2. Beim maschinellen Lernen lernt ein Computer, die Art der Blume auf einem Bild zu erkennen, indem er viele Bilder mit den dazugehörigen Bezeichnungen (oder richtigen Antworten) sieht. Wir zeigen dem Computer also viele Bilder von Gänseblümchen, viele Bilder von Tulpen und so weiter. Anhand eines solchen beschrifteten Trainingsdatensatzes lernt der Computer, wie er ein Bild klassifizieren kann, das er vorher noch nicht gesehen hat. Wie das geschieht, wird in den Kapiteln 2 und 3 erläutert.
Bei einem Expertensystem hingegen würden wir damit beginnen, einen Botaniker zu befragen, wie er Blumen klassifiziert. Wenn der Botaniker erklärt, dass Bellis perennis (der wissenschaftliche Name für ein Gänseblümchen) aus weißen, länglichen Blütenblättern um eine gelbe Mitte und grünen, abgerundeten Blättern besteht, würden wir versuchen, Bildverarbeitungsfilter zu entwickeln, die diesen Kriterien entsprechen. Wir würden zum Beispiel nach dem Vorkommen von Weiß, Gelb und Grün in dem Bild suchen. Dann würden wir Kantenfilter entwickeln, um die Ränder der Blätter zu erkennen, und morphologische Filter, um zu sehen, ob sie der erwarteten runden Form entsprechen. Wir könnten das Bild im HSV-Raum (Farbton, Sättigung, Wert) glätten, um die Farbe der Mitte der Blume im Vergleich zur Farbe der Blütenblätter zu bestimmen. Anhand dieser Kriterien könnten wir einen Score für ein Bild erstellen, der die Wahrscheinlichkeit angibt, dass es sich um ein Gänseblümchen handelt. Auf ähnliche Weise würden wir verschiedene Regeln für Rosen, Tulpen, Sonnenblumen usw. aufstellen und anwenden. Um ein neues Bild zu klassifizieren, wählen wir die Kategorie aus, die die höchste Punktzahl für dieses Bild aufweist.
Diese Beschreibung verdeutlicht, wie viel Maßarbeit nötig war, um Modelle zur Bildklassifizierung zu erstellen. Das ist der Grund, warum die Bildklassifizierung früher nur begrenzt anwendbar war.
Das änderte sich 2012 mit der Veröffentlichung des AlexNet Papers. Die Autoren - Alex Krizhevsky, Ilya Sutskever und Geoffrey E. Hinton - waren in der Lage, alle bestehenden Bildklassifizierungsmethoden zu übertreffen, indem sie Faltungsnetzwerke (siehe Kapitel 3) auf den Benchmark-Datensatz der ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) anwendeten. Sie erreichten einen Top-51 Fehlerquote von 15,3 %, während die Fehlerquote des Zweitplatzierten bei über 26 % lag. Typische Verbesserungen in solchen Wettbewerben liegen in der Größenordnung von 0,1 %. Die Verbesserung, die AlexNet zeigte, war also hundertmal besser, als die meisten Leute erwartet hatten! Das war eine aufsehenerregende Leistung.
Neuronale Netze gab es schon seit den 1970er Jahren, und Faltungsneuronale Netze (CNNs) selbst waren zu diesem Zeitpunkt schon mehr als zwei Jahrzehnte alt - Yann LeCun stellte die Idee 1989 vor. Was war also neu an AlexNet? Vier Dinge:
- Grafikprozessoren (GPUs)
-
Faltungsneuronale Netze sind eine tolle Idee, aber sie sind sehr rechenintensiv. Die Autoren von AlexNet implementierten ein Faltungsnetzwerk auf den Grafik-Rendering-Bibliotheken, die von speziellen Chips, den GPUs, bereitgestellt werden. GPUs wurden damals hauptsächlich für High-End-Visualisierung und Spiele verwendet. In der Arbeit wurden die Faltungen gruppiert, um das Modell auf zwei GPUs zu verteilen. Mit GPUs war es möglich, Faltungsnetzwerke zu trainieren (über die Verteilung des Modelltrainings auf GPUs werden wir in Kapitel 7 sprechen).
- Rektifizierte lineare Einheit (ReLU) Aktivierung
-
Die Erfinder von AlexNet haben in ihrem neuronalen Netz eine nicht sättigende Aktivierungsfunktion namens ReLU verwendet. In Kapitel 2 werden wir mehr über neuronale Netze und Aktivierungsfunktionen erfahren. Für den Moment reicht es aus zu wissen, dass ihr Modell durch die Verwendung einer stückweise linearen, nicht sättigenden Aktivierungsfunktion viel schneller konvergiert.
- Regulierung
-
Das Problem mit ReLUs - und der Grund, warum sie bis 2012 kaum verwendet wurden - war, dass die Gewichte des neuronalen Netzes numerisch instabil wurden, weil sie nicht in die Sättigung gingen. Die Autoren von AlexNet verwendeten eine Regularisierungstechnik, um zu verhindern, dass die Gewichte zu groß werden. Wir werden die Regularisierung auch in Kapitel 2 besprechen.
- Tiefe
-
Da sie nun schneller trainieren konnten, waren sie in der Lage, ein komplexeres Modell mit mehr neuronalen Netzwerkschichten zu trainieren. Wir sagen, dass ein Modell mit mehr Schichten tiefer ist; die Bedeutung der Tiefe wird in Kapitel 3 erläutert.
Es ist wichtig zu wissen, dass es die größere Tiefe des neuronalen Netzes (die durch die Kombination der ersten drei Ideen ermöglicht wurde) war, die AlexNet so erfolgreich machte. Dass CNNs mit Hilfe von Grafikprozessoren beschleunigt werden können, wurde bereits 2006 bewiesen. Die ReLU-Aktivierungsfunktion selbst war nicht neu, und die Regularisierung war eine bekannte statistische Technik. Die außergewöhnliche Leistung des Modells ist letztlich auf die Einsicht der Autoren zurückzuführen, dass sie all dies kombinieren konnten, um ein tieferes neuronales Faltungsnetzwerk zu trainieren, als dies bisher der Fall war.
Tiefe ist so wichtig für das wieder auflebende Interesse an neuronalen Netzen, dass das gesamte Feld als Deep Learning bezeichnet wird.
Deep Learning Anwendungsfälle
Deep Learning ist ein Teilgebiet des maschinellen Lernens, das neuronale Netze mit vielen Schichten verwendet. Deep Learning hat die bisherigen Methoden für Computer Vision übertroffen und wird inzwischen erfolgreich auf viele andere Formen unstrukturierter Daten angewandt: Video, Audio, Text in natürlicher Sprache und so weiter.
Deep Learning gibt uns die Möglichkeit, Informationen aus Bildern zu extrahieren, ohne dass wir spezielle Bildverarbeitungsfilter entwickeln oder menschliche Logik programmieren müssen. Für die Bildklassifizierung mit Deep Learning benötigen wir Hunderte, Tausende oder sogar Millionen von Bildern (je mehr, desto besser), für die wir die richtige Bezeichnung kennen (wie "Tulpe" oder "Gänseblümchen"). Mit diesen beschrifteten Bildern können wir ein Deep-Learning-Modell zur Bildklassifizierung trainieren.
Solange du eine Aufgabe in Bezug auf das Lernen aus Daten formulieren kannst, ist es möglich, Methoden des maschinellen Bildverarbeitungslernens einzusetzen, um das Problem zu lösen. Nehmen wir zum Beispiel das Problem der optischen Zeichenerkennung (OCR) - ein gescanntes Bild und den Text daraus zu extrahieren. Bei den ersten OCR-Ansätzen wurde dem Computer beigebracht, einen Musterabgleich mit dem Aussehen einzelner Buchstaben vorzunehmen. Das stellt sich aus verschiedenen Gründen als schwierig heraus. Zum Beispiel:
-
Es gibt viele Schriftarten, sodass ein einzelner Buchstabe auf viele Arten geschrieben werden kann.
-
Buchstaben gibt es in verschiedenen Größen, daher muss der Musterabgleich skalenunabhängig sein.
-
Gebundene Bücher können nicht flach gelegt werden, sodass die gescannten Buchstaben verzerrt sind.
-
Es reicht nicht aus, einzelne Buchstaben zu erkennen; wir müssen den gesamten Text extrahieren. Die Regeln dafür, was ein Wort, eine Zeile oder einen Absatz ausmacht, sind komplex (siehe Abbildung 1-4).
Auf der anderen Seite kann OCR mit Hilfe von Deep Learning ganz einfach als Bildklassifizierungssystem formuliert werden. Es gibt viele Bücher, die bereits digitalisiert wurden, und es ist möglich, das Modell zu trainieren, indem man ihm ein gescanntes Bild aus einem Buch zeigt und den digitalisierten Text als Label verwendet.
Computer-Vision-Methoden bieten Lösungen für eine Vielzahl von Problemen in der realen Welt. Neben OCR wurden Computer Vision Methoden erfolgreich in der medizinischen Diagnose (anhand von Bildern wie Röntgen- und MRT-Aufnahmen), der Automatisierung von Einzelhandelsabläufen (z. B. Lesen von QR-Codes, Erkennen leerer Regale, Prüfen der Qualität von Gemüse usw.), der Überwachung (Überwachung von Ernteerträgen anhand von Satellitenbildern, Überwachung von Wildkameras, Erkennung von Eindringlingen usw.), der Erkennung von Fingerabdrücken und der Sicherheit von Fahrzeugen (Verfolgen von Autos in sicherem Abstand, Erkennen von Änderungen der Geschwindigkeitsbegrenzungen anhand von Straßenschildern, selbstparkende Autos, selbstfahrende Autos usw.) eingesetzt.
Computer Vision findet in vielen Branchen Anwendung. In der Verwaltung wird es zur Überwachung von Satellitenbildern, beim Aufbau intelligenter Städte und bei Zoll- und Sicherheitskontrollen eingesetzt. Im Gesundheitswesen wird es zur Erkennung von Augenkrankheiten und zur Früherkennung von Krebs bei Mammographien eingesetzt. In der Landwirtschaft wird sie eingesetzt, um defekte Bewässerungspumpen zu erkennen, die Ernteerträge zu bewerten und Blattkrankheiten zu erkennen. In der verarbeitenden Industrie wird es in den Fabrikhallen zur Qualitätskontrolle und zur Sichtprüfung eingesetzt. In der Versicherungsbranche wird sie eingesetzt, um Schäden an Fahrzeugen nach einem Unfall automatisch zu bewerten.
Zusammenfassung
Computer Vision hilft Computern dabei, den Inhalt digitaler Bilder wie z. B. Fotos zu verstehen. Seit einer bahnbrechenden Veröffentlichung im Jahr 2012 sind Deep-Learning-Ansätze für Computer Vision sehr erfolgreich geworden. Heutzutage wird Computer Vision in vielen Branchen erfolgreich eingesetzt.
Wir beginnen unsere Reise in Kapitel 2, indem wir unsere ersten Machine Learning Modelle erstellen.
1 Top-5-Genauigkeit bedeutet, dass wir das Modell als korrekt betrachten, wenn es die richtige Bezeichnung für ein Bild innerhalb der ersten fünf Ergebnisse liefert.
Get Praktisches maschinelles Lernen für Computer Vision now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.