22 March

Подкаст: что ждет начинающих ученых в сфере МО

ITMO University corporate blogProgrammingMachine learningStudying in ITInterview
Как и обещали, приводим полную расшифровку первого выпуска нашего подкаста (послушать можно в Apple Podcasts). С нами разговаривал Андрей Фильченков, кандидат физико-математических наук, доцент факультета «Информационных технологий и программирования» и руководитель группы машинного обучения международной научной лаборатории «Компьютерные технологии».


Фото Samuel Bourke (Unsplash.com)

Дмитрий: В прошлом году вы получили премию имени Ильи Сегаловича, и сказали, что занимаетесь разными направлениями, без какого-то общего вектора помимо машинного обучения. Прокомментируйте, пожалуйста, такой подход. Является ли такая свобода определяющей для вас?

Андрей Фильченков: Когда я пришел работать в Университет ИТМО, в нашей лаборатории «Компьютерных технологий», которая уже стала научным центром, не было чего-либо, напрямую связанного с машинным обучением. И мы начали экспериментировать. Это был 2014 год.

Дмитрий: Сами формулировали задачу для себя?

Андрей: Ставили, решали. Машинное обучение устроено таким образом, что идеи перетекают из одной области в другую, и модели перетекают от одной задачи к другой. Довольно сложно чем-то ограничиваться. И так работаем не только мы. Почти всегда исследователи в области машинного обучения не сидят строго в одной нише, всегда есть много исследований вокруг.

Другое дело, что у нас изначально не было вектора, вокруг которого мы бы строили свою работу. Но сейчас мы углубляемся в конкретные темы и в целом ограничиваем количество ниш, в которых мы работаем. В первую очередь, это — автоматическое машинное обучение, все, что связано с обработкой изображений и их генерацией, в том числе видео, анализ социальных сетей.

В прошлом году появились две относительно новые темы — машинное обучение для анализа кода и машинное обучение для маршрутизации. Маршрутизацией мы занимались с 2016 года, но углубились в эту тему. Мы пытались браться за разнообразные задачи, но такой подход влияет на результаты. Сейчас мы пытаемся больше сфокусироваться на качестве, чем на разнообразии.

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

Андрей: Да.

Дмитрий: Обывателю может показаться, что эта деятельность связана с совсем базовыми вещами, формулами и научными статьями. Но ребята из лаборатории, как можно увидеть, работают с анализом социальных сетей, рекомендательными движками, Twitter Трампа анализируют. Расскажите, пожалуйста, о таких проектах, которые понятны на практическом уровне?

Андрей: Нашу деятельность можно разбить на две категории. Первая — это алгоритмы, которые много к чему применимы. Например, алгоритмы выбора признаков. Они нужны для множества задач — для анализа последовательностей ДНК, обработки медицинских данных и так далее. Вторая категория — это задачи, из той предметной области, в которой мы уже пытаемся разные алгоритмы применять. В этой категории пока больше задач, они понятные и разнообразные, причем не всегда совсем научные.

На фото: Андрей Фильченков
Помимо лаборатории у нас есть общая среда, в которой вертятся стартапы и компании. Они приходят с индустриальными заказами, задачи возникают совсем практические. Недавно мы работали с каналом ТВЦ. У них огромное количество разных документов и статей. И им очень интересно отслеживать, как в прессе представлено то или иное явление и как оно меняется со временем — как много условного Илона Маска в прессе, в каком контексте он встречается. Мы писали для них поисковый движок, чтобы по достаточно большой базе быстро выполнять довольно сложные запросы.

Дмитрий: Им было эффективнее обратиться к вам и внедрить кастомную разработку, чем идти на рынок за готовым «коробочным» продуктом?

Андрей: Да. У них специфическая задача. На рынке таких решений нет.

Еще мы делаем довольно интересные вещи с Vk, где работает один из наших аспирантов. Реклама — один из основных источников дохода площадки, как и у большинства таких компаний. И надо понимать, кому эту рекламу показывать, чтобы все было эффективно. Задача так и выглядит. Есть большое количество рекламодателей. Надо следить, чтобы у них были показы, и люди приходили релевантные.

