Классификация изображений с помощью нейронных сетей. Сжатие и ускорение обуче...Yandex
Свёрточные нейронные сети позволяют получать потрясающие результаты во многих задачах компьютерного зрения. В этом докладе я расскажу о нашем опыте обучения и применения свёрточных нейронных сетей. Отдельно будет затронут актуальный вопрос сжатия и ускорения нейросетевых моделей.
В стенах Azoft прошла лекция по практическому применению нейронных сетей.
На лекции рассказывалось о типах нейронных сетей, способах и особенностях их обучения и практическом применении. В конце доклада ребята дали советы для тех, кто только хочет начать развиваться в этой сфере: какие задачи решать, с чем экспериментировать, на какие смежные области обратить особенное внимание.
Видеозапись лекции вы можете посмотреть на YouTube: https://youtu.be/gwf18CGJM5c
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Ontico
В докладе я рассмотрю современные архитектуры диалоговых систем или чат-ботов. Неполный список архитектур влючает Dual Encoders, Neural Conversational Networks with and without context, Generative Hierarchical Neural Networks, Memory Networks and Dynamic Memory Networks. В том числе немного коснемся использования Reinofcement Learning в диалоговых системах. Вначале будет мягкое введение в Deep Learning for NLP для лучшего понимания представленных архитектур.
Классификация изображений с помощью нейронных сетей. Сжатие и ускорение обуче...Yandex
Свёрточные нейронные сети позволяют получать потрясающие результаты во многих задачах компьютерного зрения. В этом докладе я расскажу о нашем опыте обучения и применения свёрточных нейронных сетей. Отдельно будет затронут актуальный вопрос сжатия и ускорения нейросетевых моделей.
В стенах Azoft прошла лекция по практическому применению нейронных сетей.
На лекции рассказывалось о типах нейронных сетей, способах и особенностях их обучения и практическом применении. В конце доклада ребята дали советы для тех, кто только хочет начать развиваться в этой сфере: какие задачи решать, с чем экспериментировать, на какие смежные области обратить особенное внимание.
Видеозапись лекции вы можете посмотреть на YouTube: https://youtu.be/gwf18CGJM5c
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Ontico
В докладе я рассмотрю современные архитектуры диалоговых систем или чат-ботов. Неполный список архитектур влючает Dual Encoders, Neural Conversational Networks with and without context, Generative Hierarchical Neural Networks, Memory Networks and Dynamic Memory Networks. В том числе немного коснемся использования Reinofcement Learning в диалоговых системах. Вначале будет мягкое введение в Deep Learning for NLP для лучшего понимания представленных архитектур.
Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...Alex V. Petrov
На примере одной специализированной, но значимой для большинства высокопроизводительных систем точки оптимизации исходного кода — работы с кэш-памятью — доклад «Достижима ли в C++ эффективность языка "среднего уровня"?», сделанный на DEV Labs 2013, показывает, какими несложными приемами и техниками можно достичь желаемого уровня эффективности объектно-ориентированного кода, и развеивает миф о языке C++ как языке «архитектурной астронавтики», предлагая аудитории ряд действенных рецептов повышения производительности исходного кода.
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
Доклад про ближайшее будущее в эксплуатации распределённых систем.
Компания Mesosphere весной 2016 сделала свою платформу DC/OS (data center operation system) бесплатной и открытой. Платформа DC/OS унифицирует и упрощает процесс поставки и эксплуатации систем.
Основными особенностями платформы являются:
– переход от host centric к resource centric подходу для всех компонентов вашего проекта за счёт представления серверов как ресурсов для приложения (с помощью mesos и marathon);
– наличие инструментов автоматического восстановления вашего проекта после аварии;
– marketplace для приложений. Например, можно развернуть MySQL, Elasticsearch, Kafka или mongodb кластер, используя готовые скрипты развертывания. Процесс развертывания кастомизируется, в случае необходимости можно описать кастомные приложения и поправить скрипты существующих;
– наличие API для интеграции в ваши системы CI/CD, мониторинга, и т.д.
Основные компоненты DC/OS:
– Apache Mesos — абстракция над датацентром, которая представляет сервера (физические и виртуальные) как ресурсы и распределяет эти ресурсы на основании данных о потребностях приложения;
– Marathon — система распределённого запуска приложений (в т.ч. docker контейнеров), основной фишкой является возможность декларативного описания вашей системы. Вы можете описать, сколько ресурсов нужно вашему приложению, зависимости между приложениями, и в каком порядке производить деплой.
Доклад разбит на три части:
– Интро про DC/OS, сравнение с kubernetes и coreos стеком;
– Рассказ про компоненты mesos и marathon, как их можно использовать с докером (и без!) уже сейчас;
– Опыт Express 42. Мы построили CI/CD платформу для приложений, с использованием Mesos, Marathon, Docker и Jenkins 2.0.
Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...Alex V. Petrov
На примере одной специализированной, но значимой для большинства высокопроизводительных систем точки оптимизации исходного кода — работы с кэш-памятью — доклад «Достижима ли в C++ эффективность языка "среднего уровня"?», сделанный на DEV Labs 2013, показывает, какими несложными приемами и техниками можно достичь желаемого уровня эффективности объектно-ориентированного кода, и развеивает миф о языке C++ как языке «архитектурной астронавтики», предлагая аудитории ряд действенных рецептов повышения производительности исходного кода.
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
Доклад про ближайшее будущее в эксплуатации распределённых систем.
Компания Mesosphere весной 2016 сделала свою платформу DC/OS (data center operation system) бесплатной и открытой. Платформа DC/OS унифицирует и упрощает процесс поставки и эксплуатации систем.
Основными особенностями платформы являются:
– переход от host centric к resource centric подходу для всех компонентов вашего проекта за счёт представления серверов как ресурсов для приложения (с помощью mesos и marathon);
– наличие инструментов автоматического восстановления вашего проекта после аварии;
– marketplace для приложений. Например, можно развернуть MySQL, Elasticsearch, Kafka или mongodb кластер, используя готовые скрипты развертывания. Процесс развертывания кастомизируется, в случае необходимости можно описать кастомные приложения и поправить скрипты существующих;
– наличие API для интеграции в ваши системы CI/CD, мониторинга, и т.д.
Основные компоненты DC/OS:
– Apache Mesos — абстракция над датацентром, которая представляет сервера (физические и виртуальные) как ресурсы и распределяет эти ресурсы на основании данных о потребностях приложения;
– Marathon — система распределённого запуска приложений (в т.ч. docker контейнеров), основной фишкой является возможность декларативного описания вашей системы. Вы можете описать, сколько ресурсов нужно вашему приложению, зависимости между приложениями, и в каком порядке производить деплой.
Доклад разбит на три части:
– Интро про DC/OS, сравнение с kubernetes и coreos стеком;
– Рассказ про компоненты mesos и marathon, как их можно использовать с докером (и без!) уже сейчас;
– Опыт Express 42. Мы построили CI/CD платформу для приложений, с использованием Mesos, Marathon, Docker и Jenkins 2.0.
5. What about types of parallel computing?
GPU - specific CPU - specific
6. Optimization table for matrix multiplication[1]
1. Saman Amarasinghe, Matrix Multiply, a case study – 2008.
7. If no parallelization, but we want to make it faster
1. Use profiler(gprof, valgrind, … )
2. Does application using BLAS?
3. Use vector or matrix form of data representation and include BLAS
4. SIMD – if no other way… use it for maximum perfomance on 1 core
8. Бабий А.С. - apratster@gmail.com
How to make it parallel?.
1. KML, PBLAS, ATLAS
2. Когда CPU Multicore эффективнее GPU ?
3. NVIDIA CUDA.
4. OpenCL
13. Набор примитивов для сетей Deep Learning
1. Сверточный слой
2. Слой фильтрации
3. Обобщающий слой
Интеграция с Caffe
24-core Intel E5-2679v2 CPU @ 2.4GHz vs K40, NVIDIA
14. Feature maps
Feature map [4]
Накладываем друг на друга
но, с «коэффициентом
прозрачности»
15. Библиотеки для работы с deep learning
http://deeplearning.net/software_links/
Caffe – deep convolutional neural network framework
http://caffe.berkeleyvision.org
ConvNetJS – JS based deep learning framework
http://cs.stanford.edu/people/karpathy/convnetjs/
DL4J - Java based deep learning framework
http://deeplearning4j.org/
Theano – CPU/GPU symbolic expression compiler in python
http://deeplearning.net/software/theano
Cuda-Convnet – A fast C++/CUDA implementation of convolutional
(or more generally, feed-forward) neural networks
http://code.google.com/p/cuda-convnet/
Torch – provides a Matlab-like environment for state-of-the-art machine
learning algorithms in lua
http://www.torch.ch/
Accord.NET - C# deep learning
http://accord-framework.net/,
tutorial:http://whoopsidaisies.hatenablog.com/entry/2014/08/19/015420
16. Работа с 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
17. В каком виде подаются входные и выходные данные?
- 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
19. Виды слоев
Convolutional layer
Required 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 layer
Required
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
20. Решение своей задачи
1. Заботимся о корректности, размере и покрытии выборок.
2. Компилируем Caffe с поддержкой GPU.
3. Конфигурируем сеть, отталкиваясь от примеров.
4. Тренируем, смотрим на результат тестовой выборки.
5. Если результат не устраивает- настраиваем и тренируем до получения
достаточного результата
6. Для использования натренированной сети для одиночных
Изображений необходимо написать конфиг и воспользоваться
C++, Python или Mathlab.
21. References
1. L. Deng and D. Yu, "Deep Learning: Methods and Applications“
http://research.microsoft.com/pubs/209355/DeepLearning-NowPublishing-Vol7-
SIG-039.pdf
2. ConvNet configuration by Krizhevsky et al
http://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf
3. Efficient mapping of the training of Convolutional Neural Networks to a CUDA-based
cluster http://parse.ele.tue.nl/education/cluster2
4. http://www.cs.toronto.edu/~ranzato/research/projects.html
5. http://www.amolgmahurkar.com/classifySTLusingCNN.html
Спасибо за внимание !