Сергей Колесников

Сергей Колесников

Неделя
Apr 6, 2020 → Apr 12, 2020
Темы
RL
Индустрия
Академия
ML-инструменты

Архив недели @Scitator

Понедельник


Hi guys, nice project. Сергей Колесников, ака @Scitator, ака @catalyst_core Lead. Занимаюсь ML машинерией последние лет 5-6, есть coolstory за "if-else" AI, ML, DL, CV, NLP, RecSys, Speech Recognition и RL ♥️ Основной интерес - sequential decision making и lifelong learning.

И, конечно же, спасибо @phystech_en, @yandex, @Reason8ai, @dbrainio и @tinkoff_bank за все многообразие этого экспириенса.

Overall, до ML, а также в процессе ML, успел попробовать себя в - Backend - not bad, - Frontend - no, please no, - Mobile - занятно, но не зашло для меня - GameDev - топчик, все хочу что-то запилить да еще и с RL

Так что путь к DS был довольно запутан и тернист.

В DS сфере успел и код пописать, и продакшены поподнимать, и процессы повыстраивать. Было даже пару-тройку успешный соревнований, куча разных курсов - некоторый вел/веду сам -, и немного academic experience и написания статей.

Честно говоря, специального плана у меня нет, поэтому давайте устроим неделю воспоминаний, why not? Каждый день - один год из "путя датасаентиста". А в воскресенье - финалочка, ответы на все вопросы, подведение итогов и вот это все. Всем ♥️

А пока, day 1 - сбор запросов, захните ♥️, что считаете наиболее интересным:

Как вообще начать ML, что, где, зачем?

Языки DS, R means RIP?

Competitions просто гуси, или право имеют?

Indistry бизнес, деньги, 2 коммита

Academia и философский PhD

"if-else" AI хоть что-то у тебя работает

Machine Learning где value, Лебовски?

Deep Learning Seg2Seg: Unet is all u net

Reinforcement Learning а ты точно сходишься?

Academia vs Startup vs Corporation 3 стула или opprotunities?

DS mentoring кнуты и пряники

Personal productivity гори-гори ясно, чтобы не погасло!

А также все другие темы, о которых я забыл... или забил 😜 Пишите в тред, ставьте ♥️, выбирайте топчик!

Вторник


Day 2 или @dsunderhood все не пишет, why so? мы релизим, везде, на работе, в open source, вообще везде
notion image

пожалуй, самая топовая часть текущей позиции - возможность поработать со всеми областями ML

NLP - чаты: текстовые, речевые, каждый со своей спецификой 🤓 CV - биометрия, liveness, распознавание всего и вся 🔎 RecSys - таблички и банки = ❤️ RL - да, и такое возможно 😉

в open source круто, что можно сделать реальный impact на всех и сразу, для души да и просто поделать что-то руками самому 😀

имхо, это иногда крайне важно на руководящей/менеджерской позиции вспонимаешь с чего начал, понижаешь overestimate по срокам для команд да и банально - разнообразие после совещаний и митингов

короче говоря, ну неплохо ведь, а? github.com/catalyst-team/…

минималистично, понятно, и кастомизируемо, при желании в общем - самому приятно

мораль - занимайтесь тем, что действительно нравится и делайте это для души все остальное приложится
notion image

но будем придерживаться плана, надо бы за 2016 год рассказать

итак, немного свободного времени, так что погнали, 2016 год (надо ведь закончить 2020м)

я заканчивал бакалавр МФТИ ФАЛТ дада, Факультет аэромеханики и летательной техники никакого Data Science или Machine Learning no hype вычматы, урматы, теормех и try аэродинамика 💪

зато по классике физхета были очень крутые курсы по теорверу, статистике, оптимизации и остальным нехайповым основам Machine Learning

так как я был lucky enought, чтобы не перенасытиться Data Science на всевозможных курсах физтеха, я изучал все самостоятельно

особо далеко не ходил - просто прошел немного @coursera и NLP cource от DeepHackLab на @phystech_en - Data Science Specialization от Johns Hopkins University - Machine Learning Specialization от University of Washington - Машинное обучение и анализ данных от @yandex, конечно же