Есть некоторое количество исследований, связанных с медициной. Например, анализ кожи по фотографии для выявления важных медицинских маркеров. Есть две темы. Одна связана с выявлением того, является ли родинка родинкой или это — сигнал того, что может быть что-то серьезное. Вторая — понимание того, чем вызваны те или иные пятна, сыпи (это могут быть симптомы большого количества кожно-венерических заболеваний).

Дмитрий: И здесь можно повысить доступность базовой диагностики?

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



Трансфер различных решений и развитие сферы МО


Таймкод (по аудиоверсии) — 09:07



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

Андрей: Обычно мы стараемся применять автоматическое машинное обучение. Грубо говоря, у нас есть некоторый черный ящик, в который мы закидываем задачи и получаем базовые решения. Они, конечно, обычно хуже, чем то, что можно сделать руками после этого, но это — baseline, на которой можно ориентироваться. Если говорить про конкретные решения, например, связанные с обработкой изображений, трансфер здесь работает. Базовая вещь — предобученная VGG и ее дообучение на данных. Формирование базовых решений на основе обученных и выложенных в доступ сетей — стандартный шаг. И часто оказывается, что лучше в текущем конфиге ничего и не сделать.

Дмитрий: В таком случае получается ли, что вы меняете какие-то архитектурные вещи с точки зрения железа или речь идет только о программных решениях, алгоритмах?

Андрей: Обычно мы говорим только про алгоритмы. Задач, при решении которых нам бы приходилось подстраиваться под железо, было мало. Наиболее яркая — то, что мы делали с Huawei для распознавания символов на фотографиях. Там были довольно жесткие ограничения, связанные с тем, что эта модель должна была быть имплементирована на телефон. Где не так много памяти, есть ограничения на операции, которые можно использовать, поскольку нельзя в чистом виде применить то, что мы сделали на TensorFlow. И тут нам пришлось изворачиваться, потому что были хорошие решения, но без возможности трансфера, и нужно было сильно постараться. Но чаще мы делаем решение, которое быстро работает где-нибудь на сервере, но без ограничений на все остальное.

Дмитрий: Я спрашиваю, потому что часто возникает вопрос, от чего может зависеть эффективность работы такой системы. Расскажите, с какими проблемами вы сейчас сталкиваетесь с точки зрения эволюции алгоритмов и теоретических подходов к этой области? Есть ли какой-то предел, которого достигла эта сфера, или она сейчас стремительно развивается?

Андрей: Вопрос довольно сложный, но интересный. Долгое время действительно все было ограничено железом. Были довольно сложные алгоритмы, но они не всегда работали хорошо. Сейчас многое связано с нейросетями, потому что появились вычислительные мощности, которые позволяют их гонять. Хотя с какого-то момента вычислительные мощности стали не так важны, мы всегда имеем в виду, что у нас будут те или иные затраты. Если говорить про классические алгоритмы, то проблем с мощностями особо не возникает. Вопрос в том, как быстро и качественно находить лучшие решения.

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

Дмитрий: То есть произошел достаточно существенный скачок в росте вычислительных мощностей и возможностей. Мы немного сняли руку с пульса. Сейчас вы ее возвращаете.

Андрей: Да, последние пару лет идет рост автоматического машинного обучения. И есть версия, что всю экспертизу, которая сейчас есть в машинном обучении, можно заменить стократным увеличением вычислительных мощностей. Автоматическое машинное обучение фактически пытается найти за вас решение для задачи. И это вопрос мощностей, поскольку это поиск, не перебор, но все еще очень сложный, долгий, масштабный, требующий огромного объема вычислительных ресурсов. Как следствие, мы снова упираемся в то, что экспертизу вытесняют ресурсы и их доступность.


Фото Franki Chamaki (Unsplash.com)

Я не верю, что мы хоть когда-нибудь окажемся в ситуации, когда эксперт не будет нужен, потому что все еще есть много задач, которые нельзя вот так взять и автоматизировать (постановка задачи, понимание бизнес-процессов) пока мы не придумаем сильные системы искусственного интеллекта. Как минимум, это будет не очень скоро. Поэтому задача будет сохраняться, но требования к тому, чтобы были вычислительные мощности, снова начинают становиться одним из ключевых факторов.

Дмитрий: Но при этом все-таки приходится осуществлять какие-то действия, чтобы «догнать» рост вычислительных мощностей с точки зрения эффективности самих алгоритмов. У компаний, которые могут быть огромные мощности, но еще, как мне кажется, у каждой задачи есть определенный timeframe, в который она должна быть решена и остается актуальной.

