Weil Sie wissen das Deep learning / Maschinelles Lernen eine komplexe Sache ist,
und als größeres Unternehmen den Zug trotzdem nicht verpassen möchten,
haben Sie die Erkenntnis dass Sie einen Erfahrenen Partner brauchen.

Für eine Terminvereinbarung, bitten wir Sie 1.190 € an folgende Adresse zu überweisen.

XiLLeR GmbH
IBAN: DE42 7602 0070 0358 9905 84
BIC: HYVEDEMM460
Verwendungszweck: Telefonnummer und Ihren Namen.

Sie erhalten eine Rechnung. Bitte Kontaktieren Sie uns nur, wenn Ihnen
bewusst ist, dass das Vorhaben mehr als 170.000€ beanspruchen wird.

In den 1.000€ Netto sind 2 Std. Telefon/Video Beratung inklusiv.

In nur 2 Stunden ist es oft geklärt ob ein Projekt überhaupt stattfinden sollte oder nicht. Statt viel Zeit & Ressourcen zu investieren,
haben Sie hier die Chance viel Lehrgeld zu sparen.

Künstliche Neuronale Netzwerke - ein Auszug ©

2.1 Idee

Die Natur bietet für die Forschung eine interessante Inspirationsquelle. Da ist es naheliegend, dass auch das Prinzip des Denkens und Lernens, abgeleitet von der Funktionsweise des menschlichen Verstands, als Vorbild für Forschungsprojekte dient. Bei ML wurden deshalb auch die Funktionsweisen des Gehirns studiert und man hat versucht, dieses Prinzip auf künstliche, elektronische Einheiten umzumünzen. Das Zusammenspiel der Nervenzellen wurde studiert und anhand der bisher erlangten Erkenntnisse wurde ein technisches Äquivalent erstellt

2.2 Historischer Abriss

Künstliche Neuronale Netze (KNN) entstanden in den 1940er Jahren fast zeitgleich mit programmierbaren elektronischen Computern. So beschreiben McCulloch und Pitts eine frühe Art von neurologischen Netzen. Sie bewiesen mit ihrem McCulloch-Pitts-Neuron, dass selbst einfache Netze fast jede logische und arithmetische Funktion berechnen können. Die 1950er und 1960er Jahre waren dann die erste Blütezeit für KNNs. Die Entwicklung beschleunigte sich und mit ADALINE (ADAptive LInear NEuron) gabes nun eine erste verbreitete Verwendung in Analogtelefonen (Echtzeit-Echoilterung). Ende der 1960er Jahre kam die Prognose eines „Research Dead Ends“ auf, dessen Folge Streichungen von Forschungsgeldern war. Der Forschungsumfang wurde daraufhin kleiner. Dadurch, dass es nun weniger Veröfentlichungen gab und die Kommunikation zwischen Forschenden auch sehr reduziert war, entstanden viele verschiedene Paradigmen.Nachdem dann von Werbos die Backpropagation entwickelt wurde, erlangte das Forschungsgebiet der KNNs eine Renaissance. Seit Mitte der 1980er Jahre stieg die Entwicklungsgeschwindigkeit von KNNs und ML rasant an und ist aktuell immer noch stark im Wachstum.

Bestandteile & Künstliche Neuronen

2.3 BestandteileUm den Aufbau eines solchen KNNs zu beschreiben, wird hier zur Verdeutlichung zunächst das biologische Vorbild kurz umrissen. Abbildung 2.1: Aufbau eines biologischen NeuronsEin Nervensystem (neuronales Netz) besteht aus Nervenzellen, Neuronen genannt. Die Verbindung von Neuron zu Neuron wird über die sogenannten Dendriten hergestellt. Diese nehmen ein ihnen übergebenes Signal auf und leiten es weiter zum Zellkern (Soma). Da ein Neuron mehrere Dendriten besitzen kann, trefen im Soma auch mehrere Signale zusammen. Diese werden dann aufaddiert, und falls das Ergebnis (Erregung) einen bestimmten Schwellwert überschreitet, wird das Neuron „aktiviert“. Es entsteht eineaktive elektrische Welle, die über das Axon zu den Synapsen weitergeleitet wird. So wird der Reiz an die Nachbarzelle(n) gereicht