занятный факт, сертификаты все еще работают coursera.org/account/accomp…

собственно, благодаря этим курсам знаю еще и R до всех этих ваших нейросеточек он даже был достойным конкурентом python

не рекламы ради, но у Johns Hopkins была действительно крутая специализация, и очень топовый финальный проект - Next word prediction по биграммам, триграммам, etc предсказать следующее слово, которое введет человек github.com/Scitator/R-Cap…

только статистика, и никаких transformers :) scitator.shinyapps.io/NextWordPredic… PS. оно еще работает 🔥🔥🔥

основным моментом 2016го - был переход в магистратуру на ФИВТ и начало try data science path на @phystech_en и @Reason8ai

как перейти с ФАЛТ на ФИВТ? все очень просто - берете и звоните зав.каф. понравившейся вам кафедры 😎 знакомитесь, обсуждаете background и хотелки договаривайтесь о тестовых и прочей бюрократии

собственно да, несмотря на то, что все еще физтех, проверки на знание матана, статистики и информатики никто не отменял 🤓

самое топовое был конечно же финальный проект с возможным будущим научником - выдали статью 2хлетней давности по иерархической классификации... обуви надо было побить результаты срок - 3 недели

2016, иерархическая классификация обуви в лучших традициях - с белым фоном.... иногда
notion image

2 недели и кучу попробованных sift features based классификаторов спустя, статья все еще не сдавалась

sklearn не помогал, метрики выше не поднимались, горшочек не варил
notion image

и тут я решил попробовать Tensorflow, в 2016м по туториалу енкодинка картиночек через их собсвенный формат в другой их формат
notion image

короче говоря, извлек vgg фичи 😂 и сразу же получил на них результаты, много лучше приведенных в статье 🎉 еще немного grid search + красивостей готово, easy

так я уверовал в нейросеточки 🖤

try data science path тоже начался благодаря курсам: очень круто закочил NLP course, хотя доехать на физтех смог лишь раз😂, все удаленно

познакомился с @m12sl и @madrugad0 совместно пошли развивать NLP в @Reason8ai

минутка пиара, @m12sl - очень крутой спец CV, CNN-master и вообще душа компании, физик, с кучей историй @madrugad0 - try researcher, поднимал NLP с колен, когда это было совсем еще не модно

короче говоря, очень рад это знакомству, профессионалы своего дела общаемся до сих пор, приятно

а на этой радостной ноте предлагаю на сегодня закончить, всем ❤️

Среда


Кажется @Twitter не нравятся такие долгие треды...
notion image

итак, немного свободного времени, так что погнали, 2016 год (надо ведь закончить 2020м)
Продолжение вчерашних coolstory 🚀 twitter.com/Scitator/statu…

Давайте проверим гипотезу про @Twitter и вчерашние треды от @dsunderhood перенесем сюда
Вчера, начало 😂 twitter.com/Scitator/statu…

продолжая всю эту тему с воспоминаниями, еще один любопытный сервис sourcerer.io/scitator

что ж, продолжим, 2017 год ждет - Магистратура, - ШАД, - NLP, - военка, - tensorflow, - kaggle - и NIPS

за магистратуру тред

если коротко, магистратура ФИВТ МФТИ - это полезно

с учетом того, что true Machine Learning курсов от Yandex, Mail, etc etc у меня в бакалавриате не было, было интересно

познакомился с такими топами индустрии как Виктор Кантор, Алексей Драль и Эмили Драль

собственно, Эмили и была мои научником в магистратуре

в остальном - стандартная магистратура с философией, историей информатики и робастными методами статистики :Harold: nothing special

за ШАД
notion image

благодаря кафедре АТП (Алгоритмы Технологий Програмирования) был доступ к ШАДу и курсы оттуда

Python, C++, ML, DL, RL, биоинформатика

C++ ШАДа - это божественно ❤️

то чувство, которое испытываешь в 2 часа ночи, проходя авто-тесты на решение, непередаваемо

