Was sind convolutional neural networks (CNN)?
Dieser Artikel ist Teil der Entmystifizierung von AI, einer Reihe von Beiträgen, die (versuchen) den Jargon und die Mythen rund um AI zu verdeutlichen.
Seit den 1950er Jahren, den frühen Tagen der künstlichen Intelligenz, versuchen Informatiker, Computer zu bauen, die visuelle Daten verstehen können., In den folgenden Jahrzehnten sah das Feld, das als Computer Vision bekannt geworden ist, inkrementelle Fortschritte. Im Jahr 2012 machte Computer Vision einen Quantensprung, als eine Gruppe von Forschern der Universität Toronto ein KI-Modell entwickelte, das die besten Bilderkennungsalgorithmen mit großem Abstand übertraf.
Das KI-System, das als AlexNet (benannt nach seinem Hauptschöpfer Alex Krizhevsky) bekannt wurde, gewann 2012 den ImageNet Computer Vision Contest mit einer erstaunlichen Genauigkeit von 85 Prozent. Der Zweitplatzierte erzielte bescheidene 74 Prozent im Test.,
Das Herzstück des AlexNet war ein Convolutional Neural Network (CNN), ein spezialisierter Typ von künstlichem neuronalem Netzwerk, das das menschliche Sehsystem grob nachahmt. In den letzten Jahren sind CNNs für viele Computer-Vision-Anwendungen von entscheidender Bedeutung. Hier ist, was Sie über die Geschichte und Funktionsweise von CNNs wissen müssen.
Eine kurze Geschichte von convolutional neural networks
Convolutional neural networks, die auch als ConvNets, wurden erstmals in den 1980er Jahren von Yann LeCun, ein post-doc-computer science researcher., LeCun hatte auf der Arbeit von Kunihiko Fukushima aufgebaut, einem japanischen Wissenschaftler, der einige Jahre zuvor das Neocognitron erfunden hatte, ein sehr grundlegendes neuronales Netzwerk zur Bilderkennung.
Die frühe Version von CNNs, genannt LeNet (nach LeCun), konnte handgeschriebene Ziffern erkennen. CNNs fand einen Nischenmarkt im Bank-und Postwesen sowie im Bankwesen, wo sie Postleitzahlen auf Umschlägen und Ziffern auf Schecks lasen.
Aber trotz ihres Einfallsreichtums blieben ConvNets am Rande von Computer Vision und künstlicher Intelligenz, weil sie vor einem ernsthaften Problem standen: Sie konnten nicht skalieren., CNNs benötigte viele Daten und Rechenressourcen, um effizient für große Bilder arbeiten zu können. Zu dieser Zeit war die Technik nur für Bilder mit niedrigen Auflösungen anwendbar.
Im Jahr 2012 zeigte AlexNet, dass es vielleicht an der Zeit war, Deep Learning, den Zweig der KI, der mehrschichtige neuronale Netzwerke verwendet, erneut zu besuchen. Die Verfügbarkeit großer Datenmengen, nämlich des ImageNet-Datensatzes mit Millionen beschrifteter Bilder und umfangreicher Rechenressourcen, ermöglichte es den Forschern, komplexe CNNs zu erstellen, die zuvor nicht möglich waren.
Wie funktionieren CNNs?,
Faltungsneuronale Netze bestehen aus mehreren Schichten künstlicher Neuronen. Künstliche Neuronen, eine grobe Nachahmung ihrer biologischen Gegenstücke, sind mathematische Funktionen, die die gewichtete Summe mehrerer Eingaben berechnen und einen Aktivierungswert ausgeben.
Das Verhalten jedes Neurons wird durch seine Gewichte definiert., Wenn sie mit den Pixelwerten gefüttert werden, wählen die künstlichen Neuronen eines CNN verschiedene visuelle Merkmale aus.
Wenn Sie ein Bild in ein Subnetz eingeben, generiert jede Ebene mehrere Aktivierungskarten. Aktivierungskarten markieren die relevanten Funktionen des Bildes. Jedes der Neuronen nimmt einen Pixelfleck als Eingabe, multipliziert seine Farbwerte mit seinen Gewichten, fasst sie zusammen und führt sie durch die Aktivierungsfunktion.
Die erste (oder untere) Schicht des CNN erkennt normalerweise grundlegende Merkmale wie horizontale, vertikale und diagonale Kanten., Die Ausgabe der ersten Ebene wird als Eingabe der nächsten Ebene zugeführt, wodurch komplexere Merkmale wie Ecken und Kantenkombinationen extrahiert werden. Wenn Sie tiefer in das faltungsneuronale Netzwerk eindringen, erkennen die Ebenen übergeordnete Funktionen wie Objekte, Gesichter und mehr.
Die Operation, Pixelwerte mit Gewichten zu multiplizieren und sie zu summieren, wird als“ Faltung “ bezeichnet (daher der Name faltungsneuronales Netzwerk). Ein CNN besteht normalerweise aus mehreren Faltungsschichten, enthält aber auch andere Komponenten. Die letzte Schicht eines CNN ist eine Klassifizierungsschicht, die die Ausgabe der endgültigen Faltungsschicht als Eingabe annimmt (denken Sie daran, dass die höheren Faltungsschichten komplexe Objekte erkennen).,
Basierend auf der Aktivierungszuordnung der endgültigen Faltungsschicht gibt die Klassifizierungsschicht eine Reihe von Konfidenzwerten (Werte zwischen 0 und 1) aus, die angeben, wie wahrscheinlich das Bild zu einer „Klasse“ gehört.“Wenn Sie beispielsweise ein Subnetz haben, das Katzen, Hunde und Pferde erkennt, besteht die Ausgabe der letzten Ebene in der Möglichkeit, dass das Eingabebild eines dieser Tiere enthält.,
Training des faltungsneuronalen Netzwerks
One eine der großen Herausforderungen bei der Entwicklung von CNNs besteht darin, die Gewichte der einzelnen Neuronen anzupassen, um die richtigen Merkmale aus Bildern zu extrahieren. Der Prozess der Anpassung dieser GEWICHTE wird als „training“ des neuronalen Netzwerks.
Am Anfang beginnt der CNN mit zufälligen Gewichten., Während des Trainings stellen die Entwickler dem neuronalen Netzwerk einen großen Datensatz von Bildern zur Verfügung, die mit den entsprechenden Klassen (Katze, Hund, Pferd usw.) kommentiert sind.). Das ConvNet verarbeitet jedes Bild mit seinen Zufallswerten und vergleicht dann seine Ausgabe mit der korrekten Beschriftung des Bildes. Wenn die Ausgabe des Netzwerks nicht mit der Beschriftung übereinstimmt—was wahrscheinlich zu Beginn des Trainingsprozesses der Fall ist—, nimmt es eine kleine Anpassung an die Gewichte seiner Neuronen vor, sodass die Ausgabe beim nächsten Mal das gleiche Bild sieht etwas näher an der richtigen Antwort.,
Die Korrekturen werden durch eine Technik namens Backpropagation (oder Backprop) vorgenommen. Im Wesentlichen optimiert Backpropagation den Tuning-Prozess und erleichtert es dem Netzwerk, zu entscheiden, welche Einheiten angepasst werden sollen, anstatt zufällige Korrekturen vorzunehmen.
Jeder Lauf des gesamten Trainingsdatensatzes wird als „Epoche“ bezeichnet.“Das ConvNet durchläuft während des Trainings mehrere Epochen und passt seine Gewichte in kleinen Mengen an. Nach jeder Epoche wird das neuronale Netzwerk etwas besser darin, die Trainingsbilder zu klassifizieren., Wenn sich der CNN verbessert, werden die Anpassungen an den Gewichten immer kleiner. Irgendwann „konvergiert“ das Netzwerk, was bedeutet, dass es im Wesentlichen so gut wie möglich wird.
Nach dem Training des CNN verwenden die Entwickler einen Testdatensatz, um seine Genauigkeit zu überprüfen. Der Testdatensatz besteht aus einer Reihe von beschrifteten Bildern, die nicht Teil des Trainingsprozesses sind. Jedes Bild wird durch das Subnetz ausgeführt und die Ausgabe wird mit der tatsächlichen Beschriftung des Bildes verglichen. Im Wesentlichen wertet der Testdatensatz aus, wie gut das neuronale Netzwerk bei der Klassifizierung von Bildern geworden ist, die es zuvor nicht gesehen hat.,
Wenn ein CNN bei seinen Trainingsdaten gut, bei den Testdaten jedoch schlecht abschneidet, soll er „überfüllt“ gewesen sein.“Dies geschieht normalerweise, wenn die Trainingsdaten nicht ausreichend abwechslungsreich sind oder wenn das ConvNet zu viele Epochen im Trainingsdatensatz durchläuft.
Der Erfolg von faltungsneuronalen Netzen ist weitgehend auf die Verfügbarkeit riesiger Bilddatensätze zurückzuführen, die im letzten Jahrzehnt entwickelt wurden. ImageNet, der zu Beginn dieses Artikels erwähnte Wettbewerb, erhielt seinen Titel aus einem gleichnamigen Datensatz mit mehr als 14 Millionen beschrifteten Bildern., Es gibt andere spezialisiertere Datensätze, wie die MNIST, eine Datenbank mit 70.000 Bildern handgeschriebener Ziffern.
Sie müssen jedoch nicht jedes faltungsneuronale Netzwerk auf Millionen von Bildern trainieren. In vielen Fällen können Sie ein vorgezogenes Modell wie das ResNet oder das ResNet von Microsoft verwenden und es für eine andere spezialisiertere Anwendung finetune. Dieser Prozess wird als Transfer Learning bezeichnet, bei dem ein trainiertes neuronales Netzwerk in einer kleineren Anzahl neuer Beispiele umgeschult wird.,
Die Grenzen der faltungsneuronalen Netze
Trotz ihrer Kraft und Komplexität sind faltungsneuronale Netze im Wesentlichen Mustererkennungsmaschinen. Sie können massive Rechenressourcen nutzen, um winzige und unauffällige visuelle Muster herauszufiltern, die für das menschliche Auge unbemerkt bleiben könnten. Wenn es jedoch darum geht, die Bedeutung des Inhalts von Bildern zu verstehen, funktionieren sie schlecht.
Betrachten Sie das folgende Bild. Ein gut ausgebildeter Konvoi wird Ihnen sagen, dass es das Bild eines Soldaten, eines Kindes und der amerikanischen Flagge ist., Aber eine Person kann eine lange Beschreibung der Szene geben und über Militärdienst, Touren in einem fremden Land, das Gefühl der Sehnsucht nach Zuhause, die Freude an der Wiedervereinigung mit der Familie usw. sprechen. Künstliche neuronale Netze haben keine Vorstellung von diesen Konzepten.
Diese Grenzen werden in der praktischen Anwendung von faltungsneuronalen Netzen deutlicher. Zum Beispiel werden CNNs jetzt häufig verwendet, um Inhalte in Social-Media-Netzwerken zu moderieren., Aber trotz der riesigen Repositories von Bildern und Videos, auf denen sie trainiert sind, haben sie immer noch Schwierigkeiten, unangemessene Inhalte zu erkennen und zu blockieren. In einem Fall verbot Facebooks Content-Moderation AI das Foto einer 30.000 Jahre alten Statue als Nacktheit.
Außerdem beginnen neuronale Netze zu brechen, sobald sie sich ein wenig aus ihrem Kontext entfernen. Mehrere Studien haben gezeigt, dass CNNs, die auf ImageNet und anderen gängigen Datensätzen trainiert wurden, Objekte nicht erkennen, wenn sie sie unter verschiedenen Lichtverhältnissen und aus neuen Blickwinkeln sehen.,
Eine aktuelle Studie von Forschern am MIT-IBM Watson AI Lab hebt diese Mängel hervor. Es wird auch ObjectNet eingeführt, ein Datensatz, der die verschiedenen Nuancen der Sichtbarkeit von Objekten im wirklichen Leben besser darstellt. CNNs entwickeln nicht die mentalen Modelle, die Menschen über verschiedene Objekte und ihre Fähigkeit haben, sich diese Objekte in zuvor unsichtbaren Kontexten vorzustellen.
Ein weiteres Problem bei faltungsneuronalen Netzen ist ihre Unfähigkeit, die Beziehungen zwischen verschiedenen Objekten zu verstehen. Betrachten Sie das folgende Bild, das als „Bongard-Problem“ bekannt ist, benannt nach seinem Erfinder, dem russischen Informatiker Michail Moiseevich Bongard. Bongard Probleme präsentieren Ihnen zwei Sätze von Bildern (sechs auf der linken und sechs auf der rechten Seite), und Sie müssen den Hauptunterschied zwischen den beiden Sätzen erklären., Im folgenden Beispiel enthalten Bilder im linken Satz beispielsweise ein Objekt und Bilder im rechten Satz zwei Objekte.
Es ist für den Menschen leicht, solche Schlüsse aus so kleinen Probenmengen zu ziehen. Wenn ich Ihnen diese beiden Sätze zeige und Ihnen dann ein neues Bild zur Verfügung stelle, können Sie schnell entscheiden, ob es in den linken oder rechten Satz gehen soll.
Aber es gibt immer noch kein faltungsneurales Netzwerk, das Bongard-Probleme mit so wenigen Trainingsbeispielen lösen kann. In einer 2016 durchgeführten Studie trainierten KI-Forscher einen CNN auf 20.000 Bongard-Proben und testeten sie auf 10.000 weitere. Die Leistung des CNN war viel niedriger als die der durchschnittlichen Menschen.
Die Besonderheiten von ConvNets machen sie auch anfällig für kontradiktorische Angriffe, Störungen in Eingabedaten, die für das menschliche Auge unbemerkt bleiben, aber das Verhalten neuronaler Netzwerke beeinflussen., Kontradiktorische Angriffe sind zu einer wichtigen Quelle der Besorgnis geworden, da Deep Learning und insbesondere CNNs zu einem integralen Bestandteil vieler kritischer Anwendungen wie selbstfahrender Autos geworden sind.
Bedeutet dies, dass CNNs nutzlos sind?, Trotz der Grenzen der faltungsneuronalen Netze ist es jedoch nicht zu leugnen, dass sie eine Revolution in der künstlichen Intelligenz verursacht haben. Heutzutage werden CNNs in vielen Computer-Vision-Anwendungen wie Gesichtserkennung, Bildsuche und-bearbeitung, Augmented Reality und mehr verwendet. In einigen Bereichen, wie der medizinischen Bildverarbeitung, könnten gut ausgebildete Konvnetze sogar menschliche Experten bei der Erkennung relevanter Muster übertreffen.,
Wie Fortschritte in faltungsneuronalen Netzen zeigen, sind unsere Leistungen bemerkenswert und nützlich, aber wir sind immer noch weit davon entfernt, die Schlüsselkomponenten der menschlichen Intelligenz zu replizieren.