2.3.1 Künstliche NeuronenAbbildung 2.2: Aufbau eines künstlichen Neurons   Um dies nun auf ein künstliches Prinzip umzumünzen, wird zunächst auch eine Recheneinheit erstellt, die ein künstliches Neuron darstellt (siehe Abb.2.2) Es wurden verschiedene künstliche Neuronen geschaffen, die sich in der Handhabung der ihnen übergebenen Daten unterscheiden. Im Grundaufbau sind sie aber vergleichbar. Ein künstlichesNeuron nimmt eine oder mehrere Informationen als gewichtete Eingangswertean und generiert daraus einen Wert, den es dann über eine gerichtete und gewichtete Verbindung weiterreicht. Das Gewicht wirkt sich verstärkend bzw. hemmend auf die Erregung aus. Auch ein künstliches Neuron besitzt eine Systematik (Aktivierungsfunktion) mit der es entscheidet, ob der Wert das Neuron aktiviert oder nicht. Dabei spielt der Schwellwert eine große Rolle [Nie15].In diesem Kapitel wird lediglich das Grundprinzip von künstlichen Neuronen erläutert.Auf ihren mathematischen Ansatz wird in Kapitel 2.4 genauer eingegangen.Im Detail besteht die Verarbeitung einer Eingabe durch ein künstliches Neuron laut Kriesel [Kri07, S. 9f] aus folgenden Schritten:Abbildung 2.3: Verarbeitungsschritte einer Neuroneneingabe

Die Propagierungsfunktion bis Feedforward Netz

2.3.1.1 Die PropagierungsfunktionDie Propagierungsfunktion nimmt die Eingaben, die von anderen Neuronen über eine bestehende Verbindung übertragen werden, an. In ihr werden diese Werte je nach Gewichtung/Verbindungsgewichtung als Netzeingabe an die Aktivierungsfunktion weitergeleitet.Die Gewichtung ist nicht statisch, sondern wird in der Lernphase (siehe Kapitel 2.4) verändert.2.3.1.2 AktivierungsfunktionWie der Name schon sagt, geschieht mit der Aktivierungsfunktion die Aktivierung oder eben keine Aktivierung des Neurons. Und sie gibt, falls sie nicht linear ist, den Grad der Aktivierung an. Vom Aktivierungszustand hängt ab, ob und wie das Neuron auf Inputs reagiert. Das bedeutet, wenn ihr eine Netzeingabe übergeben wird, beeinflusst ihr vorheriger Aktivierungsgrad maßgeblich den neuen Grad der Aktivierung. Auch der Schwellwert der Netzeingabe, der die Stelle der größten Steigung der Aktivierungsfunktionmarkiert, ließt mit ein. Um aktiv zu werden, muss unter anderem die Netzeingabe diesen Schwellwert überschreiten (biolog.: Reizschwelle). Anders als andere Größen im Netzwerk, ist die Aktivierungsfunktion meist global für alle Neuronen deiniert. Die Schwellwerte allerdings sind Neuronen-gebunden und in der Lernphase veränderbar.Für mathematische Veranschaulichungen wird die Aktivierungsfunktion mit ϕ bezeichnet.2.3.1.3 AusgabefunktionDie Ausgabefunktion berechnet aus dem Ergebnis der Aktivierungsfunktion den Wert, der dann über die Output-Verbindungen an weitere Neuronen weitergeleitet wird. Genau wie die Aktivierungsfunktion ist die Ausgabefunktion auch global deiniert. Meist ist diese Funktion gleichzusetzen mit der Aktivierung.

2.3.2 SchichtenEin künstliches neuronales Netzwerk besteht aus verschiedenen Schichten, die eine bestimmte Anzahl von künstlichen Neuronen beinhalten. Diese Neuronen verarbeiten ihre Eingabewerte unterschiedlich. Jedes Neuron einer Schicht erhält als Input den Output von allen Neuronen der vorherigen Schicht. Der Output eines Neurons wiederum wird an alle Neuronen der nachfolgenden Schicht geschickt. Diese nehmen den Wert zusammen mit weiteren ihnen zugeschickten Werten auf.Abbildung 2.4: Schichten eines künstlichen neuronalen NetzesEin KNN hat verschiedene Arten von Schichten (Layers). Wie in Abb. 2.4 zu sehen, nennt man die erste Schicht das Input Layer. Ihm werden üblicherweise die eingespeisten Werte lediglich übergeben. Die letzte Schicht ist das Output Layer. Es klassiiziert nun die ihm übergebene Problematik. Zwischen Input- und Output Layer liegen die sogenannten Hidden Layers von unterschiedlicher Anzahl, jedoch mindestens eine. Je komplexer ein Netzwerk ist, desto mehr Hidden Layer besitzt es.2.3.3 Feedforward NetzFeedForward Netze haben eine klare Schichtung. Das bedeutet, es gibt eine Eingabeschicht, beliebig viele folgende versteckte Schichten und eine Ausgabeschicht. Die Verbindungen zwischen Neuronen gehen ausschließlich von einem Neuron einer Schicht zu Neuronen der nächstfolgenden Schicht, die in Richtung Ausgangsschicht liegt. In FeedForward Netzen ist es üblich, dass ein Neuron alle Neuronen der nächsten Schicht bedient. Das bedeutet, die Schichten sind untereinander vollverknüpft.

