Обработка данных в функциональном стиле с mPyPl Язык Python, его эволюция и использование

Доклад принят в программу конференции
Дмитрий Сошников
Microsoft

Дмитрий работает в Майкрософт уже 13 лет, десять из которых в роли технологического евангелиста. Он отвечал за организацию многих мероприятий для учащихся в России, в том числе Imagine Cup (в результате чего российские команды дважды стали победителями мирового чемпионата — в 2014 и 2015 гг.), разработал популярные онлайн-курсы по C# и F# на русском языке. Дважды выходил на одну сцену со Стивом Балмером. Дмитрий лично провёл более чем 20 обучающих студенческих хакатонов по всей России, был наставником ряда студенческих стартапов.

В течение нескольких лет работал старшим специалистом в области разработки по направлению искусственного интеллекта и машинного обучения. Совместно с клиентами из Центральной и Восточной Европы он реализовал ряд проектов по обнаружению сложных событий на видео, а также по обнаружению объектов с использованием трехмерных моделей для обучения нейронной сети. Дмитрий любит функциональное программирование и F#, является автором первой книги по F# на русском языке. Он является основным разработчиком библиотеки Python mPyPl, которая упрощает Python-разработку за счет функциональных конвейеров данных.


В свободное время Дмитрий ведет курсы по функциональному программированию и искусственному интеллекту в Московском физико-техническом институте, Высшей школе экономики и Московском авиационном институте, а также старается передать увлечение программированием и наукой своей 15-летней дочери. Дмитрий получил степень кандидата физико-математических наук, защитив диссертацию на тему распределенного представления знаний. А еще он проводит чайные церемонии Гунфу Ча и любит технологические фокусы.

http://twitter.com/shwars
http://vk.com/shwars
Тезисы

Поскольку Python является основным языком для Data Science, на нём приходится писать много кода для обработки данных. При этом зачастую это делается в императивном стиле, с использованием промежуточных переменных - что выглядит не очень изящно. Мы предлагаем использовать в задачах обработки данных функциональный стиль, который позволяет оформлять конвейеры обработки данных в виде цепочки совершаемых над ними преобразований, почти как конвейеры в операционных системах или оператор |> в F#.
Кроме того, в практических задачах часто нужно извлекать из данных целый набор признаков, которые затем будут подаваться на вход модели машинного обучения или нейросети. В этом случае удобно использовать конвейер данных с именованными полями, в которых каждая операция - это вычисление какого-то нового поля на базе уже существующих.
Для поддержки такого подхода нами была создана библиотека mPyPl (Monadic Python Pipeline library), которая поддерживает ленивые конвейеры обработки данных с операцией |, а также набор базовых операций над ними. Мы расскажем, как такой подход успешно применялся для классификации и обнаружения изображений, распознавания событий на видео, рендеринга видео, рисования когнитивных портретов и в других задачах.

Фреймворки
,
Python
,
Разработка библиотек, включая open source библиотеки
,
Архитектура данных, потоки данных, версионирование
,
Machine Learning

Другие доклады секции Язык Python, его эволюция и использование