Глубокие нейронные сети. Инструментарий. Быстрый старт
Бабий А.С. - [email protected]
Deep learning
1. Что такое deep learning.набор алгоритмов машинного обучения, которые пытаются моделироватьвысокоуровневые абстракции в данных, используя архитектуры,состоящие из множества нелинейных трансформаций.[1]
2. Комбинирование обучения «с учителем» и «без учителя»
3. Недостатки?
4. Deep convolutional neural networks, CAFFE implementation
Deep convolutional neural networks
ConvNet configuration by Krizhevsky [2]
Наборы признаков (Features sets:)
Convolution Neural Network Architecture Model[3]
На каком этапе формируются карты признаков? Для чего?
Наборы признаков:
Карта признаков [4]
Накладываем друг на друга но, с «коэффициентом прозрачности»
Pooling
Пример работы pooling слоя [5]
Из нескольких соседних нейронов карты признаков выбирается максимальныйи принимается за один нейрон.
Библиотеки для работы с 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
Бабий А.С. - [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
Работа с 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
В каком виде подаются входные и выходные данные?
- 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
Виды слоев 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"}
Виды слоев
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
Решение своей задачи
1. Заботимся о корректности, размере и покрытии выборок.
2. Компилируем Caffe с поддержкой GPU.
3. Конфигурируем сеть, отталкиваясь от примеров.
4. Тренируем, смотрим на результат тестовой выборки.
5. Если результат не устраивает- настраиваем и тренируем до получения достаточного результата
6. Для использования натренированной сети для одиночныхИзображений необходимо написать конфиг и воспользоваться C++, Python или Mathlab.
Литература
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
Спасибо за внимание !
Top Related