Zu erwähnen: Rechtschreibfehler oder Darstellungsfehler entstanden durch die Kopie aus der OrginalPDF

2.4 Lernprinzip: überwachtes Lernen mit BackpropagationIn dieser Arbeit wird ein KNN lernen, indem es nach dem Durchlauf eines Inputs sein Ergebnis mit dem hinterlegten korrekten Ergebnis vergleicht und anhand der Differenz seine Parameter (Gewichtungen und Biases) für den nächsten Durchlauf anpasst.Diese Methode nennt man überwachtes Lernen [Kri07, S.73f]. Voraussetzung ist das Vorhandensein einer korrekten Lösung zu den Trainingsbeispielen, die durch das Netz geschleust werden. Ziel ist es, dass das Netz seine Parameter so anpasst, dass es den Input selbstständig der korrekten Kategorie zuweisen kann, sodass auch unbekannte Inputs, die nicht beim Training benutzt wurden, sinnvoll klassiiziert werden können.Der Trainingszyklus wird in folgende Schritte unterteilt:1. Eingabe der Trainingsdaten2. Vorwärtspropagierung (Forwardpropagation)3. Vergleich des Ergebnisses mit dem hinterlegten korrekten Wert (Kostenfunktion)4. Berechnung der Netzanpassungen und Aktualisierung des Netzes (Backpropagation)Im Folgenden wird das Beispiel einer Bilder-Klassiizierung zur Erklärung des Lernprinzipserläutert. Es gibt einen Satz von Trainingsbildern, die alle ein Label besitzen,das ihre Kategorie-Zugehörigkeit beinhaltet.2.4.1 ForwardpropagationZu Beginn einer Trainingsphase sind alle Gewichte und Bias-Werte zufällig gesetzt. Es ist wichtig, dass sie nicht alle den selben Wert besitzen, da dies später für die Backpropagation sinnlos wäre. Im ersten Durchlauf weiß das Netz noch nicht, nach welchen Merkmalen es suchen soll und somit werden als Ergebnis alle Kategorien höchstwahrscheinlich gleich stark präferiert werden.Für das erfolgreiche Lernen wird die Netzeingabe für jedes Neuron der inneren Schichten (Hidden Layers) benötigt, die mit der Propagierungsfunktion errechnet wird. Dies wird hier mit netj mit j als Index des Neurons bezeichnet. Errechnet wird dies durch netj = Σni=1 xiwij + bj mit n als Anzahl der Eingaben xi, wij als Gewichtung zwischenxi und Neuron j, sowie bj als entsprechendem Bias-Wert.Wie in Kapitel 2.3.1.2 beschrieben, geschieht die Ausgabe oj (Output j) eines Neurons dann üblicherweise durch eine Aktivierungsfunktion ϕ(netj).2.4.2 Kostenfunktion (Loss)Das Ergebnis wird nun durch eine sogenannte Kostenfunktion (auch Fehlerfunktion genannt) mit dem Label des Bildes verglichen und die Diskrepanz (Loss) bewertet. Es gibt verschiedene Möglichkeiten, durch einen Vergleich eine Auswertung zu erhalten.Ziel ist es, das Netz zu optimieren, indem man die Kosten, also die Wahrscheinlichkeit eines Fehlschlusses verringert.Beispiel einer Kostenfunktion ist die Squared Error Function [Maz] Etotal =Σn i=1 12 (ti − oi)2 mit n als Anzahl der Klassiizierungsmuster (Kategorien), oi als Ergebnis der Forwardpropagation und ti (Target i) als Kontrollreferenz, die hier das Label des Bildes ist.

