Sie sind auf Seite 1von 23

-Hochschule Bremen-

Praxisbericht

Wintersemester

2015/16

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

von

Noshaba Cheema

Praktikumszeitraum: 01.09.2015 – 31.12.2015

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

Inhaltsverzeichnis

1. Beschreibung des Umfeldes

2

2. Aufgabe

3

2.1 Peripheres Sehen

3

2.2 Konkrete Aufgaben

4

3. Lösungsmöglichkeiten

5

3.1 Möglichkeiten zur texturartigen Repräsentation

5

3.2 Bisheriges Peripherie Modell von Rosenholtz

6

3.3 Einführung in Neuronale Netze

7

4. Lösungskonzept

8

4.1 VGG 19-Layer Netz

8

4.2 Textur-Modell

9

4.3 Textur-Synthese aus einem CNN

11

4.4 Texture-Tiling Model

12

5. Ausgewählte Realisierungsansätze

15

5.1 Framework

15

5.2 Statistisches Pooling

16

6. Zusammenfassung, Ausblick, Reflektion

17

6.1 Zusammenfassung und Ausblick

17

6.2 Reflektion

18

7. Anhang

19

7.1 Abbildungsverzeichnis

19

7.2 Abkürzungsverzeichnis

19

8. Literatur- und Quellenverzeichnis

20

8.1 Literaturquellen

20

8.2 Internetquellen

22

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

1. Beschreibung des Umfeldes

Das Deutsche Forschungszentrum für Künstliche Intelligenz GmbH (DFKI) zählt zu den führenden Forschungseinrichtungen Deutschlands. International gehört das DFKI zu den wichtigsten „Centers of Excellence“ und gemessen an Mitarbeiterzahl und Drittmitteln, das weltweit größte Forschungszentrum im Bereich der Künstlichen Intelligenz. [33] „Die Geschäftsführung [des DFKI] bilden Prof. Dr. Dr. h.c. mult. Wolfgang Wahslter […] und Dr. Walter Olthoff […]“ [33]. Zu den Standorten des DFKI gehören Kaiserslautern, Saarbrücken und Bremen (mit einer Außenstelle in Osnabrück). [33] Zu den Shareholdern des DFKI gehören unter anderem GOOGLE, MICROSOFT, INTEL, BMW, TELEKOM und die FRAUNHOFER Gesellschaft. [35] Das DFKI beschäftigt im Moment 485 Wissenschaftler und 373 Graduierte aus 60 verschiedenen Ländern. Diese entwickeln an etwa 180 verschiedenen Projekten. [34] Das Praktikum wurde zusammen mit der Arbeitsgruppe für Kognitive Neuroinformatik an der Universität Bremen abgehalten. Die Arbeitsgruppe entwickelt „biologisch inspirierte hybride wissensbasierte Systeme […], die neuronale und kognitive Verarbeitungsprozesse integrieren.“ [41]. Sie wird geleitet von Prof. Dr. Kerstin Schill und Dr. Christoph Zetzsche. Zur Zeit beschäftigt die Arbeitsgruppe 10 wissenschaftliche Mitarbeiter und 2 Sekretärinnen. [42] Während meines Praktikums habe ich mit einem UBUNTU LTS 14.3 Rechner gearbeitet mit einem 64GB RAM INTEL XEON Prozessor und einer GEFORCE GTX TITAN mit 6GB Memory. Zusätzlich wurde mir auch auch eine GEFORCE GTX 970 mit 4 GB Memory zur Verfügung gestellt. Als Software habe ich BVLC CAFFE, PYCHARM, NSIGHT ECLIPSE, MATLAB benutzt. Für das Projekt habe ich die Programmiersprachen PYTHON, MATLAB, C++ und CUDA verwendet. Mir wurde außerdem ein eigenes Büro zur Verfügung gestellt. Betreut wurde ich von Prof. Dr. Udo Frese vom DFKI und Dr. Christoph Zetzsche von der AG für Kognitive Neuroinformatik.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

2. Aufgabe

Meine Aufgabe beinhaltete die Modellierung der peripheren Darstellung im visuellen System mithilfe eines Künstlichen Neuronalen Netzes (KNN, engl. „Aritificial Neural Netowrk“, ANN). Speziell, mithilfe eines „Convolutional Neural Networks“ (CNN, dt. „Gefaltetes Neuronales Netz“).

2.1 Peripheres Sehen Unsere Sinne werden mit mehr Information konfrontiert, als wir verarbeiten können. Beim visuellen System des Menschen kann unter bestimmten Bedingungen nur ein winziger Bruchteil der ankommenden sensorischen Information verarbeitet werden.

Dass dem so ist, wird in der Peripherie des menschlichen Auges deutlich. Peripheres Sehen gibt uns eine schlechtere Repräsentation des visuellen Inputs als foveales Sehen. Informationen erscheinen oft gröber in der visuellen Peripherie und es kann zu lokalen Vertauschungseffekten kommen – dem sog. „Crowding“-Effekt. Als Crowding bezeichnet man die beeinträchtigte Erkennung von Objekten in der Peripherie, wenn benachbarte Objekte (auch „Flankers“ genannt) vorhanden sind. Man geht davon aus, dass es zum Crowding-Effekt aufgrund eines Bottlenecks der visuellen Informationen kommt. [1]