особенно круто, когда что-то падает на 98 тесте из 100
notion image

остальное - много проще

курс по Deep Learning переписывал с theano на tensorfow, учил GANы, Style transfer, красиво
notion image

RL курс также перебивал на tensorflow, даже в contributors добавили, приятно github.com/yandexdatascho…

RL курс прошел настолько хорошо, что по итогу стал Teacher Assistant на coursera.org/learn/practica… и помогал его запускать

запускать курсы на coursera... неудобно больше не хочется 😀

про NLP

собственно, в это же время я работал в @Reason8ai, делали такую шутку как AutoFAQ

если коротко, хотелось автоматизировать ответы на частозадаваемые вопросы и обрабатывать обращениия с помощью Machine Learning

собстенно, задумка совершенно верная, ибо люди и колл-центры - это жесть как дорого

да и согласитесь, хочется, чтобы человек занимался более творческой деятельностью, а не просто на частозадаваемые вопросы рутину - оптимизируем, логично

тут то я и познакомился со всем многоорбразием NLP: word2vec, tf-idf, seq2seq, LDA, gensim, BigARTM

на заметку, tf-idf все еще топ, надо просто умметь варить
notion image

тогда же познакомился с @aphex34, и пользовали с ним CNN + self-attention на текстах, когда это было не модно

идея простая - над time series делаем softmax, а потом берем взвешенное среднее, получаем хорошее представлениие для текста любой длины

а если например стоит задача предсказания похожести текстов - можно делать batch_dot_product и опять attention + mean для представления "похожести текстов"

короче говоря, main point из BERT, занятно, не правда ли?

собственно, разными трюками и тюнами этой придумки мы и мерялись во время DeepHack Turing 2017 kaggle.com/c/human-or-mac…

про военку и tensorflow

так уж исторически случилось, что я еще проскочил на военную кафедру физтеха

monsieur офицер запаса
notion image

а это значит сборы, месяц повышенной физической активности и прогулки, прогулки на воздухе в 40градустную жару по плацу божественно

overall, за время сборов произошло еще ряд занимательный coolstory, но он этом лучше не в этом twitter :)

а еще за время сборов у меня были аж 2 недели, когда я совершенно не видел ноутбука, ощущения странные, не надо так

потом я не выдержал и начал контрибьютить в tensorflow github.com/tensorflow/ten…

работал на задачами seq2seq, пилил разные реализации понадобилось доработать tensorflow estimator data API

зато Seq2Seq учился довольно просто и понятно: github.com/Scitator/YATS2…

все еще никаких BERT'ов, старовер

за NIPS

2017й был поворотным годом для конференции NIPS и для направления Reinforcement Learnning

ибо в этом году запустился первый competition по RL под конференцию NIPS!

так как ШАД RL был успешно закончен, а любовь к RL только возрастала, надо было участвовать

кроме этого, я еще познакомился с Михаилом Павловым, который уже имел опыт участия в RL соревнования с 5vision

Миша - просто максимально умный, окончил аспирантуру химического факультета МГУ, и имхо, весь Data Science после это был для него крайне прост :) как и RL

объединив усилия, мы с ним начали решать этот компетишен у нас был один комп с 36 cpu-threads на двоих, AAA conference, мы готовились как могли
notion image

для решения конкурса нам требовалось обучить человекоподобного агенда ходить и бегать в среде максимально быстро и преодолевая препятствия сама среда была разработана лабораторий нейронбиомеханики Стендфорда и была максимально корректно-реалистична, в отличие от аналогов

решение RL соревнований - процесс непредсказуемый, приходится много разбираться не только в теории этого самого RL, но еще и в практической реализации ибо от того, насколько эффективно ты имплементируешь алгоритм может зависеть сойдется ли он или нет

в RL нет так называемого датасета, на котором ты обучаешься датасет надо собирать самому, взаимодействуя со средой (симулятором) и от того, насколько быстро ты это делаешь зависит сколько новых данных, нового опыта видит твой агент