2.4.3 BackpropagationUm die Parameter nun anzupassen, wird bei der Backpropagation ein Gradientenbasiertes Optimierungsverfahren (Gradientenabstiegsverfahren) angewandt. Das Ziel ist es bei allen Gewichten den Gradienten zu errechnen und dann entgegen des Gradienten schrittweise „bergab“ zu gehen. Die Schrittweite wird durch die Stärke der Steigung (Betrag) bestimmt [Maz].Der Gradient von dem Gewicht wij wird mit der partiellen Ableitung von E nach wij @Etotal@wij errechnet. Durch Verwendung der Kettenregel ergibt sich @Etotal@wij = @Etotal@oj @oj @netj @netj @wij.Um nun die Veränderung wij zu errechnen, muss die Lernrate η (siehe 2.4.4) , die die Stärke der Veränderung bestimmt, noch berücksichtigt werden. Somit ergibt sich wij = η @Etotal@wij. Dieser Wert wird nun mit dem Wert von wij addiert, um den neuenWert für wij zu erhalten.Wenn die Initialwerte der Gewichte und Biases nun zu Beginn alle gleich gewesen wären, hätten sie alle den selben Output generiert und somit wären auch die Gradienten alle gleich gewesen, wodurch kein Lernerfolg stattinden kann und nie eintreten wird.2.4.4 LernrateDie Gewichtsänderung ist proportional zur Lernrate. Die Lernrate ist ein Wert, der die Stärke der Veränderung anpassen soll. Sie wird global angegeben. Ist die Lernrate größer, werden die Gewichtsveränderungen auch stärker sein. Ist die Lernrate zu groß, besteht die Gefahr, das die Gewichtsänderungen den optimale Wert „verfehlt“, indem sie ihn überspringt. Ist sie zu klein, wird durch die sehr kleinen Gewichtsveränderungen bei jeder Backpropagation der Zeitaufwand sehr groß. Die Lernrate ist meist ein positiver Wert  0.9.2.4.5 EpocheEin solcher Durchlauf wird auch Epoche genannt. Generell werden mehrere Inputs verarbeitet und die Kosten akkumuliert, bevor das Netz angepasst wird. Dadurch wird weniger Speicher verbraucht und die Rechenzeit verringert. Die Anzahl der Inputs, die durch das Netz geschleust werden, bevor eine Anpassung stattindet, wird Batch Size genannt. Eine Iteration bzw. ein Step ist dann eine komplette Vorwärts- und Rückwärtspropagierung.So wird ein Netz, dass mit 100 Trainingsdaten und einer Batch Sizevon 5 eingelernt wird, mit 20 Iterationen eine Epoche abschließen.

Convolutional Neural Networks

2.5 Convolutional Neural NetworksIn dieser Arbeit liegt der Fokus auf Convolutional Neural Networks (CNN oder ConvNet).Im Folgenden wird deshalb auch beschrieben, was „Convolutional“ in diesemZusammenhang genau bedeutet und wie ein solches Netz zusammengesetzt wird.2.5.1 PrinzipAbbildung 2.5: Schichten eines Convolutional Neural NetworksWenn ein Bild durch ein neuronales Netzwerk verarbeitet wird, muss man davon ausgehen, dass der interessante Blickpunkt nicht zwangsläuig im Zentrum des Bildes sein muss. Das Netzwerk sollte das gesuchte Objekt überall im Bild inden. Um einem Netzwerk beizubringen, ein Objekt zu erkennen, unabhängig davon, wo es sich im Bild beindet, braucht man eine bestimmte Art der Bild(vor)verarbeitung, die „Convolution“ (Konvolution) genannt wird.Ein klassisches CNN hat bestimmte Schichten, die nun mit einem konkreten Beispiel (Abb. 2.5) erklärt werden. Als Input ist ein Bildformat von 32×32 Pixeln mit 3 Kanälen (RGB) gegeben.