Es gibt noch kein Modell, das solche Effekte ausreichend gut modelliert. Ein Model, welches dies versucht, stammt von Ruth Rosenholtz [24]. Allerdings sehen die entstehenden Bilder (von Rosenholtz „Mongrels“ genannt), beispielsweise noch zu verwaschen aus und die Crowding-Effekte tauchen zu sehr im fovealen Bereich auf (Figure 1).

Convolutional Neural Networks kommen unserem visuellen System nahe, wenn es darum geht Objekte zu klassifizieren. Es sollte untersucht werden, ob ein vortrainiertes CNN genutzt werden kann, um solche Crowding-Effekte und die bisher publizierten Mongrels von Rosenholtz gut modellieren zu können.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

2.2 Konkrete Aufgaben Als erstes sollte ich mich mit dem Caffe Framework vom Berkeley Vision and Learning Center vertraut machen, da das verwendete vortrainierte Netz als Caffemodel bereitgestellt wurde. Caffe ist ein Open Source Framework für „Deep Learning“ [11]. Als Deep Learning bezeichnet man maschinelles Lernen mithilfe von tiefer neuronaler Netze. Als tief werden oft Netze bezeichnet, die 7 oder mehr Layer nutzen. Desweiteren sollte ich mich in Rosenholtz' und Gatys et al. Arbeiten einarbeiten, um aus ihnen ein Modell für peripheres Sehen zu implementieren.

ihnen ein Modell für peripheres Sehen zu implementieren. Fig, 1 | Mongrels zur Modellierung des peripheren

Fig, 1 | Mongrels zur Modellierung des peripheren Sehens von R. Rosenholtz [14]

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

3. Lösungsmöglichkeiten

Der Crowding-Effekt zeigt, dass die Reduktion von Information in der Peripherie nicht nur eine Reduktion der Auflösung ist. Ein Ansatz diese Vertauschungseffekte zu modellieren, geht davon aus, diese als texturartige Repräsentation darzustellen. [24]

3.1 Möglichkeiten zur texturartigen Repräsentation Generell kann man sagen, dass es zwei Möglichkeiten zur Textur-Generation gibt [9]. Ein Ansatz wäre, eine Textur durch Resampling von Pixeln [6, 30] bzw. ganzen Stellen [5, 17] des Originals zu erzeugen. Diese nicht-parametrischen Resampling Techniken liefern sehr effizient natürliche Texturen. Sie geben jedoch kein eigentliches Modell für natürliche Texturen, sondern vielmehr eine mechanische Prozedur das Originalbild so zu randomisieren ohne bestimmte Wahrnehmungseigenschaften zu verändern. [9] Der zweite Ansatz wäre explizit ein parametrisches Textur-Modell zu definieren. Solch ein parametrisches Modell nutzt meist statistische Messungen, die über das Bild gebildet wurden. Da man nur die statistische Repräsentation zur Textur-Synthese nutzt, können verschiedene Texturen entstehen, die aber dieselben statistischen Ergebnisse liefern [9]. Konzeptuell wurde diese Idee bereits von Julesz in 1962 vorgestellt [13]. In den nächsten Jahren, wurden solche Textur-Modelle vom visuellen System des Säugetiers inspiriert von dem man ausgeht, dass es Gabor-Filter ähnliche lineare Filterantworten nutzt. Diese Textur-Modelle bilden dann die Textur-Repräsentation auf diesen Filterantworten. Ein solches Textur-Modell wurde beispielsweise von Portilla und Simoncelli vorgestellt [21], welches als eines der besten parametrischen Modelle für Textur-Synthese gilt [9]. Dieses wurde als Basis für die Arbeit „Texture Synthesis Using Convolutional Neural Networks“ von M. Bethge, A. Ecker und L. Gatys in 2015 genutzt, um Texturen aus der Statistik eines neuronalen Netzes zu erzeugen [9]. Im Gegensatz zu Portilla und Simoncelli, die sorgfältig ausgesuchte und selbst designte Parameter zur Erstellung von Häufigkeitsverteilungen verwendeten [22], nutzen Gatys et al. die großzügige Anzahl an Featuremaps eines auf Objekterkennung trainierten CNNs als nicht-lineare Filterbanken, wodurch diese viel bessere Ergebnisse in der Textur-Synthese erzielen konnten als Portilla und Simoncelli [9].

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

3.2 Bisheriges Peripherie Modell von Rosenholtz Die Idee die texturartigen Vertauschungseffekte beim Crowding-Effekt in der visuellen Peripherie durch lokale Statistiken zu modellieren, stammt ursprünglich von Rosenholtz [24]. Dabei nutzte sie für die statistische Repräsentation die sorgfältig ausgesuchten Parameter von Portilla und Simoncelli [22], um Mongrels zu erstellen, nachdem letztere festgestellt hatten, dass statistische Repräsentationen sich gut für eine Textur-Repräsentation eigenen. Die Parameter repräsentieren dabei Verhältnisse zwischen Skalierung, Orientierung und Position [8]. Die Unterteilung in Peripherie und Fovea erzeugt sie über ein „Texture-Tiling Model“ (TTM) (Figure 2). In diesem Model werden unterschiedlich große, überlappende Pooling-Regionen verwendet, die kleiner werden, je näher man an das Zentrum der Fovea gelangt. Die nötigen Statistiken, um dann die Crowding-Effekte zu modellieren, werden dann in den einzelnen Pooling-Regionen gebildet. Diese bestehen aus den Korrelationen der Filterantworten zweiter Ordnung. Dabei werden alle Kombinationen zweier Filterantworten punktweise miteinander multipliziert und über eine Pooling-Region aufsummiert. [24] Dieses Modell, soll das frühe visuelle System und die jeweiligen Prozesse darin repräsentieren, um die Crowding-Effekte zu erläutern. Die gewählten Parameter von Portilla und Simoncelli entsprechen dann den V1-ähnlichen Filtern im primären visuellen Cortex. [24] Dieser ist der einfachste kortikale Bereich des visuelle Cortex und wird vor allem für Mustererkennung verwendet [29].