короче говоря, thanks to design of RL problem, появляются дополнительные мета-гиперпараметры, которая также сильно влияют на процесс обучения, но которые много сложнее отследить

по итогу, мы заняли почетное 3е место crowdai.org/challenges/nip…

как это выглядело
notion image

source code, если кому интересно Pytorch, уже тогда github.com/Scitator/Run-S…

2е место взяли товарищи из Peking University github.com/hzwer/NIPS2017…

а 1е - NNAISENSE, команда Шмидхубера youtube.com/watch?v=8xLghM…

собственно, таким образом начался мой NIPS competition путь и немного противостояний со Шмидхубером :)

Четверг


четверг это... когда первый созвон у тебя в 9 утра, а последний - в 21:30 вечера не устал, но, кажется, лучше и отдохнуть немного

так что всем добра, давайте 2018й на завтра перенесем

еще сегодня был RL reading group семинар всем, кто интересуется RL - рекомендую к ознакомлению в этом году запустили реально крутую инициативу по Advanced Reinforcement Learning youtube.com/channel/UC6KYP…

ну, или так t.me/theoreticalrl 😂

наконец за release Catalyst 20.04 отписал но это уже так, t.me/catalyst_team 😂😂😂

короче говоря, четверг - это всегда насыщено возможно, не только четверг :)

и чтобы закончить красиво, "шмель, вид сзади"
notion image

Суббота


что ж, 2018 год, надо вспоминать - NIPS 2017 и Applied Machine Learning Days 2018 - Speech in the wild - AAAI конференция, USA visa и Алма-Ата - Dbrain - Sonic RL - CV in the wild - DeepHack - Catalyst.DL - NeurIPS 2018 - Catalyst.RL - Canada visa - Хакатоны

итак, продолжая NIPS 2017, и переходя в AMLD 2018

во-первых, стал немного академиком, у нас появилась статья в NIPS сборике link.springer.com/chapter/10.100…

конференция NIPS - топ1 по всему AI/ML/DL, по количеству людей - уж точно, так что опубликоваться там - приятно

во-вторых, пригласили на Applied Machine Learning Days, конференцию проводили организаторы соревнования

конференция проходила в Лозанне, Швейцария и в 2018 годы была в первый раз
notion image

Лозанна - это красиво
notion image

готично
notion image

и тихо
notion image

можно увидеть Францию, пусть и издалека
notion image

всем советую к посещению, тепло, вино, экологично настолько чистый воздух, что первые 2 дня после прилета - я просто к нему привыкал

собственно, сама конференция - топ много знакомств с людьми worldwide, хороший такой new experience и exploration @kidzik, @MeMohanty, @MasterScratv - 🖖

нам с Мишей надо было рассказать за наше решение на конференции

так что мой опыт публичных выступлений начался с презентации решения по reinforcement learning на европейской конференции перед залом с кучей людей из разных направлений бизнеса 😅😅😅

и на память, NIPS 2017 Learning to Run team & participants
notion image

еще одним приятным продолжением NIPS была конференция AAAI, на которую мы подались со статьей по Neuromusculoskeletal RL и тоже прошли

конференция была в USA, визы в Москве не давали, так я и посетил Алма-Аты

даже 2 раза, потому что попал на доп проверку ибо Artificial Intelligence, Machine Learning и вообще подозрительная личность-академик

короче говоря, не пытайтесь объяснить "Adapting Reinforcement Learning Methods for Neuromusculoskeletal Environments" на проверке, кроме круглых глаз вы ничего не получите

"аналитик, таблички в excel пербираю" - это понятно "мы научили человекоподобного агента с помошью RL ходить в физиологически корректном симуляторе для решения проблемы искривленной походки людей" - нифига не понятно

про Speech

одним из занятных пивотов @Reason8ai - был переход от текста к звуку, т.е. AutoFAQ как технологический продукт был +- завершен и надо было двигаться дальше

собственно, следующим продуктом стал reason8 - приложение для ведения эффективных митингов, встреч и переговоров

суть была в том, чтобы записывать митинг на телефон, а по итогу получать транскрибированный скрипт, разбитый по спикерам в идеале еще с action points и summary