Андрей: Да. Есть желаемое качество, есть время, за которое надо достичь его. Мы ограничены с двух сторон. Если времени достаточно, то качество почти всегда достижимо. Хотя, конечно, у каждой задачи есть фундаментальные ограничения на то, какое качество можно получить. Грубо говоря, предсказывать характер по расположению лун лучше монетки мы не сможем. Но если требуемое ограничение не достигает потолка, то мы можем за какое-то время достичь нужного качества. Иногда мы можем говорить, что за отведенное время мы нашли достаточно хорошее решение, лучшее за это время не получить. Всегда есть эти две «координаты».



Изучение новых результатов, их осмысление и адаптация


Таймкод (по аудиоверсии) — 16:41



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

Андрей: Это очень хороший вопрос. Все зависит от области. Например, у меня сейчас защищается аспирант, который автоматизирует задачу кластеризации. В целом там не очень большой поток новых результатов. С другой стороны, он занимается AutoML для кластеризации. Здесь уже за потоком новых результатов не уследить так просто. При этом сложно одной областью ограничиваться.

Как я говорил в самом начале, в сфере машинного обучения все сильно связано. Идеи, которые изначально возникли в области обработки изображений, за пару шагов перетекают куда-то еще. Обработка текстов — ближайший кандидат. Один из наиболее важных факторов успеха — просто быть в курсе того, что происходит не только в твоей нише, но и в области машинного обучения в целом.

Фото Nick Hillier (Unsplash.com)
Это сложно делать, потому что результатов порождается очень много. Десятки тысяч участников на крупнейших конференциях, огромное количество работ, до сотни работ в неделю в архивах. Такое количество сложно успеть даже пролистать. Но основные вехи важно смотреть.

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

Изначально в области обработки языка было много разных результатов. Как только появился Word2vec, все стали переезжать на эмбеддинги. Их стало очень много. Было несколько основных, но для разных частных задач были свои, и надо было следить за тем, как их улучшают. Потом Google выкатил BERT, и он дал очень большой прирост. В какой-то момент оказалось, что если ты понял, как работает BERT, и если ты занимаешься обработкой английского языка, то тебе особо ничего и не нужно.

Можно было не переживать, какие успехи есть у новых версий fastText и эмбеддингов, на нем основанных. Теперь BERT оброс большим количеством изменений. Он все еще является основным, как и Word2vec в свое время. Но уже есть много модификаций, выходящих с частотой по несколько работ в месяц или даже не меньше работы в неделю.

И эта динамика все время меняется. Есть место, где все схлопывается, и здесь можно что-то догнать, потом оно снова начинает расцветать разными цветами, и надо за этим следить. Проблема в том, что это происходит все чаще, то есть скорость появления новых результатов только увеличивается. Как за этим уследить — одна из тех фундаментальных жизненных проблем, с которыми я сталкиваюсь.

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

Андрей: Все участвуют в разной степени. Вынужден признать, что в компаниях больше результатов, чем в университетах. Это зависит от области. Типичен сценарий, когда крупные ученые работают не только в университетах, но и в компаниях. Чаще всего нанимают тех, кто продолжает вести исследовательскую деятельность. Поэтому у компании скапливается огромный интеллектуальный потенциал. Вузы редко могут обеспечить аналогичные вычислительные мощности и своды данных, поэтому плашки компаний над статьями (аффилиация) встречаются все чаще.

Дмитрий: Даже над статьями, не смотря на то, что компания имеет возможность закрывать от общественности большую часть своих разработок, исследований? В этом есть какой-то смысл. А университет не имеет такой возможности, по природе своей он обязан что-то публиковать.

Андрей: Действительно, здесь может быть bias. Университеты в любом случае публикуют, потому что это — специфика их работы. Поток статей от вузов больше, потому что вузов много, люди публикуются, а в компаниях далеко не везде это приветствуется. Но прорывные результаты — их у компаний больше.

Так они капитализируют свою известность и компетенции, привлекают новых ученых, объясняя, что исследования можно вести и у них, причем очень крутые. Например, сделали новую модель, она может быть очень теоретической. Но чаще всего она имеет большое прикладное значение, в компании в первую очередь. Они могут выкладываться в open source, но, например, как у Google, это будут уже какие-то предыдущие версии, которые они сами считают устаревшими.