und wird vor allem für Mustererkennung verwendet [29]. Fig, 2 | Texture-Tiling Model von Rosenholtz mit

Fig, 2 | Texture-Tiling Model von Rosenholtz mit den innerhalb der Pooling Regionen gebildeten Statistiken [38]

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

3.3 Einführung in Neuronale Netze Künstliche Neuronale Netze stellen einen Forschungsgegenstand der Neuroinformatik dar. Sie sind biologisch inspirierte Netzwerke, die multiple komplexe Schichten (auch Layer genannt) aus nicht-linearen Transformationen zur Informationsverarbeitung bzw. zur Modellierung hochrangiger Abstraktionen nutzen. [23] Die Inspiration kommt dabei vom menschlichen Gehirn. Solch ein Netz beinhaltet in jedem dieser Schichten Neuronen mit einer Aktivierungsfunktion, die eine gewichtete Summe als Input erhalten und den Output in den nächsten Layer übergeben. Diesen Vorgang nennt man „Forward-Propergation“. Am Ende der Forward-Propergation bekommt man meist ein Klassifikationsresultat. Um den Fehler des Klassifikationsresultates möglichst gering zu halten, muss das Netz erst mit gelabelten Daten trainiert werden. Dabei wird das Datum als Input erst nach vorne propagiert. Mithilfe einer Verlustfunktion wird dann verglichen wie sehr sich das Klassifikationsresultat vom eigentlichen Label des Inputs unterscheidet. Diese Verlustfunktion kann beispielsweise die mittlere quadratische Abweichung sein. Über die „Back-Propergation“ werden dann die Gewichte im Netz so verändert, dass die Verlustfunktion möglichst minimiert wird. Das geschieht häufig durch ein Gradientenabstiegsverfahren. [23] Ein Convolutional Neural Network ist dabei eine spezielle Form eines Künstlichen Neuronalen Netzes. Ein „klassisiches“ KNN besteht aus „Fully-Connected“ Layern, wo jeder Output des vorherigen Layers an jedes Neuron des nächsten Layers übergeben wird. Bei der allgemeinen Definition eines CNNs, wird dagegen nicht jeder Output zu jedem Neuron des nächsten Layers als Input übergeben. Oft wird jedoch eine Faltung (engl. „Convolution“) durchgeführt, woher der Name stammt. Bei einer Faltung wird eine gewichtete Summe über ein bestimmtes Fenster gebildet. Die Größe bzw. die Elemente des Fensters sind definiert über den Faltungskern. Dann wird das Fenster mit einem bestimmten Abstand („Stride“) weiter bewegt bis man über den gesamten Input des jeweiligen Layers durchgegangen ist. Die Outputs nennt man dann „Feature-Maps“. [37] Für die Aufgabe sollte ein trainiertes CNN verwendet werden, da diese in den letzten paar Jahren bereits große Erfolge im Bereich Objekterkennung erzielt haben. [16, 27, 28]

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

4. Lösungskonzept

Ähnlich wie Gatys et al. nutzen wir die großzügige Anzahl an Featuremaps eines jeden Layers eines vortrainierten CNNs als nicht-lineare Filterbanken für die statistische Repräsentation. Verwendet wurde hierbei das 19-Layer VGG Netz von Karen Simonyan und Andrew Zisserman, welches den ImageNet Wettbewerb im Jahre 2014 gewann [16]. Das Netz ist nun die Basis für viele Projekte der aktuellen Forschung im Bereich Deep Learning [9]. Die periphere Repräsentation modellierten wir ebenfalls über ein Texture-Tiling Model (Figure 3). Die Statistiken wurden dann innerhalb der Pooling-Regionen des Texture-Tiling Models gebildet.

der Pooling-Regionen des Texture-Tiling Models gebildet. Fig, 3 | Texture-Tiling Model ohne Überlappende Pooling

Fig, 3 | Texture-Tiling Model ohne Überlappende Pooling Regionen

4.1 VGG 19-Layer Netz Simonyan und Zisserman von der Visual Geometry Group an der University of Oxford entwickelten das VGG 19-Layer Netz [27]. Das Netz ist ein auf Objekterkennung trainiertes 19 Layer tiefes Convolutional Neural Network. Um die Verbesserung durch die CNN Tiefe fair zu messen, nutzten Simonyan und Zisserman dieselbe Struktur für jeden CNN-Layer. Die Netzarchitektur ist dabei inspiriert von Krizhevsky et al. [16] und Ciresan et al. [3].

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

Die Faltungskerne hatten dabei nur eine Größe von 3 × 3 × k , wobei k die Anzahl der Feature Maps ist. Stride 1 und Padding 2 wurden dabei auf 1 gewählt, wodurch die Output Featuremaps 3 dieselben räumlichen Dimensionen besitzen wie die Input Featuremaps. Das Netz nutzt Max-Pooling 4 über nicht überlappenden Regionen mit einer Größe von 2 × 2 Pixel, wodurch die Featuremaps auf die Hälfte der wichtigeren Feature heruntergebrochen werden. Mit dieser Konfiguration konnten sie 2014 die Plätze 1 und 2 an der ImageNet Large- Scale Visual Recognition Challenge (ILSVRC) in den Kategorien Lokalisierung und Klassifikation belegen. [27]