и вот тут все начинает попахивать general AI :) text summarisation - все еще задача сложная

overall, какой опыт получен? что там в этом вашем звуке?

во-первых, звук очень прихотлив к датасету и готов переучиться под все, что угодно - микрофон, его frequency, язык, произношение, гендер, окружение при записи т.е. augmentations - must have

во-вторых, разобрался в том, как технически работает весь этот ваш звук, моно, стерео, mfcc, спектрограммы audacity - one love в этом всем, до сих пор использую при работе со звуком - audacityteam.org слава Open Source

в-третьих, всевозможный CNN + attention отлично работают на задачах cocktail party problem, speaker identification, speech recognition собственно - wavenet и ко, потом так и полетели

а еще cocktail party problem можно решать чистой физикой 100% идеально, т.е. 2 человека могут орать в телефон одновременно, а на выходе получится идеальное их разделение на 2 отдельные дорожки no DL required

из side effect полезных вещей - разобрался в правильном проведении мититнгов и вообще как они устроены: зачем, почему, etc

agenda, meeting notes, timing - полезные скилы вне зависимости от рода деятельности ведь общаться и проводить встречи - везде надо

еще немного попинал kaggle.com/c/tensorflow-s… и начал писать разные @tensorflow и @pytorch фреймворки для автоматизации кучи экспериментов

я понял, что у меня происходит слишком много всякого разного, поэтому давайте буду сокращать coolstories
notion image

если что - ping me, if you can t.me/scitator twitter.com/Scitator

количество непрочитанных растет, милорд, но что поделать
notion image

за разные хакатоны 2018

совместно с Мишей Павловым, мы брали Retro Contest от OpenAI, обучали RL агента играть в неизвестный уровник Sonic the hedgehog openai.com/blog/retro-con…

чуть-чуть не дотащили до 3го места, закончили на 4м openai.com/blog/first-ret…

благодаря этому контесту заинтересовался Meta Learning и Lifelong learning т.е. направлениями, которые позволяют вашим агентам/сеточкам/whatever продолжать учить

совместно с @iwitaly тащили DeepHack Chat, создавали бота, который бы мог разговаривать и общаться как реальный человек, отыграть роль, так сказать

завершили это дело 2ми deephack.me/leaderboard_ha…

хозяйке на заметку, elastic search - топ 😀 но в разработке чат-бота - лишь его малая часть, там все много интереснее

был интересный evaluation - ты общался с ботом, а потом проходил тест на его background :) важно было, чтобы бот этот backgournd умел хорошо проявлять

где-то между двумя этими событиями я защитил магистерский диплом, somehow магистратура прошла настолько хорошо, что теперь я обладатель красного диплома МФТИ, занятном

последним хакатоном, в декабре, был МТС aion hack, надо было обучить машинку проезжать трассу как можно быстрее и не съезжать с нее gym.openai.com/envs/CarRacing…

по сути, мы применили наработки с NeurIPS 2018 и Catalyst.RL под новую среду и условия конечно же, ряд вещей пришлось допилить :)

и, конечно же, мы сделали красивую презу под все это дело, со Шмидхубером и World Models, собственно, world models то мы и реализовали docs.google.com/presentation/d…

за Catalyst, NeurIPS 2018 и прочие прикольные штуки

надо признать, что благодаря всем этим воспоминаниям, начинаю понимать откуда пошел Catalyst

этить колотить, что-то много проектов, все разные понятно дело это надо как-то систематизировать и генерализировать

при большой любви к автоматическому перебору всего, что тольк можно - без фреймворка не обойтись

да и просто прокликивать ячейки в ноутбуке, обучая очередную модель классификации.... как-то не круто, надо лучше

задача человека - сформулировать гипотезу, продумать условия экспериментов, собрать данные, закинуть все это дело в котел и проанализировать результат потом перейти к новой гипотезе короче говоря, Lean Startup way

long story short, после 2х лет общения с @tensorflow, я перекатился на @pytorch

