Beruflich Dokumente
Kultur Dokumente
Wintersemester
2015/16
Noshaba Cheema
Inhaltsverzeichnis
1. Beschreibung des Umfeldes....................................................................................................2
2. Aufgabe...................................................................................................................................3
2.1 Peripheres Sehen..............................................................................................................3
2.2 Konkrete Aufgaben...........................................................................................................4
3. Lsungsmglichkeiten............................................................................................................5
3.1 Mglichkeiten zur texturartigen Reprsentation..............................................................5
3.2 Bisheriges Peripherie Modell von Rosenholtz.................................................................6
3.3 Einfhrung in Neuronale Netze........................................................................................7
4. Lsungskonzept......................................................................................................................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. Ausgewhlte Realisierungsanstze.......................................................................................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 Abkrzungsverzeichnis..................................................................................................19
8. Literatur- und Quellenverzeichnis.........................................................................................20
8.1 Literaturquellen..............................................................................................................20
8.2 Internetquellen................................................................................................................22
Noshaba Cheema
Noshaba Cheema
2. Aufgabe
Meine Aufgabe beinhaltete die Modellierung der peripheren Darstellung im visuellen System
mithilfe eines Knstlichen 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 knnen. 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 Reprsentation des visuellen Inputs als foveales Sehen.
Informationen erscheinen oft grber in der visuellen Peripherie und es kann zu lokalen
Vertauschungseffekten kommen dem sog. Crowding-Effekt. Als Crowding bezeichnet
man die beeintrchtigte 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 knnen.
Noshaba Cheema
Fig, 1 | Mongrels zur Modellierung des peripheren Sehens von R. Rosenholtz [14]
Noshaba Cheema
3. Lsungsmglichkeiten
Der Crowding-Effekt zeigt, dass die Reduktion von Information in der Peripherie nicht nur
eine Reduktion der Auflsung ist. Ein Ansatz diese Vertauschungseffekte zu modellieren, geht
davon aus, diese als texturartige Reprsentation darzustellen. [24]
3.1 Mglichkeiten zur texturartigen Reprsentation
Generell kann man sagen, dass es zwei Mglichkeiten zur Textur-Generation gibt [9].
Ein Ansatz wre, 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 natrliche Texturen. Sie geben jedoch kein eigentliches Modell fr natrliche
Texturen, sondern vielmehr eine mechanische Prozedur das Originalbild so zu randomisieren
ohne bestimmte Wahrnehmungseigenschaften zu verndern. [9]
Der zweite Ansatz wre 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 Reprsentation zur Textur-Synthese nutzt, knnen verschiedene
Texturen entstehen, die aber dieselben statistischen Ergebnisse liefern [9]. Konzeptuell wurde
diese Idee bereits von Julesz in 1962 vorgestellt [13].
In den nchsten Jahren, wurden solche Textur-Modelle vom visuellen System des Sugetiers
inspiriert von dem man ausgeht, dass es Gabor-Filter hnliche lineare Filterantworten nutzt.
Diese Textur-Modelle bilden dann die Textur-Reprsentation auf diesen Filterantworten. Ein
solches Textur-Modell wurde beispielsweise von Portilla und Simoncelli vorgestellt [21],
welches als eines der besten parametrischen Modelle fr Textur-Synthese gilt [9].
Dieses wurde als Basis fr 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
sorgfltig
ausgesuchte
und
selbst
designte
Parameter
zur
Erstellung
von
Noshaba Cheema
Fig, 2 | Texture-Tiling Model von Rosenholtz mit den innerhalb der Pooling
Regionen gebildeten Statistiken [38]
Noshaba Cheema
mglichst
minimiert
wird.
Das
geschieht
hufig
durch
ein
Gradientenabstiegsverfahren. [23]
Ein Convolutional Neural Network ist dabei eine spezielle Form eines Knstlichen
Neuronalen Netzes. Ein klassisiches KNN besteht aus Fully-Connected Layern, wo jeder
Output des vorherigen Layers an jedes Neuron des nchsten Layers bergeben wird. Bei der
allgemeinen Definition eines CNNs, wird dagegen nicht jeder Output zu jedem Neuron des
nchsten Layers als Input bergeben. Oft wird jedoch eine Faltung (engl. Convolution)
durchgefhrt, woher der Name stammt. Bei einer Faltung wird eine gewichtete Summe ber
ein bestimmtes Fenster gebildet. Die Gre 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]
Fr die Aufgabe sollte ein trainiertes CNN verwendet werden, da diese in den letzten paar
Jahren bereits groe Erfolge im Bereich Objekterkennung erzielt haben. [16, 27, 28]
Noshaba Cheema
4. Lsungskonzept
hnlich wie Gatys et al. nutzen wir die grozgige Anzahl an Featuremaps eines jeden Layers
eines vortrainierten CNNs als nicht-lineare Filterbanken fr die statistische Reprsentation.
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 fr viele Projekte der aktuellen Forschung im Bereich Deep Learning [9].
Die periphere Reprsentation modellierten wir ebenfalls ber ein Texture-Tiling Model
(Figure 3). Die Statistiken wurden dann innerhalb der Pooling-Regionen des Texture-Tiling
Models gebildet.
Noshaba Cheema
Die Faltungskerne hatten dabei nur eine Gre von 33k , wobei k die Anzahl der
Feature Maps ist. Stride1 und Padding2 wurden dabei auf 1 gewhlt, wodurch die Output
Featuremaps3 dieselben rumlichen Dimensionen besitzen wie die Input Featuremaps. Das
Netz nutzt Max-Pooling4 ber nicht berlappenden Regionen mit einer Gre von 22
Pixel, wodurch die Featuremaps auf die Hlfte der wichtigeren Feature heruntergebrochen
werden. Mit dieser Konfiguration konnten sie 2014 die Pltze 1 und 2 an der ImageNet LargeScale 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 knnen, der berall differenzierbar ist. Dadurch erhielten sie etwas sauberere
Resultate als mit Max-Pooling. Aus praktischen Grnden 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 groen 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 ForwardPass eines des CNNs extrahiert und auf ihnen eine statistische Reprsentation gebildet. [9]
Im nchsten Schritt wird dasselbe mit einem Weirauschbild gemacht. Auf die statistische
Reprsentation
des
Originalbildes
und
des
Weirauschbildes
wird
dann
das
1
2
3
4
5
Noshaba Cheema
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 sorgfltig ausgesuchten Statistiken zu berechnen [26]. Im
Gegensatz dazu verwenden Gatys et al. die grozgige 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].
10
Noshaba Cheema
wo Fljk die Aktivierung des Filters j an der Stelle k im Layer l ist, speichern. Um aus
dieser Matrix eine Textur-Reprsentation zu erstellen, muss die rumliche Information des
Bildes verloren gehen. Eine Statistik, die ein solches Verhalten aufweist, erhlt man aus den
Korrelationen zwischen verschiedener Featuremaps eines Layers. [9]
Diese Korrelationen sind gegeben durch die Gram Matrix Gl N N , wo Glij das innere
l
Gij =k F ik F jk
l
(1)
Ein Set aus der Gram Matrix eines jeden Layers 1 bis L beschreibt, dann die Textur
vollstndig. [9]
Um eine neue Textur auf Basis des Originalbildes zu generieren, wird dann das
Gradientenabstiegsverfahren auf ein Weirauschbild angewendet, um ein Bild zu finden, was
der Gram-Matrix und damit der statistischen Reprsentation des Originalbildes, entspricht.
Als Verlustfunktion fr das Gradientenverfahren verwenden Gatys et al. die mittlere
quadratische Abweichung zwischen der Gram-Matrix des Originalbildes und der GramMatrix des generierten Bildes. [9]
Pro Layer sieht diese Gleichung folgenedermaen aus:
El =
1
l
l 2
(G ijG^ ij )
2
2 i , j
4 Nl Ml
(2)
Wobei Glij die Gram-Matrix der Aktivierungen Fl des Originalbildes ist und G^ lij , die der
Aktivierungen des generierten.
Fr die Verlustfunktion des kompletten Netzes ergibt sich dann:
11
Noshaba Cheema
(3)
x ist das vektorisierte Originalbild und ^x das vektorisierte generierte Bild. w l ist die
Gewichtung des Layers, die man dem jeweiligen Layer bei der Rekonstruktion des Bildes
zuschreiben mchte. [9]
Fr den Gradienten, abgeleitet nach den Aktivierungen F^ l ergibt sich:
1
(( F^ ll )T (Gl G^ l)) ji , wenn F^ lij > 0
El
2
2
= Nl M l
F^lij
0, wenn F^lij >0
Der Gradient
(4)
berechnet werden [18]. Als Gradientenabsteigsverfahren wurde wie bei Gatys et al. LBFGS-B genutzt, welches sich besonders gut fr solch ein mehrdimensionales
Optimierungsproblem eignet [32]. Da die gesamte Prozedur auf dem Standard ForwardBackward Pass des Caffe Frameworks beruht [11], wodurch die Vorteile von der GPUBeschleunigung genutzt werden knnen ohne das Netz selbst in CUDA zu implementieren,
knnen diese Texturen im verhltnismig schnell berechnet werden.
4.4 Texture-Tiling Model
Um die Implementierung etwas zu erleichtern, wurden zunchst nur quadratische und nichtberlappende Pooling-Regionen verwendet (Figure 3). Dies hatte den Vorteil, dass man sich
noch nicht Gedanken, um die Berechnung des Gradienten zweier berlappender PoolingRegionen machen musste, aber man trotzdem erkannt hat, wie die greren Pooling-Regionen
den Crowding-Effekt verstrken, da sie mehr Vertauschungen innerhalb der jeweiligen
Pooling-Region erlauben.
Die Statistiken innerhalb der Pooling-Regionen wurden zunchst 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.
12
Noshaba Cheema
Da die Filterkerne in den Layern pool2-4 auch nicht mehr den V1-Filtern im primren
visuellen Cortex entsprechen, ist dieses Modell auch keine Reprsentation des frhen
visuellen Systems mehr, weshalb man zu gute Ergebnisse erzielt und das Originalbild fast
vollstndig rekonstruiert (Figure 5, Mitte). Rekonstruiert man nur aus dem ersten Layer
(conv1_1) sind die Ergebnisse hingegen etwas sehr schlecht (Figure 5, rechts).
Es ist allerdings auch nicht nachgewiesen, dass der Crowding-Effekt im frhen 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 Reprsentation zu
erzeugen und die Ergebnisse erscheinen berzeugend, aber es ist nicht klar, warum gerade
dieser Level des visuellen Systems der geeignetste ist fr solche eine Reprsentation bzw.
warum gerade das statistische Poolen direkt nach dem primren visuellen Cortex stattfinden
sollte.
Textur-Rekonstruktionen aus nur einem Layer (Figure 6, links) zeigen, dass die generelle
Meinung, dass statistische Reprsentationen am ehesten nach dem V1-Level stattfinden,
womglich nicht zutreffend sind und intermedire Layer womglich besser dazu geeignet
wren. Allerdings ist noch unklar, ob dieser Effekt nur auf die kleine Faltungskerngre des
VGG-19 Netzes zurck zu fhren 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 mssen auch berlappende und am besten ellipsoide Pooling Regionen siehe
Rosenholtz mit in Betracht gezogen werden.
13
Noshaba Cheema
Fig, 6 | Texture-Rekontruktionen (links) und Mongrel-Rekonstruktionen (rechts) aus nur jeweils einem
Layer des VGG-19 Layer Netzes
14
Noshaba Cheema
5. Ausgewhlte Realisierungsanstze
5.1 Framework
Als Framework wurde Caffe [11] vom Berkeley Vision and Learning Center verwendet, da fr
das Framework viele bereits vortrainierte Netze zur Verfgung gestellt werden [39].
Caffe ist ein Open Source Framework [43] fr Deep Learning und findet vor allem in der
Industrie und Forschung Verwendung [9, 10, 20, 27]. Es wird vormals dafr verwendet eigene
KNNs zu erstellen mithilfe der bereits zur Verfgung 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, whrend die GPU-Methode
optional ist. Diese muss ber CUDA C implementiert werden [40].
Fr die Aufgabe das Periphere-Modell zu simulieren war das Implementieren eines neuen
Layers in der C++-API von Caffe nicht unbedingt ntig.
Die Implementierung des statistischen Poolings wurde zunchst in PyCaffe dem PythonInterface von Caffe implementiert. Eine komplette Implementierung in C++ und CUDA soll
jedoch noch fr eine Performance-Verbesserung gemacht werden, war aber noch auerhalb
des Rahmens des Praktikums.
15
Noshaba Cheema
man
die
periphere
Reprsentation
rekonstruieren
wollte,
wurden
die
16
Noshaba Cheema
17
Noshaba Cheema
6.2 Reflektion
Das Praktikum lieferte gute Einblicke in den Alltag von Wissenschaftlern. Da sich die
Wissenschaft oft mit Dingen beschftigt, die weitgehend ununtersucht sind bzw. noch weiter
untersucht werden mssen, 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 gehren
wird.
Da es in den vergangenen Jahren einen Hype um neuronale Netze durch die mit dem
Menschen konkurrenzfhigen 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 Mglichkeit 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 verhltnismig kurzer Zeit berechnet werden konnten.
18
Noshaba Cheema
7. Anhang
7.1 Abbildungsverzeichnis
Fig. 1 | Mongrels zur Modellierung des peripheren Sehens von R. Rosenholtz [14]
Fig, 2 | Texture-Tiling Model von Rosenholtz mit den innerhalb der Pooling
Regionen gebildeten Statistiken [38]
Fig. 4 | Textur-Analyse (links) und -Synthese (rechts) von Gatys et al. [9]
10
13
14
7.2 Abkrzungsverzeichnis
AG
Arbeitsgruppe
ANN
BFGS
Broyden-Fletcher-Goldfarb-Shanno
BMW
Bayrische Motorenwerke
BVLC
CNN
CPU
DFKI
GB
Giga Byte
GmbH
GPU
ILSVRC
KNN
L-BFGS-B
RAM
Random-access Memory
TTM
Texture-Tiling Model
VGG
19
Noshaba Cheema
20
Noshaba Cheema
[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. SCHDL, G. TURK (2003): Graphcut Textures: Image and
Video Synthesis Using Graph Cuts
in: ACM Transactions on Graphics (ToG), Volume 22; S. 277 286.
[18] LECUN, Y. A., L. BOTTOU, G. B. ORR, K. R. MLLER (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] PORTILLA, J., E. P. SIMONCELLI (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] SIMONCELLI, E. P., W. T. FREEMAN (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] SZEGEDY, C., W. LIU, Y. JIA, P. SERMANET, S. REED, D. ANGUELOV, D. ERHAN, V. VANHOUCKE,
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.
21
Noshaba Cheema
22