2.5.1.1 Convolution LayerDas Bild, das in das Netz eingespeist wird, wird zunächst in Bildausschnitte zerschnitten und zwar so, dass sie sich teilweise überschneiden. Diese Überschneidung wird durch die Schrittweite deiniert, bei Abb. 2.5 ist sie 2. Das heißt, wenn der erste Bildausschnitt mit Beginn bei Pixel 1 ausgeschnitten wurde, beginnt die nächste 6×6-Kachel bei Pixel 3 usw. Jeder dieser Bildausschnitte wird nun mit jedem der 16 Filter auf ein Merkmalüberprüft. Somit beschränken sich die Neuronen auf die Verarbeitung nahe beieinanderliegender Bildpunkte (lokale Konnektivität)[Wikb]. Konkret wird das Skalarprodukt aus Bildausschnitt und Filter errechnet. Dieses dient als Input für die Aktivierungsfunktion.Da aus dem Inputbild von Größe 32×32 genau 14×14 Ausschnitte entstehen, erhält man für jeden der 16 Filter eine sogenannte Activation Map mit der Größe 14x14x1. Analog ergibt sich für jeden Bildausschnitt ein Datensatz von Größe 1x1x16. Zusammenfassend ist der Output dieses konkreten Konvolutionsschrittes 14x14x16. Wenn man die Filtergröße und Schrittweite so wählt, dass nicht alle Pixelin Kacheln untergebracht werden können, wird Padding angewandt; meist,indem man mit Nullen aufüllt (Zero-Padding).Abbildung 2.6: Zero- PaddingPadding kann aber auch zu einem anderen Zweck benutzt werden: Durch Konvolution wird die Output-Größe immer kleiner. Um diese schrittweise Verkleinerung abzuschwächen, wird oft auch Padding eingesetzt.Da es Sinn macht, einen Filter, der ein Merkmal repräsentiert, für jeden Bildausschnitt gleich zu gewichten, teilen sich die Neuronen einen Gewichtswert. Man spricht von geteilten Gewichten (Shared Weights)[Wikb].

Weiterführend

2.5.1.2 Pooling LayerIm nächsten Schritt wird ein Downsampling durchgeführt, die Datenmenge wird mithilfe einer Pooling Funktion reduziert. Durch diese Verringerung wird die Berechnungszeit optimiert und Speicherplatz gespart. Wie auch bei der Konvolution wird hier ein Fenster benutzt, das über die Daten gelegt wird und Werte zusammenfasst. Bei CNN hat sich das Max-Pooling etabliert. Das bedeutet, der höchste Wert (Wert des aktivsten Neurons) wird als Ergebnis übernommen. Die Schrittweite ist meist so groß wie das Fenster, sodass es keine Überschneidungen gibt.2.5.1.3 Fully Connected LayerAls Ausgabe-Schicht folgt ein Fully Connected Layer. Die Anzahl der Neuronen richtet sich nach der Anzahl der Kategorien, aus denen eine dem Bild zugewiesen werden soll. Alle Neuronen dieser Schicht haben Verbindungen zu jedem Neuron der vorherigen Schicht entsprechend der Architektur eines klassischen KNN. Durch eine Klassiizierungsfunktion (konkrete Klassiizierungsmethoden werden im Kapitel 5.2.2 beschrieben) wird dann das Ergebnis in ein interpretierbares Ergebnis verwandelt.

2.5.1.4 KombinationenKonvolution und Pooling werden nicht unbedingt nur einmal durchgeführt [LKJ16]:Je mehr Konvolutionsschichten ein Netzwerk hat, desto kompliziertere Bildmerkmale kann das Netz erkennen lernen. Folgt eine weitere Konvolutionsschicht auf eine vorherige, so werden Filter auf „Ergebnis“-Gruppen der vorherigen Merkmalsilter angewendet.Um es anschaulich zu beschreiben, könnte man aus der ersten Konvolutionsschicht auf Kurven prüfen und in der nächsten Schicht auf Halbkreise. So werden die Merkmale immer komplexer, bis ein Merkmal beispielsweise schließlich auch eine Tierpfote sein kann. Merkmale, nach denen gefiltert wird, sind abhängig von den Ausgabe-Kategorien auf die das Netz trainiert wird. Durch die Backpropagation erkennt das Netz, dass einePfote ein Merkmal ist, das bei einem Hund vorkommt. Abb. 2.7 präsentiert immerkomplexer werdende Filterkerne je tiefer das Netzwerk wird.Das Pooling wird so oft durchgeführt, wie oft eine Reduzierung der Datenmenge nötigist. Auch die Kombination Konvolution-Pooling muss nicht zwangsläuig immer vorhandensein. So können auch mehrere Konvolutionsschichten aufeinander folgen bevor einPooling stattindet. Abbildung 2.7: Durch Deconvolution visualisierte Filtermerkmale eines CNNs [ZF13]

2.5.2 Bekannte CNNs

