Computer Vision für Finance [Teil 2]: Convolutional Neural Networks

Wie funktioniert ein Convolutional Neural Network (CNN) für Computer Vision?

Im ersten Teil haben wir vorgestellt, was die wichtigsten Anwendungen für Computer Vision für das Finanzwesen sind. Dazu zählen u.a. die Re-Digitalisierung von Dokumenten oder die Verifizierung von biometrischen Daten und Unterschriften. Convolutional Neural Networks (kurz CNN) sind eine Art von Deep-Learning Modell, die die Grundlage für viele solcher Computer Vision Anwendungen bilden.

Um zu verstehen, wie sie funktionieren, muss man zunächst verstehen, wie Bilddateien auf Computern oder Handys gespeichert und angezeigt werden. Ein farbiges Bild wird als dreidimensionale Matrix gespeichert deren Höhen- und Breitendimension in Pixeln angegeben ist. Die dritte Dimension entspricht den Farbwerten für Rot, Grün und Blau mit denen die Pixel eines Bildschirms die Farben erzeugen. In der Fachsprache werden diese multi-dimensionalen Matrizen auch “Tensor” genannt (woher sich der Name TensorFlow für die bekannte DL-Bibliothek ableitet).

Ein CNN besteht aus drei Hauptkomponenten, die erlernen können, relevante Merkmale aus solchen Bilddateien zu extrahieren, zu erkennen und zu klassifizieren. Die drei Komponenten sind die Convolutional Layers, die Pooling Layers und die Fully-Connected Layers. Convolutional Layers enthalten sog. Filter-Kernel (Matrizen kleiner als das Bild selbst), die über den Bildtensor laufen und somit visuelle Merkmale (eng. Feature) finden können.

 
 

Bei diesem Prozess entstehen viele neue Tenors, die wiederum durch die Pooling Layers zusammengefasst werden. Ein Pooling Kernel fasst bestimmte Bereiche einer Matrix mit Hilfe des Mittelwerts oder Maximalwerts zu einer kleineren Matrix zusammen. Am Ende des CNN steht immer ein Fully-Connected Neuronales Netz, das die letzten Rechenschritte und die Klassifikation von Objekten im Bild durchführt. Die Optimierung von Filter-Kerneln und Neuronen erfolgt über Backpropagation und Gradient Descent.

Obwohl es keine strikte Abfolge von Convolutional Layers und Pooling Layers gibt, so haben sich im Laufe der Zeit bestimmte Architekturen von CNNs als besonders leistungsstark erwiesen (bspw. ResNet oder LeNet). Weil das vollständige Training von CNNs sehr rechen-, speicher- und zeitintensiv ist, kommen auch vor-trainierte Modelle zum Einsatz. Diese vor-trainierten Modelle können mit weniger Ressourcen und gleicher Performance auf einen Anwendungsfall gefinetunt werden. Somit können CNNs also auch im Finanzwesen ohne großen Aufwand eingesetzt werden.