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

Две из моих самых любимых исследовательских работ из его хранилища: Систематическая оценка достижений сверточной нейронной сети на Imagenet и Все, что вам нужно, это хорошая инициализация. Дмитрий также является одним из соучредителей Восточноевропейской конференции по компьютерному зрению, которая предоставляет исследователям CV / ML уникальную возможность встретиться, поделиться своими знаниями, узнать о новых тенденциях и найти единомышленников. Узнать больше о Дмитрии можно здесь.

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

Интервью с Дмитрием Мишкиным, исследователем компьютерного зрения

Саяк: Привет, Дмитрий! Спасибо за интервью. Рад видеть вас здесь сегодня.

Дмитрий: Привет, Саяк! Спасибо тебе за приглашение :)

Саяк: Может быть, вы могли бы начать с того, чтобы представиться - как выглядит ваша исследовательская работа, над чем вы сейчас работаете и так далее?

Дмитрий: Я работаю в основном над вещами, которые мне интересны, но доступны по цене == можно запустить на моем локальном компьютере. Есть два изначально отдельных направления: (а) соответствие двух представлений и (б) глубокое обучение, которые сейчас объединяются.

Во-первых, согласование двух представлений, также называемое широким базовым стереозвуком, является базовой задачей, необходимой для 3D-реконструкции и всего подобного. У вас есть два или более изображения, и вы должны ответить, изображают ли они один и тот же объект. Если да - также вывести соответствие пикселей или областей между изображениями и геометрические отношения между ними, см. Пример здесь.

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

(Я начал изучать компьютерное зрение с помощью этого задания, и это также тема моей докторской диссертации, которую я заставляю себя начать писать)

С другой стороны, мой интерес к глубокому обучению начался с моей промышленной работы - стартапа по продаже фотографий в магазин, который я соучредителем и который потерпел неудачу. И, конечно же, Kaggle. Бумаги, о которых вы упомянули, на самом деле родились совершенно случайно. Все, что вам нужно, это хорошая инициализация - это результат моего участия в Национальном кубке науки о данных Kaggle в 2015 году. Было довольно сложно заставить CNN хорошо учиться, и я выполнил простую эмпирическую схему инициализации. , который сработал на удивление хорошо. Систематическая оценка достижений сверточной нейронной сети на Imagenet на самом деле была репозиторием GitHub с журналами, где я тестировал различные архитектурные решения - просто для того, чтобы использовать GPU, который я недавно купил. После нескольких месяцев экспериментов я спросил своего руководителя, Иржи Матаса, стоит ли его публиковать, и он ответил: Давай попробуем. Вот и вся история.

Сейчас в области исследований я в основном работаю над изучением компонентов для сопоставления двух представлений, а также над библиотекой с открытым исходным кодом Kornia (https://kornia.github.io/), которая реализует классические алгоритмы компьютерного зрения в PyTorch в дифференцированный способ. Я также консультирую в основном украинские компании, которые время от времени занимаются компьютерным зрением и глубоким обучением. Если вы хотите сотрудничать, свяжитесь со мной.

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

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

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

Дмитрий: В то время, когда я начинал, языком по умолчанию был C ++, и я был ужасным, супер ужасным программистом. Вы знаете, утечки памяти, обратные вызовы, оптимизация - все в этом роде. К сожалению, я не могу сказать, что преодолел их, став лучшим программистом. Поле просто переключилось на Python, и это решило множество проблем (автоматически). Но я также пытаюсь улучшить свои навыки работы с программным обеспечением - они часто являются более важными узкими местами, чем что-то специфичное для машинного обучения.

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

Дмитрий: Постройте что-нибудь для себя. Моим лучшим исследованием было на самом деле решение проблем, которые у меня были: как инициализировать CNN? Какую функцию активации выбрать? Как сопоставить эти изображения, которые я сделал я? То, что я сделал, потому что я должен - не так хорошо. Я имею в виду, они не ужасны, но :) К счастью, в нашей лаборатории мы не вынуждены 100% времени работать над проблемами, связанными с докторской диссертацией или чем-то в этом роде. У нас довольно много свободы, чего не всегда бывает в других лабораториях.

Саяк: Это абсолютно верно, и я считаю это весьма обнадеживающим. Такие области, как компьютерное зрение и машинное обучение, быстро развиваются. Как вам удается отслеживать последние важные события?

Дмитрий: Не знаю :) Несколько раз в неделю читаю arxiv-sanity, также ленту в Твиттере, но все равно часто что-то пропускаю. Темп такой быстрый, что я не уверен, смогу ли я вообще полностью его уследить. С другой стороны, я бы сказал, что лучше пропустить 10 хороших статей, потратив это время на реализацию собственных идей и размышления о них. Если вы читаете слишком много, вы как-то перестаете самостоятельно черпать оригинальные идеи. Но если вы хотите быстро узнать, что работает - проверьте, есть ли соответствующее соревнование Kaggle. Kaggle Crowd-Mind знает / быстро находит наиболее практичный способ решения проблемы.

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

Дмитрий: Я расскажу вам историю. Как доктор философии студент, мне нужно пройти несколько занятий и сдать экзамены. Однажды я много читал и «узнал», но с треском провалил экзамен из-за непонимания. Поэтому в следующий раз я реализовал все, что связано с этим курсом, с нуля на Python / NumPy. Тогда меня не смутил ни один вопрос на экзамене. Внедрение вещей и попытки их улучшить - наверное, лучший способ обучения, который я знаю.

Саяк: с этим согласны 101%. Есть ли планы написать книгу в ближайшее время?

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

Саяк: Очень задумчиво, Дмитрий. Есть какие-нибудь советы новичкам?

Дмитрий: Верьте в себя и тренируйтесь. Практикуйтесь в том, что вам интересно, и не начинайте с надоевшей теории. Приведу пример: магистрант, которым я руководил, Орест Купын разработал DeblurGAN и стал первым студентом украинского университета, публиковавшимся на CVPR. Он начал заниматься компьютерным зрением за год до этого - впечатляющий, но достижимый прогресс.

Много визуализируйте. А раз что-то сделали - упакуем. Разработайте красивое репо, которым легко пользоваться. Напишите об этом в блоге. Вы были бы удивлены, сколько документов не имеют простого в использовании примера предлагаемой вещи, что плохо сказывается на их воздействии (каламбур). Я даже написал пост о такой упаковке: Исследование машинного обучения как продукт. Насколько легко использовать вашу работу? . А раз уж ты уже не новичок - помоги другим!

P.S. Я фанат курсов fast.ai, проверьте их, они классные!

Саяк: Даже я большой поклонник курсов fast.ai, и они помогли выучить много вещей быстрее, чем я когда-либо мог представить. Никогда не забуду упомянутые Вами моменты, Дмитрий. Большое спасибо за это интервью и за то, что поделились своими ценными идеями. Я надеюсь, что они будут очень полезны сообществу.

Дмитрий: Надеюсь. Еще раз спасибо за приглашение, для меня большая честь находиться в такой замечательной компании :)

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

Если вы хотите узнать обо мне больше, загляните на мой сайт.