Im Gegensatz zum offiziellen Netz, was Max-Pooling verwendet, nutzten wir die Variation von Gatys et al., welche das Max-Pooling mit Average-Pooling 5 ersetzte, um einen Gradienten berechnen zu können, der überall differenzierbar ist. Dadurch erhielten sie etwas sauberere Resultate als mit Max-Pooling. Aus praktischen Gründen nahmen sie dann noch eine Normalisierung des Netzes vor, indem sie die Parameter im Netz so skalierten, dass die durchschnittliche Aktivierung eines Filters über die Bilder und Positionen 1 ergibt. [9]

4.2 Textur-Modell Die Textur-Synthese pro Pooling-Region entspricht im großen und ganzen der beschriebenen von Gatys et al. Diese basiert auf das parametrische Textur-Modell von Portilla und Simoncelli [22]. Dabei werden zuerst Feature (Filterantworten) vom Bild durch den Forward- Pass eines des CNNs extrahiert und auf ihnen eine statistische Repräsentation gebildet. [9]

Im nächsten Schritt wird dasselbe mit einem Weißrauschbild gemacht. Auf die statistische Repräsentation des Originalbildes und des Weißrauschbildes wird dann das Gradientenverfahren angewendet, um ein neues Bild zu erhalten, was dieselbe statistische Beschreibung liefert wie das Originalbild. [9]

1 Stride – Abstand in Pixel zum nächsten Zentrum der Faltung

2 Padding – Dicke des Rahmens in Pixeln im Faltungskern, der mit Nullen aufgefüllt werden soll

3 Featuremap – Output eines Layers in einem Neuronalen Netz (bzw. einfach ein gefiltertes Bild)

4 Max-Pooling – Das Maximum wird über eine bestimmte Region gebildet

5 Average-Pooling – Der Durchschnitt wird über eine bestimmte Region gebildet

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

Deutschen Forschungszentrum für Künstliche Intelligenz Fig, 4 | Textur-Analyse (links) und -Synthese (rechts) von

Fig, 4 | Textur-Analyse (links) und -Synthese (rechts) von Gatys et al. [9]

Portilla und Simoncelli nutzten jedoch die Filterantworten ihrer linearen Filterbank namens „Steerable Pyramid“, um ihre sorgfältig ausgesuchten Statistiken zu berechnen [26]. Im Gegensatz dazu verwenden Gatys et al. die großzügige Anzahl an Featuremaps eines jeden Layers eines vortrainierten Convolutional Neural Networks und als einzige Statistik nur die Korrelationen zwischen den einzelnen Filterantworten eines jeden Layers des CNNs [9].

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

4.3 Textur-Synthese aus einem CNN Zunächst werden die Aktivierungen eines vektorisierten Bildes mithilfe des Forward-Passes eines CNNs berechnet. Dabei werden mehrere Faltungskerne pro Layer auf das Bild angewendet, wodurch man die Filterantworten des Bildes erhält (die sogenannten „Featuremaps“) [23]. Ein Layer mit N l Faltungskernen hat N l Featuremaps mit je der

Größe

wo

F

l

jk

M l ,

wenn vektorisiert. Diese Featuremaps kann man in eine Matrix

F l ∈ ℝ N l × M l ,

die Aktivierung des Filters

j

an der Stelle

k

im Layer

l

ist, speichern. Um aus

dieser Matrix eine Textur-Repräsentation zu erstellen, muss die räumliche Information des Bildes verloren gehen. Eine Statistik, die ein solches Verhalten aufweist, erhält man aus den Korrelationen zwischen verschiedener Featuremaps eines Layers. [9]

Diese Korrelationen sind gegeben durch die Gram Matrix

Produkt zwischen Featuremaps

i

und

j

in Layer

l

G

ij

= k F F

l

ik

l

jk

l

ist:

G l N l × N l , wo G

l

ij

das innere

(1)

Ein Set aus der Gram Matrix eines jeden Layers 1 bis L beschreibt, dann die Textur vollständig. [9]

Um eine neue Textur auf Basis des Originalbildes zu generieren, wird dann das Gradientenabstiegsverfahren auf ein Weißrauschbild angewendet, um ein Bild zu finden, was der Gram-Matrix – und damit der statistischen Repräsentation – des Originalbildes, entspricht. Als Verlustfunktion für das Gradientenverfahren verwenden Gatys et al. die mittlere quadratische Abweichung zwischen der Gram-Matrix des Originalbildes und der Gram- Matrix des generierten Bildes. [9]

Pro Layer sieht diese Gleichung folgenedermaßen aus:

Wobei

G

l

ij

E l =

1

4 N 2 M

l

2

l

i , j ( G

die Gram-Matrix der Aktivierungen

^

l G ) 2

ij

l

ij

F l

des Originalbildes ist und

^

G

l

ij

,

(2)

die der

Aktivierungen des generierten. Für die Verlustfunktion des kompletten Netzes ergibt sich dann:

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

^

( x , x ) =

L

l

= 0

w l E l

 

^

x

ist das vektorisierte Originalbild und

x

