На пути к естественному интеллекту |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-10-11 08:34 Machine Learning с каждым днём становится всё больше. Кажется, что любая компания, у которой есть хотя бы пять сотрудников, хочет себе разработать или купить решение на машинном обучении. Считать овец, считать свёклу, считать покупателей, считать товар. Либо прогнозировать всё то же самое.
Далеко не всегда можно оценить стоимость разработки. Но зачастую хватает даже порядка, чтобы начать работы и привлечь инвесторов. Но статья, скорее, не про это. Статья про специалистов по машинному обучению. Про бум специальности, про то, какие люди начинают приходить, как из единого, общего массива специалистов начинают вырисовываться профессии, про то, как сейчас решать ML-задачи. Disclaimer. Когда-то, 10 лет назад я начинал свою сознательную жизнь именно как разработчик Computer Vision (CV), а не более общего Machine Learning. Так что фокус статьи сдвинут в эту сторону. До 2012 года нейронных сетей в современном понимании не существовало. В CV было несколько работающих алгоритмов, которые решали определенные задачи с помощью нейронных сетей. Но их можно было решить и более простыми методами плюс минус с той же точностью. В классическом Data Science нейронные сети иногда использовали, но не часто. В принципе, и сейчас вы скорее наткнётесь на решения, использующие Boosting — алгоритмы (1,2) для топовых решений, почти всех побед в Kaggle. Лет 10 назад, чтобы заниматься распознаванием изображений, нужно было знать много (фурье/вейвлет-теорию, статистику, морфологию, десятки методов, таких как SIFT/HOG/Haar и т. д.). И даже если вы это знали, то далеко не факт, что решение, которое вы сделали, заработает. Алгоритмы были очень неустойчивы, качество плыло. Подход мог принципиально не работать. Производительности не хватало. Реально из 10 задач всего 1-2 имели пристойное решение. Тогда CV было прерогативой небольших исследовательских групп, их решения попадали в продакшн в единичных случаях. За 6-10 лет всё несколько изменилось. Сначала появились данные, теперь появились алгоритмы, чтобы работать с этими данными. Объявления о том, что требуются специалисты по ML висят на каждом гараже. Но откуда берутся специалисты? Что их порождает и в чём они разбираются? Классика Здесь обычно следует рассказ о том, что в институтах ничему не учат. Программы устарели, всё вырождается и т. д. Мне так не кажется. Я знаю кучу вузов, которые стабильно выпускают специалистов, разбирающихся в ML. Это могут быть кафедры (например, на Физтехе десятки кафедр, где ML — основной инструмент). Это могут быть хорошие доп. курсы. Это могут быть курсы в основной программе (говорят, что в Вышке хорошо учат). Часто встречаются научные руководители, которые подстёгивают интерес к ML-методам. В СколТехе есть адекватные лаборатории, но далеко не все. Ужасных примеров хватало. Очень большим плюсом университетов является то, что человек, который закончил университет, зачастую понимает базовые вещи: «дифференцируемость», «свёртка», «спектр» и т. д. Данные понятия не нужны в повседневной работе с машинным обучением, но могут понадобиться в исследовательской деятельности, в допиливании существующих алгоритмов.Тут есть несколько ключевых моментов:
А вот дальше — облом. Людей, которые реально готовы совершенствоваться и развиваться, в институтах очень мало. А тех, кто готов, стараются оторвать разные компании и под разные задачи. С выпуска того же Физтеха от силы человек 10-30 может серьёзно уйти в ML. Модерн Что такое ML? Это, скорее, наука или ремесло? Мне кажется, что граница в данной деятельности зыбка как нигде. Золото сейчас рассыпано на поверхности. Можно быть крутым геологом и предсказывать месторождения, где копать, зарабатывая миллионы, если докопать. А можно неплохо существовать, собирая рассыпанное по поверхности. Есть замечательные российские примеры Prism и N-Tech, где компании начались практически из единичных моделей, вокруг которых был построен весь бизнес.Иногда на Kaggle можно выиграть, не обладая фундаментальными знаниями, а просто выбрав удачную модельку или заметив косяк организаторов. Знаешь Python и английский на уровне школы? Вперёд! Потратить 2-3 недели на прослушивание курсов на Coursera. Есть замечательные курсы от Яндекса, от Физтеха и т. д. Выучить Keras|PyTorch|TensorFlow — ещё неделя. И ты можешь общаться на одном языке с ML-исследователями. Только вот опять проблема. Знаний недостаточно. Повезти, конечно, может. Вряд ли такой человек решит серьёзную задачу. Обычно он берёт последнюю модельку, про которую слышал, и пробует. Может покрутить 2-3 параметра. Только вот вероятность того, что он выберет правильную модельку не высока. Тут нужно знать бэкграунд и подборку статей за последние пару лет. А тем более переработать модель, отработать входы-выходы классическими алгоритмами, заметить багу, понять границы применимости. Олдфаги Модерн — это хорошо. И вдвойне хорошо, когда в ML переходит человек из смежной профессии. Сначала ощущения как от пересаживания с автоматической коробки на механическую. Но потом выравнивается. Будучи специалистом в CV/Радиолокации/Байесовской теории, несложно понять, как всё это применять к машинному обучению. В самом начале были люди, которые пришли в современные нейронные сети из несовременных нейронных сетей. Многие из них стали известными. Вот что значит оказаться в нужный момент в нужном месте! ;)Кстати, сейчас переток в ML почти прекратился. Года 2 назад каждый пытался читать книжки/разобраться/найти хорошее место работы. А сейчас таких единицы. Те, кто не успел раньше. Комьюнити Пару лет назад я услышал забавную фразу: «Россия — страна товариществ». Ещё с царских времён в России были популярны клубы по интересам. Кружки, товарищества, семинары и т. д. Циолковский с товарищами — это же был тот же самый кружок по интересам. Работает это до сих пор. Это и «самое большое в Европе» (со слов организаторов) сообщество ODS. Регулярные тренировки и лекции от Яндекс и сообщества, существующие только онлайн, например, тут.Конечно, не стоит забывать о reddit. Основной профит таких сообществ — можно в реальном времени задавать вопросы, анализировать свои ошибки, делиться экспириенсом. Народ кидает интересные подборки статей, делится своими достижениями. Ну и да, конференции. Что из этого выходит и как это помогает Важным моментом является польза для общества и бизнеса. Чем может вообще заниматься специалист по Machine Learning? Недавно на Хабре была забавная статья про программистов. И в целом, классификация подходит, но с некоторой коррекцией в сторону экстремальных перегибов.В-первую очередь есть звёзды ML-сетей. Они придумывают новые архитектуры, пишут статьи, экспериментируют. К сожалению, пользы в практических задачах от них мало. Годы работы могут породить 1-2 удачные идеи. Зачастую побочных и не всегда завязанных на основную задачу. При этом делать стандартную задачу им может быстро наскучить. С другой стороны, именно они двигают край науки. Без их разработок невозможно получать качественно новый результат. В России я натыкался на единицы таких людей. Тут мало кто любит финансировать именно научные разработки. Люди иногда пытаются делать что-то новое на энтузиазме. Но тут нужны ресурсы, те же кластеры видеокарт. Во-вторых, линейные программисты. Сюда попадают все ресёрчеры с отсутствием фантазии и шила в попе. Зачастую они хорошо знают сети, понимают математику, знают фреймворки. Но такие люди работают не от цели, а от задачи. Потратить ночь, но значительно подтянуть результат — не про них. Они часто ограничиваются готовой архитектурой и 1-2 правками, если начальник не скажет сидеть и пробовать. Но если сидеть и пробовать, то надо давать им целый список задач. Линейный программист, у которого есть не связанная с ML задача, зачастую самодостаточен. Сделать базу данных со стандартными входами-выходами можно без особого напряжения воображения. А вот обучить сетку на редкую задачу — нет. При этом:
В-третьих, это дельцы. Для них нейронные сети — это настоящий прииск. Людей, которые могут взять задачу от формирования базы и до продакшна, практически нет. Нужно знать не только все актуальные статьи, но и понимать логику существующих бизнес-процессов, понимать, как совмещается эта логика с машинным обучением. И самое главное — объяснять заказчику, как работает ML и как применить его в проекте. И почему ему оно не нужно. Сейчас существуют десятки, если не сотни самодостаточных групп из 1-10 разработчиков, которые аутсорсят задачи очень крупному бизнесу. Даже видел сайты-агрегаторы для них. Ну и, естественно, пассажиры. ML никто не понимает. Если ты красиво заливаешь, то можешь рассчитывать на хорошие позиции. А красиво заливать — просто. Всего месяц чтения статей. Самую эпичную историю слышал вчера. Один из топ-20 банков России решил сделать себе подразделение машинного обучения. Нанял туда одного человека. Весь опыт человека ограничивался просмотром курсов на Coursera. Нельзя забывать, что в ряде ситуаций «пассажиров» не отличить от начинающих ML-ресёрчеров. Нужно тщательно спрашивать про опыт и про персональное участие, не ведясь на оптимистичные посулы вида «да тут можно просто U-net забацать!». Если у вас свой бизнес + понимание того, что нужно сделать — таких товарищей просто отсечь. Устройте перекрёстный допрос с пристрастием на тему методов, которые использовал кандидат, а также почему эти методы применимы в вашей задаче и как это можно сделать другими способами. Специализации Забавно, но ML уже имеет чёткий список специализаций. Причём мне кажется, что в ближайшие годы они будут сильно углубляться и их число вырастет:
Если вы захотите собрать базу, сделать по ней ресёрч, а потом внедрить результаты и на кластерах, и на мобильниках, то вам нужен либо человек-оркестр, либо огромная команда. Оптимальным же будет являться какой-то промежуточный пункт. При этом не забывайте самого главного! Зачастую сделать полурабочую модель прототипа можно за один день! Резюмируя
Ах да! Если хотите познакомиться с тем, как все эти специальности устроены, понять, кто есть кто в мире машинного обучения, подёргать за бороду специалистов из Яндекса и Mail.ru, то это можно сделать на конференции SmartData 2017. Организаторы смогли собрать в одном месте, на мой взгляд, очень разношёрстные доклады, которые проливают свет на различные уголки ML-мира. Источник: habrahabr.ru Комментарии: |
|