AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

18
Transfer Learning Oleksandr Baiev, PhD

Transcript of AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Page 1: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Transfer LearningOleksandr Baiev, PhD

Page 2: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

ProblemsML problems

Computer Vision

Natural Language Processing

Signal processing

Predicting

Decision making

MODEL

INPUTS

INFERENCE

DS

Page 3: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Conventional approaches

Domain specific featuresIN

PU

TS

Model fitted to specific

features set INFE

REN

CE

Assumes domain specific

research, conducted by

appropriate expert

(feature engineering)

Looks like hacks for

practical solutions

Page 4: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Neural Networks SolutionIN

PU

TS

INFE

REN

CE

Simple pre- and postprocessing:

scaling, shifting, etc.

Page 5: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Is Neural Networks is simple solution?

SVM

- Kernel type

- Smoothness

RANDOM FOREST

- Number of trees

- Trees’ depth

NEURAL NETWORKS

Page 6: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Is Neural Networks simple solution?

• A few dozens of thousands of samples – is not bad dataset

• A few hundreds of thousands of samples – is good dataset

• Overfitting is problem even for datasets with several millions samples

Page 7: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Transfer learning

Learning system

Learning system

Knowledge

Source taskTarget task

Storing knowledge gained while

solving one problem and applying it

to a different but related problem

Page 8: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

What is knowledge in Neural Networks

Page 9: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Transfer learning for Neural Networks

1) Train on Source Task

2) Remove last layers

3) Add new last layers

4) Train net for Target Task

Page 10: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Known topologyAlexNet

GoogleNet

VGG-16

ResNet-50

Page 11: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Weights transfer

Source task:For example, train VGG-16 for ImageNet classification (1.2*10^6 samples, 1000 classes)

Target task: Remove last layer with 1000 outputsPut your own last layer for N classes=> same topology, weights initialized by weights from source task’s net

Page 12: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

When such flow can be used

Low amount of data Source and Target

tasks are similar

Page 13: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Transfer learning types

• New classifier (for example, SVM)

• Layer by Layer pretrain (for example, early autoencoders)

• Finetuning (with lower LR)

Page 14: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Examples. “Plankton” and AlexNet

“Plankton”

National Data Science Bowl

kaggle.com

Classes: 121 with hierarchy

Samples: ~30 000

AlexNet: 8 layers

inputs: 227x227

Page 15: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Examples. “Pankton” and Cifar10

“Plankton”

National Data Science Bowl

kaggle.com

Classes: 121 with hierarchy

Samples: ~30 000

AlexNet: 4 layers

inputs: 32x32

Page 16: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Example. “Drivers” and GoogleNet“Drivers”

State Farm Distracted

Driver Detection

kaggle.com

Classes: 121 with hierarchy

Samples: ~30 000

AlexNet: 4 layers

inputs: 32x32

Page 17: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Model Zoo

Page 18: AI&BigData Lab 2016. Александр Баев: Transfer learning - зачем, как и где.

Model ZooCAFFE : ~ 30 models for different problems

https://github.com/BVLC/caffe/wiki/Model-Zoo

MatConvNet: ~10 models for different problemshttp://www.vlfeat.org/matconvnet/pretrained/

TensorFlow: https://github.com/tensorflow/models

Torch:https://github.com/facebook/fb.resnet.torchhttps://github.com/szagoruyko/loadcaffe