das vektorisierte generierte Bild.

w l

(3)

ist die

Gewichtung des Layers, die man dem jeweiligen Layer bei der Rekonstruktion des Bildes

zuschreiben möchte. [9]

Für den Gradienten, abgeleitet nach den Aktivierungen

^

F l

ergibt sich:

Der

Gradient

{

}

1

^

^

^

^

∂ ⃗x

E l

^

F

l

ij

=

2 ( ( l ) T ( G l G l ) ) ji , wenn F > 0

F

l

l

ij

l

^

l

0, wenn F > 0

ij

kann

dann

über

die

^

N 2 M

l

 

^

für ℒ ( ⃗x ,

x )

Backpropergation

des

(4)

Netzes

berechnet werden [18]. Als Gradientenabsteigsverfahren wurde – wie bei Gatys et al. – L-

BFGS-B genutzt, welches sich besonders gut für solch ein mehrdimensionales

Optimierungsproblem eignet [32]. Da die gesamte Prozedur auf dem Standard Forward-

Backward Pass des Caffe Frameworks beruht [11], wodurch die Vorteile von der GPU-

Beschleunigung genutzt werden können ohne das Netz selbst in CUDA zu implementieren,

können diese Texturen im verhältnismäßig schnell berechnet werden.

4.4 Texture-Tiling Model

Um die Implementierung etwas zu erleichtern, wurden zunächst nur quadratische und nicht-

überlappende Pooling-Regionen verwendet (Figure 3). Dies hatte den Vorteil, dass man sich

noch nicht Gedanken, um die Berechnung des Gradienten zweier überlappender Pooling-

Regionen machen musste, aber man trotzdem erkannt hat, wie die größeren Pooling-Regionen

den Crowding-Effekt verstärken, da sie mehr Vertauschungen innerhalb der jeweiligen

Pooling-Region erlauben.

Die Statistiken innerhalb der Pooling-Regionen wurden zunächst über dieselben Layer des

VGG 19-Layer Netzes berechnet wie bei Gatys et al. [9]. Das sind die Layer „conv1_1“,

„pool1“, „pool2“, „pool3“ und „pool4“.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

Da die Filterkerne in den Layern pool2-4 auch nicht mehr den V1-Filtern im primären visuellen Cortex entsprechen, ist dieses Modell auch keine Repräsentation des frühen visuellen Systems mehr, weshalb man zu gute Ergebnisse erzielt und das Originalbild fast vollständig rekonstruiert (Figure 5, Mitte). Rekonstruiert man nur aus dem ersten Layer (conv1_1) sind die Ergebnisse hingegen etwas sehr schlecht (Figure 5, rechts).

Ergebnisse hingegen etwas sehr schlecht (Figure 5, rechts). Fig, 5 | Von Links nach Rechts: Original,

Fig, 5 | Von Links nach Rechts: Original, 5-Layer-Mongrel-Rekonstruktion, Conv1_1-Mongrel Rekonstruktion

Es ist allerdings auch nicht nachgewiesen, dass der Crowding-Effekt im frühen visuellen System entstehen muss. In den existierenden Modellen wie „Histogram of Oriented Gradients“ (HOG) [4], „Scale-Invariant Feature Transform“ (SIFT) [18] oder „Textons“ [13] werden zwar der primitive V1-Featurespace verwendet, um eine statistische Repräsentation zu erzeugen und die Ergebnisse erscheinen überzeugend, aber es ist nicht klar, warum gerade dieser Level des visuellen Systems der geeignetste ist für solche eine Repräsentation bzw. warum gerade das statistische Poolen direkt nach dem primären visuellen Cortex stattfinden sollte.

Textur-Rekonstruktionen aus nur einem Layer (Figure 6, links) zeigen, dass die generelle Meinung, dass statistische Repräsentationen am ehesten nach dem V1-Level stattfinden, womöglich nicht zutreffend sind und intermediäre Layer womöglich besser dazu geeignet wären. Allerdings ist noch unklar, ob dieser Effekt nur auf die kleine Faltungskerngröße des VGG-19 Netzes zurück zu führen ist.

Figure 6 (rechts) zeigt die Rekonstruktion der Peripherie aus jeweils nur einem Layer. Aus welchem bzw. welchen Layer(n) man nun am besten diese periphere Darstellung erzeugen sollte, muss noch ermittelt werden. Rein optisch scheinen „pool2“ und/oder „pool3“ am passendsten.

Zudem müssen auch überlappende und am besten ellipsoide Pooling Regionen – siehe Rosenholtz – mit in Betracht gezogen werden.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

Deutschen Forschungszentrum für Künstliche Intelligenz Fig, 6 | Texture-Rekontruktionen (links) und

Fig, 6 | Texture-Rekontruktionen (links) und Mongrel-Rekonstruktionen (rechts) aus nur jeweils einem Layer des VGG-19 Layer Netzes

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

5. Ausgewählte Realisierungsansätze

5.1 Framework Als Framework wurde Caffe [11] vom Berkeley Vision and Learning Center verwendet, da für das Framework viele bereits vortrainierte Netze zur Verfügung gestellt werden [39].

