Deep convolution networks with caffe

14
Глубокие нейронные сети. Инструментарий. Быстрый старт Бабий А.С. - [email protected]

description

“Deep neural networks. Tool set. Qick start”

Transcript of Deep convolution networks with caffe

Page 1: Deep convolution networks with caffe

Глубокие нейронные сети. Инструментарий. Быстрый старт

Бабий А.С. - [email protected]

Page 2: Deep convolution networks with caffe

Deep learning

1. Что такое deep learning.набор алгоритмов машинного обучения, которые пытаются моделироватьвысокоуровневые абстракции в данных, используя архитектуры,состоящие из множества нелинейных трансформаций.[1]

2. Комбинирование обучения «с учителем» и «без учителя»

3. Недостатки?

4. Deep convolutional neural networks, CAFFE implementation

Page 3: Deep convolution networks with caffe

Deep convolutional neural networks

ConvNet configuration by Krizhevsky [2]

Page 4: Deep convolution networks with caffe

Наборы признаков (Features sets:)

Convolution Neural Network Architecture Model[3]

На каком этапе формируются карты признаков? Для чего?

Page 5: Deep convolution networks with caffe

Наборы признаков:

Карта признаков [4]

Накладываем друг на друга но, с «коэффициентом прозрачности»

Page 6: Deep convolution networks with caffe

Pooling

Пример работы pooling слоя [5]

Из нескольких соседних нейронов карты признаков выбирается максимальныйи принимается за один нейрон.

Page 7: Deep convolution networks with caffe

Библиотеки для работы с deep learning

http://deeplearning.net/software_links/

Caffe – deep convolutional neural network frameworkhttp://caffe.berkeleyvision.org ConvNetJS – JS based deep learning frameworkhttp://cs.stanford.edu/people/karpathy/convnetjs/DL4J - Java based deep learning frameworkhttp://deeplearning4j.org/Theano – CPU/GPU symbolic expression compiler in pythonhttp://deeplearning.net/software/theanoCuda-Convnet – A fast C++/CUDA implementation of convolutional (or more generally, feed-forward) neural networkshttp://code.google.com/p/cuda-convnet/Torch – provides a Matlab-like environment for state-of-the-art machine learning algorithms in luahttp://www.torch.ch/Accord.NET - C# deep learninghttp://accord-framework.net/, tutorial:http://whoopsidaisies.hatenablog.com/entry/2014/08/19/015420

Page 8: Deep convolution networks with caffe

Бабий А.С. - [email protected]

CAFFE

1. GPU (CUDA) and CPU support

2. Caffe can be accelerated by NVIDIA cuDNN

3. Python and/or MATLAB wrappers

4. Config paradigm vs Coding paradigm. Command line tools.

*CPU-only Caffe: Uncomment the CPU_ONLY := 1 flag in Makefile.config

http://caffe.berkeleyvision.org/installation.html

Page 9: Deep convolution networks with caffe

Работа с CAFFE

Начинать лучше с утилит командной строки:

build/tools

Наиболее доступный пример на базе MNIST – распознавания рукописных цифр

http://caffe.berkeleyvision.org/gathered/examples/mnist.html

cd $CAFFE_ROOT./data/mnist/get_mnist.sh./examples/mnist/create_mnist.sh

cd $CAFFE_ROOT./examples/mnist/train_lenet.sh

Page 10: Deep convolution networks with caffe

В каком виде подаются входные и выходные данные?

- databases (LevelDB or LMDB)

- directly from memory

- from files on disk in HDF5

- common image formats.

http://symas.com/mdb/ http://leveldb.org/

Input data

Output data

-snapshot file with mode

-snapshot file with solver state

Solver? Yes, we can continue breacked training from snapshot

Page 11: Deep convolution networks with caffe

Виды слоев CAFFE

Caffe stores and communicates data in 4-dimensional arrays called blobsname: "LogReg"layers { name: "mnist" type: DATA top: "data" top: "label" data_param { source: "input_leveldb" batch_size: 64 }}layers { name: "ip" type: INNER_PRODUCT bottom: "data" top: "ip" inner_product_param { num_output: 2 }}layers { name: "loss" type: SOFTMAX_LOSS bottom: "ip" bottom: "label" top: "loss"}

Page 12: Deep convolution networks with caffe

Виды слоев

Convolutional layerRequired field num_output (c_o): the number of filters kernel_size (or kernel_h and kernel_w): specifies height and width of each filter

Pooling layerRequired kernel_size (or kernel_h and kernel_w): specifies height and width of each filter

Loss Layers, Activation / Neuron Layers, Data Layers, Common Layers

How to configure?

Ready to use models in folder: examples

Page 13: Deep convolution networks with caffe

Решение своей задачи

1. Заботимся о корректности, размере и покрытии выборок.

2. Компилируем Caffe с поддержкой GPU.

3. Конфигурируем сеть, отталкиваясь от примеров.

4. Тренируем, смотрим на результат тестовой выборки.

5. Если результат не устраивает- настраиваем и тренируем до получения достаточного результата

6. Для использования натренированной сети для одиночныхИзображений необходимо написать конфиг и воспользоваться C++, Python или Mathlab.

Page 14: Deep convolution networks with caffe

Литература

1. L. Deng and D. Yu, "Deep Learning: Methods and Applications“ http://research.microsoft.com/pubs/209355/DeepLearning-NowPublishing-Vol7-

SIG-039.pdf2. ConvNet configuration by Krizhevsky et alhttp://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf3. Efficient mapping of the training of Convolutional Neural Networks to a CUDA-based cluster http://parse.ele.tue.nl/education/cluster24. http://www.cs.toronto.edu/~ranzato/research/projects.html5. http://www.amolgmahurkar.com/classifySTLusingCNN.html

Спасибо за внимание !