2.5.2.1 AlexNetKrizhevsky, Sutskever und Hinton haben ein „Large, Deep Convolutional Neural Network“mit dem Namen AlexNet [KSH12] erstellt, das 2012 die ImageNet Large-ScaleVisual Recognition Challenge (ILSVRC) gewann (näheres zu ILSVRC, siehe Kapitel3.2). Zu diesem Zeitpunkt war ihr Netzwerk das erste CNN, das die besten Resultateerzielen konnte im Hinblick auf die Top 5 Fehlerrate. Diese Fehlerrate gibt an, mit welcherWahrscheinlichkeit die korrekte Kategorie der Bilder in den ersten fünf erkanntenKategorien liegt, die das Netz für ein Bild am wahrscheinlichsten ansieht. Diese lag bei15,4%. Da der nächstbeste Mitbewerber bei einer Fehlerrate von 26,2% lag, war dieComputer Vision Community sichtlich erstaunt. Ab diesem Zeitpunkt waren CNNs insolchen Wettbewerben ein bekannter Begrif. Abbildung 2.8: Architektur des CNN AlexNet [KSH12] 2.5.2.2 VGG NetVGG Net wurde 2014 entwickelt [SZ14]. Mit einer Fehlerrate von 7,3% bauten KarenSimonyan und Andrew Zisserman ein zwar einfaches, aber tiefes Netz.VGG Net ist eines der einlussreichsten Netze, da es ausdrücklich betont, das CNNstiefe Schichten haben müssen, damit sie funktionieren können.Abbildung 2.9: Architekturen des CNN VGG mit D als erfolgreichstes Netz[SZ14]

2.5.2.3 GoogLeNetSo sehr VGG Net auf Einfachheit setzt, so wenig tut dies der 2014 ILSVRC Gewinner GoogLeNet. GoogLeNet ist ein 22-Schichten-CNN mit einer Fehlerrate von 6,7%. Es war zu dieser Zeit eines der ersten CNNs das von dem Ansatz abgewichen ist, alle Schichten sequenziell aufeinander aufzubauen. In GoogLeNet gibt es Elemente, die parallel ablaufen (Inception Module) [Sze+15]. Abbildung Abbildung 2.10: GoogleNet Architektur [Sze+15]2.5.2.4 Microsoft ResNetMicrosoft ResNet [Gir+13], erstellt von Microsoft Research Asia, gewann 2015 die ILSVRC mit einer Fehlerrate von 3,6%. Es hat 152 Schichten und setzt neue Maßstäbe in Bezug auf Klassiikation, Erkennung und Lokalisierung. Abbildung 2.11: ResNet Architektur [He+15]2.5.2.5 Region Based CNNsRoss Girshick und seine Gruppe haben mit ihrem R-CNN einen großen Fortschritt erzielt [Gir+13]. R-CNN legen verschiedene Boxen über alle Objekte, die auf einem Bild zu sehen sind. Dabei kann man diesen Prozess in zwei allgemeine Komponenten teilen:den Region Proposal Step und den Klassiizierungs-Schritt. Im Region Proposal Step wird die Selective Search Method angewandt, um 2000 verschiedene Regionen zu inden, die eine hohe Wahrscheinlichkeit haben, ein Objekt zu beinhalten. Diese Regionen werden dann so verzerrt, dass sie als Input für ein trainiertes CNN (wie AlexNet) dienen können. Dieses CNN generiert einen Merkmalsvektor für jede Region, der als Input für einen ganzen Satz von trainierten Support Vecor Machines (SVMs) dient. Außerdemwird der Vektor in einen Bounding Box Regressor gespeist, um genaue Koordinaten zu erhalten. Zu erwähnen ist noch, dass eine Nicht-Maximum Unterdrückung benutzt wird, um Bounding Boxen zu unterdrücken, die sich sichtlich überlappen.Dieses Netz ist deshalb so wichtig, da es neben der Erkennung eines Objekts auf einem Bild, auch dessen genaue Position ermittelt. Abbildung 2.12: Prinzip eines R-CNN [Gir+13]2.5.3 Aktueller Stand (Jan. 2017)Große Bilder-Datenbanken, die als Input für das Training herangezogen werden können, sind sehr attraktiv für das Arbeiten mit CNN (näheres im Kapitel 3.1). Im Laufe der Zeit entstanden große Datensätze und Bestehende wurde erweitert. Dies und Optimierungen von Graikkarten und der Hardware im Allgemeinen hat die Forschung schnell vorangetrieben. Der Trend geht zu immer tieferen CNNs, die große Trainingsdatensätze verlangen und hohe Rechenpower wurde möglich durch eben diese Entwicklungen [Gu+15]Laut [LKJ16] geht der Trend von CNN geht über zu kleineren Filtern. Außerdem wird mit Topologien experimentiert, die gänzlich auf Pooling- und Fully-Connected-Schichten verzichten und sie durch Konvolutionsschichten ersetzen.

Ende des Auszugs