Открытые разработки, подготовка публикаций и требования к ним


Таймкод (по аудиоверсии) — 23:48



Дмитрий: Насколько важны открытые разработки в вашей деятельности? Как они влияют на нее? В примере с автоматизацией кластеризации вы сказали, что берете открытую разработку и применяете ее на какой-то фундаментальной базе, которую можно изучить, досконально проработать, то есть пойти в обратную сторону и не привязываться к быстрым изменениям в узкой сфере.

Андрей: Выложенный код очень важен. Практически всегда возникает стандартный вопрос — работает ли то, что выложено. Еще — вопросы сравнения со своими результатами. Когда человек что-то создает, ему надо доказать, что это лучше того, что было ранее. К сожалению, довольно часто возникает ситуация, когда люди сравнивают с тем, что было до них, по цифрам, опубликованным в статье. Это не очень правильно. Гарантий, что человек воспроизводит эксперимент так, как это делали другие, нет. Поэтому важно взять разные решения и запустить их самостоятельно, проверить, как они работают, и убедиться, что ты сделал лучше в аналогичном экспериментальном сетапе.

Сравнивать правильно можно только при наличии кода.


Фото Headway (Unsplash.com)

Во-вторых, если человек ничего нового не разрабатывает с точки зрения конкуренции, но хочет применить метод, было бы неплохо, чтобы он лежал на GitHub, и его можно было использовать. Но даже когда что-то выкладывают, не всегда доступна документация. Редко публикуют работы с хорошей документацией. Бывает так, что не выкладывают код совсем, и приходится все реализовывать по описанию в статье. Это проблема. Такая ситуация порождает сложности с воспроизводимостью результатов машинного обучения. И это — чуть ли не главная проблема в нашей сфере.

Легко опубликовать результаты переобучения, но их сложно проверять, если кода нет. Мы сравнивали собственный AutoML с уже существующими решениями. К счастью, здесь есть опубликованные библиотеки, которые активно используются. Есть более новомодные решения, но их код не выложен. Было понятно, что они хуже — то, что они выкладывали, было частным случаем нашего решения.

Дмитрий: Можно ли предусмотреть какие-то подходы, которые избавят от этой проблемы, как минимум в рамках вашей работы и гарантируют возможность воспроизведения результатов?

Андрей: Можно указывать ссылки на открытые репозитории и предоставлять документацию. Я стараюсь, чтобы во всех статьях все это было. К сожалению, это получается не всегда. Так бывает практически у всех: человек написал код, он работает, но выкладывать его в общий доступ человек стесняется, потому что ему стыдно за какие-то его элементы. Но я стараюсь распространять идею, что при написании статьи нужно дополнять ее ссылкой на GitHub. Репозиторий с кодом должен быть подготовлен заранее.

Дмитрий: Здесь надо потратить время и на его документирование.

Андрей: Хотя бы минимально. Это надо для того, чтобы то, что написано в статье помогало понять, что происходит, даже если код совсем не задокументирован. Хотя это сложно. Чем больше проект, тем меньше статья помогает.



Работа специалистов лаборатории и частота выхода результатов


Таймкод (по аудиоверсии) — 28:37



Дмитрий: Если оценивать время подготовки научной статьи и практического проекта, в какие сроки человек может реализовать что-то в вашей сферы деятельности? Условно раз в полгода-год он публикует статью, и какой-то большой проект занимает у него, допустим, два года.

Андрей: Здесь есть существенная проблема, связанная с тем, что это сильно зависит от самой гипотезы. На этот вопрос ответить действительно сложно. Я могу расписать проект так, чтобы он выполнялся как за два месяца, так и за два года. При этом результаты будут достигнуты похожие.

Это не значит, что можно взять эти два месяца и делать каждый день в двенадцать раз меньше. Здесь как с девятью матерями. Мы завязаны на вычислительной мощности, но многие вещи можно распараллеливать. Многие вещи можно доделывать в зависимости от того, о чем проект.

