Slide 1

Slide 1 text

Как начать экспериментировать с машинным обучением в Go Алексей Павлюков

Slide 2

Slide 2 text

Проекты над которыми работаю • Извлечение структурированной и не очень информации из документов • Более 100000 PDF документов • 1,4 ТБ данных в формате PDF • Обработка и хранение медицинских данных • Файлы от 1ГБ

Slide 3

Slide 3 text

Краткое введение в машинное обучение f( ) = зеленый гофер f( ) = гора f( , ) =

Slide 4

Slide 4 text

Краткое введение в машинное обучение = (∑ ℎ(∑ (… , , ) , . ))

Slide 5

Slide 5 text

Что сейчас умеют машины • Понять что на изображении • Выделить объекты на изображении • Генерировать: фото, голос, текст, музыку • Перенос стилей: мимика, речь • Понять какой город на фотке

Slide 6

Slide 6 text

style2paints *CC-BY-NC-SA-4.0 (c) Various artist of style2paints team, 2018. This image is OK for ACM/IEEE fair use. https://github.com/lllyasviel/style2paints https://www.youtube.com/watch?v=B6WEky9nY7Q

Slide 7

Slide 7 text

PySC2 - StarCraft II Learning Environment • https://github.com/deepmind/pysc2 • https://www.youtube.com/watch?v=WEOzide5XFc

Slide 8

Slide 8 text

В чем сложность • Объемы данных • ImageNet 14 миллионов изображений (не считая преобразований) • Огромное количество параметров • ResNet – классификация изображений (224x224 пикселя), слоёв: • 18 – 1.8 G-FLOPS (27% error rate) • 34 – 3.6 G-FLOPS (22% error rate) • 101 – 7.6 G-FLOPS (20% error rate)

Slide 9

Slide 9 text

Популярные фреймворки

Slide 10

Slide 10 text

Что есть в Go • Golearn – github.com/sjwhitworth/golearn • не умеет работать с GPU • нейронные сети начальный уровень • Goronia - github.com/gorgonia/gorgonia • Есть поддержка CUDA • Странная лицензия • Gosl - github.com/cpmech/gosl • Большая библиотека базовых алгоритмов • Нейронные сети в планах • GoNum - github.com/gonum/gonum • Численные вычисления

Slide 11

Slide 11 text

Что есть в Go - CGO • GoCV – github.com/hybridgroup/gocv • Обертка над OpenCV • Запуск предобученных нейронных сетей • Поддерживает OpenVINOTM • TensorFlow - github.com/tensorflow/tensorflow • Запуск предобученных нейронных сетей • Обертка над ограниченным C API

Slide 12

Slide 12 text

Ссылки • Ellen Körbes - Learn Neural Networks With Go, Not Math • https://www.youtube.com/watch?v=jb-12DOr5y4 • Machine Learning With Go • https://github.com/PacktPublishing/Machine-Learning-With-Go • Darknet – маленькая C библиотека для ML с поддержкой CUDA • https://pjreddie.com/darknet • Benchmark Analysis of Representative Deep Neural Network Architectures • https://arxiv.org/pdf/1810.00736.pdf • Kaggle – соревнования, данные, примеры кода • https://www.kaggle.com

Slide 13

Slide 13 text

Demo • https://github.com/a5i/try-go-ml

Slide 14

Slide 14 text

Спасибо i@aleksei.co github.com/a5i