introduction - utep · only modified the network structure and cnn in keras input format (vector...

3
Öffnungszeiten Technikschau: Dienstag: 9:45 – 18:00 Uhr, Mittwoch: 8:30 – 14:30 Uhr Organisation: Dr. Jürgen Kauke, LWK Niedersachsen Wunstorfer Landstraße 11, 30453 Hannover Tel. +49 511 3665-4381 [email protected] Aktuelle Aspekte des Feldversuchswesens 51. Fachtagung des DLG-Ausschusses für Versuchswesen in der Pflanzenproduktion Alle Infos auch unter www.DLG.org/Technikertagung DLG-Technikertagung 2020 28.–29. Januar 2020 in Hannover DLG e. V. Fachzentrum Landwirtschaft Eschborner Landstraße 122, 60489 Frankfurt am Main Tel. +49 69 24788-313, Fax +49 69 24788-114 [email protected], www.DLG.org/Technikertagung Stand: 08.01.2020, Änderungen vorbehalten. Wir danken Heiko Kluge, LK Schleswig-Holstein, für das Titelbild! 14:35 Uhr Der phenoFieldBot – automatische Pflanzenphänotypisierung im Hochdurchsatz für mehr und bessere Informationen aus Feldversuchen Christian Hügel, Strube D&S GmbH 14:55 Uhr Erste Erfahrungen mit dem ITG M5-Spektrometer für die Analysen von Silomais Ingo Schmidt, Staphyt GmbH 15:10 Uhr NIR-Analytik mit dem tragbaren Aura, Erfahrungen mit Getreide Dr. Peter Tillmann, VDLUFA Qualitätssicherung NIRS GmbH 15:20 Uhr NIRS online – mit dem Tec5 Feuchtesensor, Erfahrungen mit Getreide Dr. Peter Tillmann, VDLUFA Qualitätssicherung NIRS GmbH 15:30 Uhr Laserbasierte Pflanzenlängenmessung während der Ernte an der Erntemaschine Ulrich Schlingmann, Schlingmann Saatzuchttechnik und Software 15:45 Uhr Schlusswort Dr. Wilfried Hermann, Versuchsstation Agrarwissenschaften Universität Hohenheim 16:00 Uhr Ende der Tagung Weiterer Unterstützer: Mitveranstalter: Unterstützer:

Upload: others

Post on 19-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Introduction

Traditional pattern recognition models use hand-

crafted features and relatively simple trainable

classifiers.

This approach has the following limitations:

It is very tedious and costly to develop hand-crafted features

The hand-crafted features are usually highly dependent on

one application, and cannot be transferred easily to other

applications

hand-crafted

feature

extractor

“Simple”

Trainable

Classifier

output

Page 2: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Smaller Network: CNN

We know it is good to learn a small model.

From this fully connected model, do we really need all

the edges?

Can some of these be shared?

Page 3: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Consider learning an image:

Some patterns are much smaller than

the whole image

“beak” detector

Can represent a small region with fewer parameters

Page 4: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Same pattern appears in different places:

They can be compressed!

What about training a lot of such “small” detectors

and each detector must “move around”.

“upper-left

beak” detector

“middle beak”

detector

They can be compressed

to the same parameters.

Page 5: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

A convolutional layer

A filter

A CNN is a neural network with some convolutional layers

(and some other layers). A convolutional layer has a number

of filters that does convolutional operation.

Beak detector

Page 6: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Convolution

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

1 -1 -1

-1 1 -1

-1 -1 1

Filter 1

-1 1 -1

-1 1 -1

-1 1 -1

Filter 2

……

These are the network

parameters to be learned.

Each filter detects a

small pattern (3 x 3).

Page 7: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Convolution

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

1 -1 -1

-1 1 -1

-1 -1 1

Filter 1

3 -1

stride=1

Dot

product

Page 8: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Convolution

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

1 -1 -1

-1 1 -1

-1 -1 1

Filter 1

3 -3

If stride=2

Page 9: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Convolution

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

1 -1 -1

-1 1 -1

-1 -1 1

Filter 1

3 -1 -3 -1

-3 1 0 -3

-3 -3 0 1

3 -2 -2 -1

stride=1

Page 10: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Convolution

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

3 -1 -3 -1

-3 1 0 -3

-3 -3 0 1

3 -2 -2 -1

-1 1 -1

-1 1 -1

-1 1 -1

Filter 2

-1 -1 -1 -1

-1 -1 -2 1

-1 -1 -2 1

-1 0 -4 3

Repeat this for each filterstride=1

Two 4 x 4 images

Forming 2 x 4 x 4 matrix

Feature

Map

Page 11: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Color image: RGB 3 channels

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

1 -1 -1

-1 1 -1

-1 -1 1Filter 1

-1 1 -1

-1 1 -1

-1 1 -1Filter 2

1 -1 -1

-1 1 -1

-1 -1 1

1 -1 -1

-1 1 -1

-1 -1 1

-1 1 -1

-1 1 -1

-1 1 -1

-1 1 -1

-1 1 -1

-1 1 -1Color image

Page 12: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

imageconvolution

-1 1 -1

-1 1 -1

-1 1 -1

1 -1 -1

-1 1 -1

-1 -1 1

1x

2x

……

36x

……1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

Convolution v.s. Fully Connected

Fully-

connected

Page 13: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

1 -1 -1

-1 1 -1

-1 -1 1

Filter 11

2

3

8

9…

1

314

15

Only connect to

9 inputs, not

fully connected

4:

10:

16

1

0

0

0

0

1

0

0

0

0

1

1

3

fewer parameters!

Page 14: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

1 -1 -1

-1 1 -1

-1 -1 1

Filter 1

1:

2:

3:

7:

8:

9:…

1

3:14:

15:

4:

10:

16:

1

0

0

0

0

1

0

0

0

0

1

1

3

-1

Shared weights

6 x 6 image

Fewer parameters

Even fewer parameters

Page 15: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

The whole CNN

Fully Connected

Feedforward network

cat dog ……Convolution

Max Pooling

Convolution

Max Pooling

Flattened

Can

repeat

many

times

Page 16: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Max Pooling

3 -1 -3 -1

-3 1 0 -3

-3 -3 0 1

3 -2 -2 -1

-1 1 -1

-1 1 -1

-1 1 -1

Filter 2

-1 -1 -1 -1

-1 -1 -2 1

-1 -1 -2 1

-1 0 -4 3

1 -1 -1

-1 1 -1

-1 -1 1

Filter 1

Page 17: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Why Pooling

Subsampling pixels will not change the object

Subsampling

bird

bird

We can subsample the pixels to make image

smallerfewer parameters to characterize the image

Page 18: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

A CNN compresses a fully connected

network in two ways:

Reducing number of connections

Shared weights on the edges

Max pooling further reduces the complexity

Page 19: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Max Pooling

1 0 0 0 0 1

0 1 0 0 1 0

0 0 1 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 0 1 0 1 0

6 x 6 image

3 0

13

-1 1

30

2 x 2 image

Each filter

is a channel

New image

but smaller

Conv

Max

Pooling

Page 20: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

The whole CNN

Convolution

Max Pooling

Convolution

Max Pooling

Can

repeat

many

times

A new image

The number of channels

is the number of filters

Smaller than the original

image

3 0

13

-1 1

30

Page 21: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

The whole CNN

Fully Connected

Feedforward network

cat dog ……Convolution

Max Pooling

Convolution

Max Pooling

Flattened

A new image

A new image

Page 22: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Flattening

3 0

13

-1 1

30 Flattened

3

0

1

3

-1

1

0

3

Fully Connected

Feedforward network

Page 23: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Only modified the network structure and

input format (vector -> 3-D tensor)CNN in Keras

Convolution

Max Pooling

Convolution

Max Pooling

input

1 -1 -1

-1 1 -1

-1 -1 1

-1 1 -1

-1 1 -1

-1 1 -1

There are

25 3x3

filters.

Input_shape = ( 28 , 28 , 1)

1: black/white, 3: RGB28 x 28 pixels

3 -1

-3 1

3

Page 24: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Only modified the network structure and

input format (vector -> 3-D array)CNN in Keras

Convolution

Max Pooling

Convolution

Max Pooling

Input

1 x 28 x 28

25 x 26 x 26

25 x 13 x 13

50 x 11 x 11

50 x 5 x 5

How many parameters for

each filter?

How many parameters

for each filter?

9

225=

25x9

Page 25: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

Only modified the network structure and

input format (vector -> 3-D array)CNN in Keras

Convolution

Max Pooling

Convolution

Max Pooling

Input

1 x 28 x 28

25 x 26 x 26

25 x 13 x 13

50 x 11 x 11

50 x 5 x 5Flattened

1250

Fully connected

feedforward network

Output

Page 26: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

AlphaGo

Neural

Network(19 x 19

positions)

Next move

19 x 19 matrix

Black: 1

white: -1

none: 0

Fully-connected feedforward

network can be used

But CNN performs much better

Page 27: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

AlphaGo’s policy network

Note: AlphaGo does not use Max Pooling.

The following is quotation from their Nature article:

Page 28: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

CNN in speech recognition

Time

Fre

quency

Spectrogram

CNN

Image

The filters move in the

frequency direction.

Page 29: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

CNN in text classification

Source of image:

http://citeseerx.ist.psu.edu/viewdoc/downlo

ad?doi=10.1.1.703.6858&rep=rep1&type=p

df

?

Page 30: Introduction - UTEP · Only modified the network structure and CNN in Keras input format (vector -> 3-D array) Convolution Max Pooling Convolution Max Pooling Input 1 x 28 x 28 25

A CNN for MNIST in Keras:

accuracy > 0.99!

model = Sequential()

model.add(Conv2D(32, kernel_size=(3, 3), activation='relu',

input_shape=input_shape))

model.add(Conv2D(64, (3, 3), activation='relu'))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())

model.add(Dense(128, activation='relu'))

model.add(Dense(num_classes, activation='softmax'))