Аналогично и с подготовкой статей. Есть вещи, где модель учится час, есть вещи, где модель учится день. В AutoML эксперименты могут идти от недели. Бывает так, что эксперименты не поставить на разумных задачах, потому что они не досчитаются. Поэтому много задач, где все считается на каком-нибудь CIFAR’е. Хоть сколько-то разумные дата-сеты, больше похожие на практику, никто и не пытается трогать, потому что статья выйдет через два года, модель будет, но уже устареет.

Второй критерий, который влияет на положение дел, это то, что ты уже знаешь о предметной области. Если у тебя есть понимание того, какие модели существуют, поставлен эксперимент, ты проверяешь конкретную гипотезу, то все отлично. Но обычно задача может меняться в процессе. Не сильно.

Фото Science in HD (Unsplash.com)
Но вот она немного поменялась в какую-то сторону, и надо доказывать новизну того, что ты предложил. Надо смотреть, что сделано ранее, сравнивать.

Оказывается, твое решение новое, но не самое классное. Ты пытаешься его улучшить, меняется результат. Надо доказывать, что результат нов. А еще человек прикрутил где-нибудь обучение с подкреплением, и теперь надо в эту сторону смотреть.

Этот процесс может сильно растягиваться. Бывают статьи-долгострои, они долго пишутся, потому что вещи немного меняются. Еще момент — площадка, куда планируется публикация статьи. В хороших местах требуют обоснование того, почему твой результат хороший. Бывает так, что это объяснение является самым трудоемким. То есть модель работает, а понять, почему она работает — отдельная задача, даже более сложная, чем придумать эту модель.

Наконец, само написание статьи. К сожалению, все достойные места, где надо публиковаться, чтобы внести вклад в науку — англоязычные. Это накладывает свои ограничения. Писать англоязычные статьи не так просто. Если сотрудник лаборатории пишет свою первую статью, он будет делать это очень долго. Если это его двадцатая статья, быстро. Причем если я не буду активно пинать человека, он будет писать пару месяцев, если буду, все равно несколько недель. Конечно, все зависит и от того, насколько сложный предмет он рассматривает.



Выбор области для развития и пререквизиты


Таймкод (по аудиоверсии) — 33:04



Дмитрий: Как влияет на развитие первоначальный выбор направления? Например, человек только начинает заниматься всем этим на серьезном уровне и, допустим, берет слишком широкую область для себя. И тут начинают лезть костыли с периодическими изменениями и приростами результатов из смежных отраслей, и человек вязнет в этом как в болоте. Как сфокусироваться на первых порах?

Андрей: Такие истории возникают, если человек представляет себе многообразие приемов, которые может использовать. Если он только начинает, скорее всего, таких проблем не будет.

Дмитрий: Потому что изначальная база, о которой мы говорили, вытягивает существующими результатами, и человек ничего нового и не привносит?

Андрей: Да, можно так сказать. Здесь важна начитанность. Чем больше читаешь статей, тем проще их писать. Язык статей — это отдельный язык. Это научный английский. Причем научный английский в машинном обучении отличается от научного английского в биологии. Если человек читает много статьей, ему становится проще формулировать мысли и структурировать статью.

Дмитрий: Расскажите об особенностях, которые вы ожидаете увидеть в новичках — тех, кто только готовится присоединиться к вам.

Андрей: В первую очередь, это умение программировать. Область прикладная, без этого никуда. Если бы мы вели исследования в совсем фундаментальной области, можно было бы об этом не думать — хватило бы математической подготовки. Но все, что мы делаем, предполагает, что это будет имплементировано на Python, например. Навык программирования крайне важен.


Фото Hitesh Choudhary (Unsplash.com)

Второе — это базовые компетенции в области машинного обучения. Важно, чтобы человек в целом понимал, что такое машинное обучение, как оно устроено, даже если он будет заниматься своей узкой задачей. Например, он начал заниматься обучением с подкреплением, но тут все равно нужно понимать, как устроено машинное обучение в целом, что такое переобучение. Еще важно знать, какие модели и идеи существует, чтобы пытаться их применить у себя. Более важный фактор — мотивация, желание погружаться, внутренний интерес. Если у человека есть начитанность, понимание области, наличие собственных идей, он лучше сможет писать статьи и позиционировать себя в нашей области.