как можно понять, количество проектов не особо снизилось, а вот отсутствие какого-либо high-level API - вдарило, ибо за всей кучей low-level кода никогда не уследишь

да и разнообразия по пайплайнам в DL не то, чтобы много - классификация, сегметация в основном что картинок, что текста

надо было, чтобы все было вопроизводимо, иначе как этому доверять? и легко конфигурируемо, иначе как проводить кучу экспериментов?

еще я большой сторонник конфиг-файлов, ибо - количество гиперпараметров эксперитмента столь большое, что без конфига просто не обойтись - на больших проектах так и так они будут - понять конфиг - много проще, чем перечитывать весь код

например, github.com/catalyst-team/… все части эксперимента описаны - модель, лосс, оптимизатор, условия эксперимента - тоже, 1 stage обучения в 10 эпох, с Adam'ом и метрикой точности все части эксперимента декомпозированы, с возможностью переиспользования но это все мое имхо

при ведении всех текущих проектов (коих меньше все еще не становится), такой подход СИЛЬНО упрощает понимание того, что происходит во время эксперимента посмотрел конфиг - понял все, если что - глянул пару новых компонент, опять же, мое личное имхо

еще отлично работает с логированием, ибо grid search в git истории кидать примерно бесплезно - это невозможно проанализировать... я пытался, а вот сохранить в папку с логами конфиг и код - easy

сейчас еще активно открываем Notebook API, чтобы можно было делать the same, но прямо из python кода github.com/catalyst-team/…

ладно, опять растекаюсь мыслью по древу, про @catalyst_core и Open Source вообще можно ряд статей написать за все pitfalls и best practices, который ждут на этом пути вообще надо больше документации за свои инициативы писать, понял я :)

теперь try за NeuIPS 2018,

в общем, после 2017 года и 3го места, понятное дело хотелось проверить удача это или правда можно 3е место в world competition по RL получить

таким образом я взялся за NeurIPS 2018: AI for Prosthetics Challenge задача 2018 года осложнялась тем, что весь симулятор теперь был 3D и скелет радостно падал куда только мог :)

еще вместо простого бега прямо и быстро, надо было бежать по вечноменяющемуся направлению с заданной скорость - да, она тоже менялась

спасало то, что в 2018 году вышло много работ по continuous action space алгоритмам, которые можно было попробовать после решения 2017 года было хорошее понимание того, что потребуется для всего того многообразия экспериментов, которые предстояло провести

откровенно говоря, для RL я всячески пытался найти фреймворк для проведения экспериментов, но так и не смог этого сделать

лучшим был Ray, но за 2 месяца его постоянно доработки (улучешние их реализаций DDPG и TD3 алгоритмов), какого-либо результата получить так и не смог

плюнув на все - вспомнил общую архитектуру решения за 2017 год, докинул туда базы данных для корректнго distributed training и получил Catalyst.RL
notion image

на все это дело ушло 2 недели, по результатам - обученный агент занял 3е место с полпинка, впереди еще было 2 месяца соревнования и куча доработок

докинув туда еще разные реализации, DDPG, SAC, TD3 с разными трюками - получили 3е место, уступив только Baidu и Шмиидхуберу, once again

хотя отрыв от последних был всего 2 очка из 10000, занятно

собственно, решение as usual - открыто, github.com/Scitator/neuri…

как и сам фреймворк, github.com/catalyst-team/…

да, Catalyst.RL был вынесен из @catalyst_core не так давно в отдельную сущность

сравнение с аналогами, docs.google.com/spreadsheets/d…

и, конечно же, paper arxiv.org/abs/1902.02441 накрутили мы очень много, все еще поражаюсь sample efficiency нашей

и если кому-то интересна тема sample efficiency или distributed RL - пишите, пообщаемся есть небольшой опыт в этом деле :)

Воскресенье


что ж, mission complete, моя остановочка
notion image

на самом деле не успел рассказать еще очень многое, но, положим, для MVP сойдет :)

всем ❤️ и спасибо за внимание, stay tuned, пишите t.me/scitator twitter.com/Scitator наверное, перекачу треды воспоминаний туда

Ссылки