Einführung in Convolutional Neural nets

Created by @ShirinGlander

codecentric.ai

BOOTCAMP

Wie lernen

Computer sehen?

Wie sieht der Computer ein Bild?

Mit Deep Learning & Neuronalen Netzen ergeben sich neue Möglichkeiten

Convolutional

Neural Nets

CNNs oder ConvNets

  • Sind eine spezielle Art von neuronalen Netzen
  • Funktionieren ähnlich wie das rezeptive Feld im menschlichen Auge

Array-Repräsentation von Bildern

Pixel: 0             => 255

https://distill.pub/2017/feature-visualization/

CNNs lernen Abstraktionsebenen

CNN

Input

Output

Lernen

Kanten

Textur

Muster

Teile

Objekte

MLP

vs

CNN

MLP
Pixel werden unahabhängig voneinander betrachtet
Schnell sehr viele Parameter
Gelernt werden Gewichte
CNN
Pixel werden als Gruppen mit benachbarten Werten betrachtet (Kontext)
Analyse von "Sliding Windows"
Gelernt werden Filter

Wie funktionieren CNNs?

Sliding Windows & Convolutions / Faltungen

Fenstergröße, z.B. 3x3 Pixel

http://setosa.io/ev/image-kernels/

FILTER

Wie funktionieren CNNs?

Hyperparameter Padding & Schrittgröße

Padding, z.B. "same"

Schrittgröße, z.B. 1

Wie funktionieren CNNs?

Filter/Kernel & Feature Maps

http://setosa.io/ev/image-kernels/

FILTER

Stack of Feature Maps

Wie funktionieren CNNs?

Pooling

136 120 0
98 0 0
0 0 0

Sliding Pooling Window

136

Max Pooling

39

Average Pooling

354

Sum Pooling

CNN Architektur

Output

... Convolution + Pooling

...

Convolution/ Faltungsschicht

Pooling Schicht

z.B. 2x C + 1x P

oder 1x C + 1x P

Dense Schicht

+ Aktivierungsfunktion

Was bist du denn für ein Früchtchen?

Code-Beispiel in Python mit Keras & TensorFlow

import keras

model = Sequential()

# first hidden layer
model.add(Conv2D(32, (3, 3), padding = "same", 
          input_shape = (img_width, img_height, channels)))
model.add(Activation('relu'))

# second hidden layer
model.add(Conv2D(16, (3, 3), padding = "same"))
model.add(LeakyReLU(alpha = 0.5))
model.add(BatchNormalization())

# max pooling
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(Dropout(0.25))

...

=> siehe Jupyter Notebook

Einführung in Convolutional Neural nets

Created by @ShirinGlander

codecentric.ai

BOOTCAMP

Wie lernen

COmputer sehen?

Einführung in ConvNets

By Shirin Glander

Einführung in ConvNets

  • 3,729
Loading comments...

More from Shirin Glander