Caffe ist ein Open Source Framework [43] für Deep Learning und findet vor allem in der Industrie und Forschung Verwendung [9, 10, 20, 27]. Es wird vormals dafür verwendet eigene KNNs zu erstellen mithilfe der bereits zur Verfügung gestellten Arten von Layern oder eigener C++ Implementierungen von benutzerdefinierten Layern. Ein benutzerdefinierter Layer implementiert die Klasse „Layer“, die jeweils eine „Forward“- und eine „Backward“-Methode implmentiert haben muss. Jeder dieser Methoden ist noch unterteilt in eine CPU- und eine GPU-Variante der Methode. Die CPU-Methode ist Pflicht, während die GPU-Methode optional ist. Diese muss über CUDA C implementiert werden [40].

Für die Aufgabe das Periphere-Modell zu simulieren war das Implementieren eines neuen Layers in der C++-API von Caffe nicht unbedingt nötig.

Die Implementierung des statistischen Poolings wurde zunächst in PyCaffe – dem Python- Interface – von Caffe implementiert. Eine komplette Implementierung in C++ und CUDA soll jedoch noch für eine Performance-Verbesserung gemacht werden, war aber noch außerhalb des Rahmens des Praktikums.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

5.2 Statistisches Pooling Das Statistische Pooling wurde in PyCaffe implementiert. Dazu wurde zunächst das normalisierte Caffe-Modell [36] von Gatys et al. und das jeweilige Bild wovon die periphere Darstellung erstellt werden sollte in das PyCaffe-Interface geladen. Danach wurde das Bild mithilfe des TTMs unterteilt wie in Figure 3. Für jede dieser Pooling-Regionen wurden dann mithilfe des Forward-Passes die benötigten Filterantworten berechnet. Aus den Layern aus denen man die periphere Repräsentation rekonstruieren wollte, wurden die korrespondierenden Gram-Matritzen pro Pooling-Region berechnet. Diese sind dann die „Targets“ für das Gradientenabstiegsverfahren. Als Gradientenabstiegsverfahren wurde L- BFGS-B verwendet, da es besonders gut mit mehrdimensionalen Optimierungsproblemen umgehen kann [32]. Das Gradientenverfahren muss dann ein Bild aus einem Weißrauschbild finden, was möglichst dieselbe lokalen Gram-Matritzen – und damit Statistiken – liefert wie das Original. Dabei muss die Verlustfunktion in (3) pro Pooling-Region minimiert werden. Die Gesamt-Verlustfunktion mit dem TTM, die sich damit ergibt, ist dann einfach die Summe der Verlustfunktionen aller Pooling-Regionen. Dies ist dann die Funktion, die schlussendlich minimiert wird. Der Gradient dieser Verlustfunktion entspricht dann der Summe der Gradienten aller Pooling-Regionen, wobei diese die Größe des Inputbildes haben und die Stellen, die nicht zur jeweiligen Pooling-Region gehören mit Zero-Padding aufgefüllt wurden.

Der Gradient, der pro Pooling-Region berechnet werden muss, wurde aus dem Backward-Pass des vortrainierten VGG-Netzes über das Caffe-Interface berechnet.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

6. Zusammenfassung, Ausblick, Reflektion

6.1 Zusammenfassung und Ausblick

Wir haben ein parametrisches Modell zur Synthese von Mongrels erstellt, welches auf den lokalen Statistiken der Featuremaps eines High-Performance Deep Convolutional Neural Networks basiert.

In den letzten Jahren haben biologisch inspirierte Textur-Modelle neue Analysemodelle für

das Untersuchen der visuellen Wahrnehmung geliefert. Besonders das Textur-Modell von

Portilla und Simoncelli [22] hat eine große Anzahl an neurowissenschaftlichen und

psychophysikalischen Studien vorangetrieben [1, 25, 7, 8, 21].

Unser Modell basiert auf das Textur-Modell von Gatys et al. [9], welches ein tiefes CNN nutzt.

Diese sind die ersten künstlichen Systeme, die dazu in der Lage sind, gegen den Menschen in

bestimmten Aufgaben wie Objekterkennung konkurrenzfähig zu sein bzw. sogar zu schlagen

[16, 27, 28]. Ihre hierarchische Struktur und die simplen Berechnungen innerhalb einzelner

Neuronen ähneln fundamental realen neuronalen Systemen [23]. Mit der zunehmenden

Evidenz für die Ähnlichkeit der Repräsentation in CNNs und dem ventralen visuellen System

[30, 2, 15], macht es neuronale Netze relevante Kandidaten, um die visuellen

Verarbeitungsprozesse im Gehirn zu untersuchen [9].

Die von uns erstellten Bilder zeigen qualitativ eine deutliche Verbesserung auf zu den bisher

publizierten Bildern von Rosenholtz [14], auch wenn unser Modell noch keine überlappenden

Pooling-Regionen nutzt.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

6.2 Reflektion

Das Praktikum lieferte gute Einblicke in den Alltag von Wissenschaftlern. Da sich die Wissenschaft oft mit Dingen beschäftigt, die weitgehend ununtersucht sind bzw. noch weiter untersucht werden müssen, konnten man mir nicht immer mit Problemen behilflich sein. Dadurch konnte ich allerdings lernen eigenverantwortlich zu arbeiten und mich in mir noch unbekannte Dinge einzulesen, was in einem Fach wie Informatik wohl zum Alltag gehören wird.

Da es in den vergangenen Jahren einen Hype um neuronale Netze durch die mit dem

Menschen konkurrenzfähigen Objekterkennung [16, 27, 28] und durch Applikationen wie Googles „Deep Dream“ [20] oder Gatys et al. „A Neural Algorithm of Artistic Style“ [10] gab, hatte ich die Möglichkeit mich in den aktuellsten wissenschaftlichen Arbeiten im Bereich Neuroinformatik und Machine Learning einzuarbeiten, die zum Teil seit ihrer Publikation nicht einmal ein Jahr alt waren.