Дмитрий: Что вам удается делать помимо руководства лабораторией и участия в работе подопечных? Так или иначе вам приходится вникать, разбираться, подсказывать решения, исправлять ошибки. У вас есть какие-то личные сторонние проекты? Может быть, как-то по-особенному выглядит ваш день? Или все силы уходят только на профильную деятельность, а она и есть ваше хобби?

Андрей: Каждый мой день не похож на другой. Например, в ноябре я реже был в Питере, чем не в Питере. Говорить о том, что у меня есть какая-то последовательная регулярная деятельность в то или иное время, нельзя. Я пытаюсь выписывать, что хочу успеть сделать за месяц. Например, прочитать столько-то статей, пообщаться со своими аспирантами, раскидать задачи в зависимости от того, где я, чем занимаюсь, какие факторы влияют.

Я с детства хотел заниматься наукой, мне нравится уделять ей все время. Правда, руководство лабораторией — это не совсем наука. Организационная деятельность и научная деятельность — разные вещи. Обычно ученым не особо интересны организация и бюрократия. Если у человека получается хорошо управлять, то у него не остается времени на глубокое погружение в задачу. К сожалению, у меня не получается эффективно совмещать: либо я начинаю углубляться в руководство и выпадаю из контекста, либо начинаю исследование, и организационный процесс идет кувырком. Поэтому сейчас я стараюсь пересмотреть подход. У нашей лаборатории есть руководитель, Иван Сметанников, у нас есть административный штат, но сотрудников все еще не хватает.

Руководство — это сложный и напряженный процесс, он требует много времени. Это необходимое зло, чтобы заниматься научной деятельностью и решать не одну конкретную задачу. Я мог бы быть старшим научным сотрудником и заниматься одной или несколькими задачами, но так можно заниматься большим количеством тем, а это всегда интереснее — погружаться, выгружаться, придумывать решения. Мне интереснее придумывать решение, чем его имплементировать и проверять. Этим занимаются другие люди, но это — не делегирование рутины.


В исследовании практически никогда нельзя сказать: «Сделай вот это!» Скорее, говорят: «Попробуй сделать вот это и подумай вот над тем». Можно задать человеку направление, дать подсказки, у него совершенно не рутинный труд. Если сказать: «Попробуй решить эту задачу», то у кого-то это получится, а у кого-то — нет. Не всегда понятно, с чего начинать и куда смотреть. Где-то я просто направляю, где-то я ставлю задачу, где-то я чуть ли не решение выкатываю.

Дмитрий: И осуществляете подбор тех, кто будет заниматься различными направлениями?

Андрей: С каждым мы обсуждаем, что он хочет делать и о чем будут его исследования.

Дмитрий: Такой личный подход?

Андрей: Конечно. Многие исследования в машинном обучении — это довольно индивидуальные вещи. Понятно, что люди коллаборируют в группах и делают что-то совместно, но заставлять человека делать что-то — неэффективный подход. Бывает, что у него нет каких-то предпочтений, и ему можно предложить сделать что-то. Он может втянуться. Но если человек не втягивается, у него нет внутренней мотивации, он не будет читать, не будет развиваться. Он будет хорошим исполнителем, но этого мало, чтобы делать хорошие исследования. Нужен личный интерес. Поэтому надо подбирать исследование под человека.

Дмитрий: Какие вы порекомендуете источники или литературу для тех, кто хочет перейти от программирования в его широком смысле к теме машинного обучения?

Андрей: Основная рекомендация — курсы на Coursera Эндрю Ына (Andrew Ng). Есть более глубокие курсы у Высшей школы экономики. Важно, чтобы была практика. Машинное обучение — это о том, как алгоритмы реально работают с данными. Это далеко не математика, поскольку данные влияют на то, что с ними надо делать. Можно прочувствовать это при обучении, там много подводных камней и специфики в коде. Могу посоветовать книги: «Глубокое обучение» Сергея Николенко, более классических Хэсти, Тибширани, Фридмана или совсем классического Бишопа. Он, конечно, немного устарел, но составить представление можно хорошо.



Подкаст готовит и ведет dmitrykabanov.

Дополнительное чтение:




Стартапы Университета ИТМО (наши англоязычные материалы на Хабре):



Tags:Университет ИТМОмашинное обучениеучебный процесс в itpythonнаучная работа
Hubs: ITMO University corporate blog Programming Machine learning Studying in IT Interview
+8
5.1k 23
Leave a comment