Zudem wurde mir gute Hardware bereitgestellt, sodass die rechenintensiven Operationen auch in verhältnismäßig kurzer Zeit berechnet werden konnten.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

7. Anhang

7.1 Abbildungsverzeichnis

Fig. 1 | Mongrels zur Modellierung des peripheren Sehens von R. Rosenholtz [14]

4

Fig, 2 | Texture-Tiling Model von Rosenholtz mit den innerhalb der Pooling Regionen gebildeten Statistiken [38]

6

Fig, 3 | Texture-Tiling Model ohne Überlappende Pooling Regionen

8

Fig. 4 | Textur-Analyse (links) und -Synthese (rechts) von Gatys et al. [9]

10

Fig. 5 | Von Links nach Rechts: Original, 5-Layer-Mongrel-Rekonstruktion, Conv1_1-Mongrel Rekonstruktion

13

Fig. 6 | Texture-Rekontruktionen (links) und Mongrel-Rekonstruktionen (rechts) aus nur jeweils einem Layer des VGG-19 Layer Netzes

14

7.2 Abkürzungsverzeichnis

AG

Arbeitsgruppe

ANN

Artificial Neural Network

BFGS

Broyden-Fletcher-Goldfarb-Shanno

BMW

Bayrische Motorenwerke

BVLC

Berkeley Vision and Learning Center

CNN

Convolutional Neural Network

CPU

Central Processing Uni

DFKI

Deutsches Forschungszentrum für Künstliche Intelligenz

GB

Giga Byte

GmbH

Gesellschaft mit beschränkter Haftung

GPU

Graphics Processing Unit

ILSVRC

ImageNet Large-Scale Visual Recognition Challege

KNN

Künstliches Neuronales Netz

L-BFGS-B

Limited-memory BFGS with bound constraints

RAM

Random-access Memory

TTM

Texture-Tiling Model

VGG

Visual Geometry Group

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

8. Literatur- und Quellenverzeichnis

8.1 Literaturquellen

[1] BALAS, B., L. NAKANO, R. ROSENHOLTZ (2009): A Summary-Statistic Representation in Peripheral Vision Explains Visual Crowding in: Journal of Vision, 9(12): 13. [2] CADIEU, C. F., H. HONG, D. L. K. YAMINS, N. PINTO, D. ARDILA, E. A. SOLOMON, N. J. MIJAJ, J. J. DICARLO (2014): Deep Neural Networks Rival the Representation of Primate IT Cortex for Core Visual Object Recognition in: PLoS Comput Biol, 10(12): e1003963. [3] CIRESAN, D. C., G. CORRADO, R. MONGA, K. CHEN, M. DEVIN, M. MAO, M. RANZATO, A. S ENIOR , P. T UCKER , K. Y ANG , Q. V. L E , A. Y. N G (2011): Flexible, High Performance Convolutional Neural Networks for Image Classification in: IJCAI; S. 1237 – 1242. [4] DALAL, N., B. TRIGGS (2005): Histogram of Oriented Gradients for Human Detection in: Conference on Computer Vision and Pattern Recognition. [5] E FROS , A. A., W. T. F REEMAN (2001): Image Quilting for Texture Synthesis and Transfer in: Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques; S. 341 – 346. [6] E FROS, A., T. K. L EUNG (1999): Texture Synthesis by Non-Parametric Sampling in: Computer Vision, 1999. The Proceedings of the Seventh IEEE International Conference on, Volume 2; S. 1033 – 1038. [7] F REEMAN, J., E. P. S IMONCELLI (2011): Metamers of the Ventral System in: Nature Neroscience, 14(9); S. 1195 – 1201. [8] FREEMAN, J., C. M. ZIEMBA, D. J. HEEGER, A. J. MOVSHON (2013): A Functional and Perceptual Signature of the Second Visual Area in Primates in: Nature Neroscience, 16(7); S. 974 – 981. [9] GATYS, L. A., M. BETHGE, A. S. ECKER (2015): Texture Synthesis Using Convolutional Neural Networks in: Neural Information Processing Systems 2015. [10] GATYS, L. A., A. S. ECKER, M. BETHGE (2015): A Neural Algorithm of Artistic Style in: arXiv: 1508.06576v2 [cs]. [11] JIA, Y., E. SHELHAMER, J. DONAHUE et al. (2014): Caffe: Convolutional architecture for fast feature embedding in: Proceedings of the ACM International Conference on Multimedia; S.675 – 678. [12] JULESZ, B. (1962): Visual Pattern Discrimination in: IRE Transaction on Information Theory, Volume 8, Issue 2. [13] JULESZ, B. (1981): Textons, the Elements of Texture Perception, and Their Interactions in: Nature 290; S. 91 – 97. [14] KESHVARI, S., R. ROSENHOLTZ (2016): Pooling of Continuous Features Provides a Unifying Account of Crowding in: Journal of Vision, 16(3): 39.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

[15] KHALIGH-RAZAVI, S., N. KRIEGESKORTE (2014): Deep Supervised, but Not Unsupervised, Models may Explain IT Cortical Representation in: PLoS Comput Biol, 10(11): e1003915. [16] KRIZHEVSKY, A., I. SUTSKEVER, G. E. HINTON (2012): ImageNet Classification with Deep Convolutional Neural Networks in: Advances in Neural Information Processing Systems 27; S. 1097 – 1105. [17] KWATRA, V., A. BOBICK, I. ESSA, A. SCHÖDL, G. TURK (2003): Graphcut Textures: Image and Video Synthesis Using Graph Cuts in: ACM Transactions on Graphics (ToG), Volume 22; S. 277 – 286. [18] L E C UN , Y. A., L. B OTTOU , G. B. O RR , K. R. M ÜLLER (2012): Efficient Backprop in: Neural Networks: Tricks of the Trade; Springer, S. 9 – 48. [19] LOWE, D. G. (1999): Object Recognition from Local Scale-Invariant Features in: International Conference on Computer Vision; S. 1150 – 1157. [20] MORDVINTSEV, A., C. OLAH, M. TYKA (2015): Inceptionism: Going Deeper into Neural Networks in: Google Research Blog. [21] OKAZAWA, G., S. TAJIMA, H. KOMATSU (2015): Image Statitics Underlying Natural Texture Selectivity of Neurons in Macaque V4 in: PNAS, 112(4): E351 – E360. [22] P ORTILLA, J., E. P. S IMONCELLI (2000): A Parametric Texture Model Based on Joint Statistics of Complex Wavelet Coefficients in: International Journal of Computer Vision, Volume 40, Issue 1; S. 49 – 70. [23] ROJAS, R. (1996): Neural Networks – A Systematic Introduction Berlin: Springer-Verlag. [24] ROSENHOLTZ, R. (2011): What Your Visual System Sees When You Are Not Looing in: Proc. SPIE Vol. 7865, Human Vision and Electronic Imaging XVI, 786510. [25] ROSENHOLTZ, R., J. HUANG, A. RAJ, B. J. BALAS, L. ILIE (2012): A Summery Statistic Representation in Peripheral Vision Explains Visual Search in: Journal of Vision, 12(4): 14. [26] S IMONCELLI, E. P., W. T. F REEMAN (1995): The Steerable Pyramid: A Flexible Architecture for Multi-Scale Derivative Computation in: Image Processing, International Conference on, Volume 3; S. 3444. [27] SIMONYAN, K, A. ZISSERMAN (2014): Very Deep Convolutional Networks for Large-Scale Image Recognition in: arXiv: 1409.1556 [cs].

[28] S ZEGEDY , C., W. L IU , Y. J IA , P. S ERMANET , S. R EED , D. A NGUELOV , D. E RHAN , V. V ANHOUCKE ,

A. RABINOVICH (2014): Going Deeper with Convolutions in: arXiv: 1409.4842 [cs]. [29] TONG, F. (2003): Primary Visual Cortex and Visual Awareness in: Nature Reviews, Neuroscience; S. 219 – 229. [30] WEI, L., M. LEVOY (2000): Fast Texture Synthesis using Tree-Structured Vector Quatization. in: Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques; S. 479 – 488.

Noshaba Cheema

Praxissemester beim Deutschen Forschungszentrum für Künstliche Intelligenz

[31] Y AMINS, D. L. K., H. H ONG, C. F. CADIEU, E. A. S OLOMON, D. S EIBERT, J. J. D ICARLO (2014):

Performance-Optimized Hierarchical Models Predict Neural Responses in Higher Visual Cortex in: PNAS; S. 201403112. [32] Z HU, C., R. H. B YRD, P. L U, J. N OCEDAL (1997): Algorithm 778: L-BFGS-B: Fortran subroutines for large-scale bound-constrained optimization in: ACM Transactions on Mathematical Software (TOMS), 23(4); S. 550 – 560.

8.2 Internetquellen

[33] DFKI GMBH (2016): http://www.dfki.de/web Letzter Zugriff: 27.02.2016. [34] DFKI GMBH (2016): http://www.dfki.de/web/about Letzter Zugriff: 27.02.2016. [35] DFKI GMBH (2016): http://www.dfki.de/web/about/shareholders Letzter Zugriff: 27.02.2016. [36] GATYS, L. A., A. S. ECKER, M. BETHGE (2015): http://bethgelab.org/media/uploads/ deeptextures/vgg_normalised.caffemodel Letzter Zugriff: 01.03.2016. [37] KAPATHY, A. (2016): http://cs231n.github.io/convolutional-networks/ Letzter Zugriff: 27.02.2016. [38] KESHVARI, S., R. ROSENHOLTZ (2015): http://www.shaiyan.com/uploads/2/0/4/6/20461208/ crowding_with_informative_flankers.pdf Letzter Zugriff: 27.02.2016. [39] SHELHAMER, E. et al. (2016): https://github.com/BVLC/caffe/wiki/Model-Zoo Letzter Zugriff: 27.02.2016. [40] SHELHAMER, E. et al. (2016): https://github.com/BVLC/caffe/wiki/Development Letzter Zugriff: 27.02.2016. [41] UNIVERSITÄT BREMEN (2016): http://www.informatik.uni-bremen.de/cog_neuroinf/de Letzter Zugriff: 27.02.2016. [42] UNIVERSITÄT BREMEN (2016): http://www.informatik.unibremen.de/cog_neuroinf/de/ mitarbeitende Letzter Zugriff: 01.03.2016. [43] YANGING, J., E. SHELHAMER et al. (2016): http://caffe.berkeleyvision.org/ Letzter Zugriff: 01.03.2016.