как стать инженером по машинному обучению

Как я не стал специалистом по машинному обучению

Истории успеха любят все. И на хабре их достаточно много.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

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

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

Я много лет проработал в системной интеграции и тех.поддержке. Несколько лет назад я даже поехал работать системным инженером в Германию, чтобы получать больше денег. Но область системной интеграции меня уже давно не вдохновляла, и я хотел сменить сферу на что-то более денежное и интересное. И в конце 2015 года наткнулся на хабре на статью «Из физиков в Data Science (Из двигателей науки в офисный планктон)», в которой Владимир описывает свой путь в Data Science. Я понял: это то, что мне нужно. Я неплохо знал SQL и мне было интересно работать с данными. Особенно меня впечатляли вот такие графики:

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Даже минимальная зарплата в этой сфере была выше, чем любая моя зарплата за всю предыдущую жизнь. Я твердо решил стать инженером по машинному обучению. Последовав примеру Владимира, я записался на coursera.org на специализацию из девяти курсов: «Data Science».

Я делал по одному курсу в месяц. Я был очень прилежным. На каждом курсе я выполнял все задания, пока не получал высший результат. Параллельно с этим я брался за задания на kaggle, и у меня даже получалось. Понятно, что призовые места мне не светили, но в 100 несколько раз я попадал.

После пяти успешно выполненных курсов на coursera.org и еще одного “Big Data with Apache Spark” на stepik.ru я почувствовал в себе силы. Я понял, что начинаю врубаться в тему. Я понимал, в каких случаях какие методы анализа следует использовать. Я достаточно неплохо разобрался с Python и его библиотеками.

Моим следующим шагом был анализ рынка вакансий. Необходимо было выяснить, что еще нужно знать, чтобы получить работу. Какие предметные области стоит изучить, которые интересны работодателям. Параллельно с оставшимися 4 курсами я хотел взять еще что-то узкоспециализированное. То, что хочет видеть конкретный работодатель. Это повысило бы мои шансы получить работу для новичка с хорошими знаниями, но без опыта.

Я зашел на сайт по поиску работы, чтобы провести свой анализ. Но вакансий в радиусе 10 километров не было. И в радиусе 25 километров. И даже в радиусе 50 км. Как так? Быть не может. Я зашел на другой сайт, потом на третий… Потом я открыл карту с вакансиями и увидел примерно ЭТО:

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Оказалось, что я проживаю в самом центре аномальной зоны отчуждения питона в Германии. Ни одной грёбаной приемлемой вакансии специалиста по машинному обучению или хотя бы разработчика на Python в радиусе 100 километров. Это фиаско, братан.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Да, можно было поехать в Мюнхен, Кёльн или Берлин – там были вакансии. Но на этом пути встало одно серьёзное препятствие.

Первоначальный наш план при переезде в Германию был такой: ехать туда, куда берут. Нам было абсолютно без разницы, в какой город Германии нас забросит. Следующий шаг – освоиться, оформить все документы и подтянуть язык. Ну а потом рвануть в большой город, чтобы зарабатывать больше. Нашей предварительной перспективной целью был Штутгарт. Большой технологичный город на юге Германии. И не такой дорогой, как Мюнхен. Там тепло и растет виноград. Много промышленных предприятий, поэтому много вакансий с хорошей зарплатой. Высокий уровень жизни. Как раз то, что нам нужно.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

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

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

Мы с женой стали обсуждать вариант переезда в Штутгарт или Франкфурт… Я начал искать вакансии, смотреть требования работодателей, а жена принялась присматривтать квартиру, садик и школу. Примерно через неделю поисков жена мне сказала: «А знаешь, я не хочу ни во Франкфурт, ни в Штутгарт, ни в любой другой большой город. Я хочу остаться тут».

И я понял, что полностью с ней согласен. Я тоже устал от большого города. Только пока я жил в Санкт-Петербурге, я этого не понимал. Да, большой город – идеальное место, чтобы строить карьеру и зарабатывать деньги. Но не для комфортной жизни семьи с детьми. И для нашей семьи этот маленький городок оказался как раз тем, что надо. Здесь было всё то, чего нам так не хватало в Питере.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Мы решили остаться, пока наши дети не подрастут.

Ну а как же Python и машинное обучение? И те полгода, что я уже потратил на всё это? Да никак. Вакансий рядом нет! Тратить 3-4 часа в день на дорогу до работы я больше не хотел. Я так уже работал в Питере несколько лет: ездил с Дыбенко в Красное село, когда еще не построили кольцевую. Полтора часа туда и полтора обратно. Жизнь проходит мимо, а ты смотришь на мелькающие дома из окна автомобиля или маршрутки. Да, в дороге можно читать, слушать аудиокниги и все такое. Но это быстро надоедает, и через полгода-год ты просто убиваешь это время, слушая радио, музыку и бесцельно глядя вдаль.

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

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

«Что нас не убивает, то делает сильнее». Вы же знаете эту мудрую фразу? Так вот, я считаю, что это полная чушь! У меня есть знакомый, который на волне кризиса 2008 потерял работу директора достаточно крупного автосалона в Питере. Что он сделал? Правильно! Как настоящий мужчина, он пошел искать работу. Работу директора. А когда работу директора не нашел за полгода? Он продолжил искать работу директора, но уже в других сферах, т.к. работать менеджером по продажам автомобилей или кем-то кроме директора для него было не комильфо. В итоге он ничего не нашел и за год. А потом забил на поиск работы вообще. Резюме же висит на HH – кому надо, тот сам позвонит.

И сидел он без работы четыре года, а жена его всё это время зарабатывала деньги. Спустя год она получила повышение, и денег у них стало больше. А он всё сидел дома, пил пиво, смотрел телевизор, играл в компьютерные игры. Конечно, не только это. Он готовил, стирал, убирал, ходил по магазинам. Он превратился в отожравшегося борова. Сделало его всё это сильнее? Я так не думаю.

Мне тоже можно было и дальше пить пиво и винить работодателей, что они не открыли вакансий в моей деревне. Или винить себя в том, что я такой дурак и даже не удосужился посмотреть вакансии прежде, чем взяться за Python. Но толку в этом не было. Мне нужен был план Б…

В итоге я собрался с мыслями и занялся тем, с чего стоило начать в самом начале – с анализа спроса. Я проанализировал рынок вакансий в сфере ИТ в моем городе и пришел к выводу, что рядом со мной есть:

Выбор оказался невелик:

В итоге, с точки зрения перспектив, зарплаты, распространённости и возможности удалённой работы, победила Java. На самом деле, это Java выбрала меня, а не я её.

А что было дальше – многие уже знают. Об этом я писал в другой статье: «Как стать Java разработчиком за 1,5 года».

Поэтому не повторяйте моих ошибок. Несколько дней вдумчивого анализа могут сэкономить вам уйму времени.

О том, как я изменил свою жизнь в 40 лет и переехал с женой и тремя детьми в Германию я пишу в своем телеграм-канале @LiveAndWorkInGermany. Пишу о том, как это было, что хорошо и что плохо в Германии, о планах на будущее. Коротко и по делу. Интересно? — Присоединяйтесь.

Источник

Сколько зарабатывает специалист по машинному обучению: обзор зарплат и вакансий в 2021

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Привет, Хабр! Мы продолжаем свою серию аналитических статей о рынке зарплат и вакансий в IT. И сегодня на очереди ML-инженер, или специалист по машинному обучению, тем более, что 23 марта Skillfactory запускает новый поток продвинутого курса Machine Learning и Deep Learning.

Machine Learning Engineer – специальность № 1 в разработке и проектировании сложных систем, которая в декабре 2020 года занимала 38,54 % вакансий отрасли и примерно 9 % всех вакансий на российском рынке IT. Так давайте разберёмся, сколько на самом деле получают специалисты по машинному обучению, как попасть в ML и куда можно развиваться. Поехали!

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

Кто такой ML-инженер

Machine Learning Engineer – это эксперт в области искусственного интеллекта. Именно он разрабатывает алгоритмы, по которым «думает» компьютер.

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

А ещё специалист по машинному обучению создает ботов, которые общаются с клиентами. Так что именно им нужно говорить спасибо за «Бот, позови оператора». «Алиса», Siri и голосовой помощник Олег, – это, кстати, тоже детище ML-инженеров.

Профессия инженера машинного обучения – это подраздел Data Science. И деятельность ML-инженера больше ориентирована на практические задачи. Он решает бизнес-задачи, используя алгоритмы машинного обучения. Он может использовать существующие наработки или писать каждый раз новые – это не важно. Единственная цель – качественное выполнение задачи с наименьшими затратами ресурсов.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучениюОсновные компетенции специалиста ML-Engineer

Что требуют работодатели от ML-Engineer

Пул навыков довольно большой. Мы проанализировали свыше 350 вакансий и заметили, что в большинстве из них чётко разделены компетенции специалиста по Data Science и ML. Но требования к вакансиям всё равно очень схожие.

Дело в том, что специалистов по машинному обучению прицельно ищут крупные компании, которые используют или планируют использовать алгоритмы искусственного интеллекта в своих проектах.

Работодатели в большинстве случаев знают, для чего им нужен специалист по ML и какими компетенциями он должен обладать. Вот те, что попадаются в вакансиях чаще всего:

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

Базис программирования. Python упоминается в абсолютном большинстве вакансий – примерно 92 % всех, но также работодатели требуют знания R, Java, C++, Scala. Также необходимы навыки использования библиотек вроде pandas, OpenCV, Numpy, Eigen, NLTK, Spacy, scikit-learn или других.

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

SQL. В 73 % вакансий требуют знания SQL, но очень много вакансий, в которых необходимы навыки в NoSQL СУБД.

Английский язык. Все без исключения международные команды требуют уровень английского не ниже, чем Intermediate, а лучше – Upper Intermediate. Для проектов на российском рынке это не обязательно, но почти всегда выделяется как дополнительный плюс.

Гибкие методологии разработки проектов. Примерно в трети вакансий упоминаются Agile, Scrum, Kanban и другие гибкие методологии. Опыт работы с ними считается плюсом, но не обязателен.

В целом требования в вакансии ML-инженера и дата-сайентиста довольно сильно пересекаются. Компании малого и среднего бизнеса не делают между ними практически никакой разницы и часто ищут сразу «Data Scientist / ML-Engineer».

Софт-скилы предсказуемы. Они с минимальными расхождениями копируют требования из вакансий Data Scientist и Data Analyst:

аналитический склад мышления, логика;

внимательность к деталям.

Но все же есть и любопытные наблюдения. В целом софтскиллы упоминают в два раза меньше компаний, чем, к примеру, в вакансиях Data Analyst. Здесь ключевую роль играют хард-скилы. Личностные навыки и особенности характера вторичны.

Зарплаты и вакансии в России и не только

Подходим к самому интересному. По состоянию на 04.03.2021 и данным с hh.ru, в России имеются 1052 вакансии, которые содержат упоминания ML или машинного обучения.

Но больше половины из них – это пересечение Python-девелопера с навыками в ML и дата-сайентиста, который должен хотя бы в общих чертах понимать, как работает машинное обучение.

Непосредственно к машинному обучению относится чуть больше 500 вакансий. За 2020 год востребованность специальности выросла более чем в 2 раза и продолжает расти.

Большинство вакансий открыто в Москве – 55 %. Примерно 17,5 % размещены для Санкт-Петербурга. Примерно 24,5 % разбросаны по другим крупным городам России с населением выше 500 000 человек. Количество вакансий в населённых пунктах меньше 200 000 жителей не превышает 2 %.

В целом локации и востребованность коррелируют с отраслями Data Science и Data Analyst. Основной работодатель – московские компании и международные бренды, у которых есть офис в Москве.

Основная проблема – 80 % компаний не указывает вилку зарплат или хотя бы примерный уровень, на который может рассчитывать соискатель.

Мы проанализировали 200 вакансий к открытыми предложениями по зарплате. Результаты довольно неплохие. Медиана проходит по точке в 165 000 рублей. Это уровень месячной зарплаты, на который реально может рассчитывать специалист с 1–2-летним опытом в ML.

Junior ML-engineer или специалист, который хочет попасть в машинное обучение из смежных отраслей, может рассчитывать на оплату от 80 тысяч рублей.

Опытный сеньор может зарабатывать от 200 000 рублей. И это далеко не предел. В крупных международных компаниях отделы ML сегодня растут очень быстро, и специалист топового уровня может рассчитывать на зарплату 330 000 рублей.

В регионах ситуация значительно хуже. Примерно половина вакансий вообще смешивает специалистов по ML, DS и DA в одного. А в остальных навыки машинного обучения – это дополнительная компетенция, а не основная.

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

Зато на международном рынке всё хорошо у специалистов по машинному обучению.

По данным salary.com, годовая зарплата ML-инженера в США составляет 120 000 долларов по медиане. Это 10 000 долларов в месяц или, в переводе на деревянные, 730 000 рублей.

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

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

Откуда прийти и куда расти специалисту по машинному обучению

ML-инженер – не очень дружелюбная специальность для новичков. В неё можно попасть «с нуля», но для этого нужна как минимум крепкая математическая база. В идеале – математическое или экономическое высшее образование. И даже в этом случае нужно быть готовым к сложностям – изучать придётся очень много всего.

Для успешного продвижения и роста нужно понимать, как работает сфера Data Science целиком. Поэтому идеальные стартовые площадки для перехода в ML – это дата-сайентист и дата-аналитик.

Также в машинное обучение могут перейти разработчики на Python. Для этого нужно будет разобраться с основными ML-библиотеками.

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

ML-инженер — универсальный специалист, подобный швейцарскому ножу. Для желающих стать таким специалистов, у нас есть специальный продвинутый курс Machine Learning и Deep Learning. А промокод HABR даст скидку 50%.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Источник

От веб-разработчика до специалиста по машинному обучению

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

Не у каждого хватает смелости поменять освоенную профессию, в которой уже достиг каких-то вершин. Ведь это требует больших усилий, а положительный результат не гарантирован. Полтора года назад мы рассказывали, как один из наших тимлидов серверной разработки переквалифицировался в iOS-программиста. И сегодня мы хотим рассказать о ещё более «крутом повороте»: Алан Chetter2 Басишвили, занимавшийся frontend-разработкой, настолько увлёкся машинным обучением, что вскоре превратился в серьёзного специалиста, стал одним из ключевых разработчиков популярного проекта Artisto, а теперь занимается распознаванием лиц в Облаке Mail.Ru. Интервью с ним читайте под катом.

Почему ты захотел быть программистом?

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

В каких проектах ты работал над фронтендом, что нравилось больше всего, что нового использовал?

Начинал, как и многие, с CMS. Эта работа сама меня нашла. Думаю, многих программистов, даже если они никак не связаны с вебом, хоть однажды, но просили сделать онлайн-магазин. Дальше была целая сеть магазинов, там я писал админки. Делалось это без фреймворков, изобретали велосипеды, но было очень увлекательно. Там же полюбил проектирование архитектуры ПО. А затем перешёл к работе над фронтендом. Писал чаты, p2p-видеозвонки и многое другое.

Что общего между вороном и письменным столом? В смысле, между фронтендом и нейросетями? Почему так быстро удалось изучить их?

Ничего общего, за исключением необходимости писать код. А помогло математическое образование. Кроме того, программисту проще изучать deep learning, как мне кажется.

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

С чем связан тогда интерес к переходу из фронтенда в нейросети?

Меня всегда это интересовало, и дипломный проект был связан с машинным обучением, хотя я не очень тогда понимал, что я делаю. На Coursera я прошёл курс «Введение в машинное обучение». Постепенно зарождалось понимание, как работают вещи, которыми я пользуюсь каждый день, такие как персональные рекомендации, поиск и многое другое, и понимание приводило меня в восторг. Это, наверное, один из основных мотиваторов — жажда понять, как работает современное машинное обучение. И когда я познакомился с deep learning, то потерял интерес ко всему остальному. Фронтенд стал просто рутиной. Я приходил на работу, и, хотя у меня были довольно интересные и сложные задачи, они отошли на второй план по сравнению с тем, чем я занимался по ночам.

А какой график занятий у тебя был?

Поначалу, когда было только введение в машинное обучение, я тратил на это только выходные. Затем я начал участвовать в соревновании. На него уходили и выходные, и ночи. До трёх часов ночи я обычно сидел и занимался. И после этого ещё довольно долгое время оставался запал, так что я продолжал изучать нейросети каждый день по ночам. Так я прожил полгода.

Что ты рекомендуешь почитать про нейросети из вышедшего за последние полгода на уровне, после чего можно вносить реальный вклад в разработку?

Сейчас есть множество курсов, где всё разложено по полочкам. Они могут дать очень быстрый старт. По нейросетям есть замечательный стенфордский курс cs231n, его ведёт Андрей Карпатый. Далее можно читать и конспектировать «Deep Learning» от Яна Гудфеллоу. Ещё неплохой ресурс Neural Networks and Deep Learning. Но начинать, конечно, лучше с основ ML.

Как считаешь, какой формат обучения сейчас лучше: книги, курсы, видео на YouTube, ещё что-то, может быть?

Мне показалось разумным сначала окончить курсы, а затем прочесть книги, потому что на курсах всё довольно упрощённо, там разжёвывают информацию, а книги дают уже полное понимание. Сегодня по машинному обучению существует очень много курсов. Тот, что я окончил на Coursera, называется «Введение в машинное обучение», им занималась команда из «Яндекса», включая Воронцова.

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

Также очень помогает писать код. Только тогда начинаешь замечать важные детали и получать настоящий опыт. Можно прочитать 50 статей, и на выходе у тебя что-то останется в голове, но на уровне концепции. А чтобы действительно что-то понять и научиться это применять, нужно сесть и начать программировать. Самое эффективное — поучаствовать в каком-нибудь соревновании типа Kaggle. Или просто брать и делать свой проект на основе прочитанного.

Какие блоги по нейросетям ты читаешь и почему?

У Карпатого есть отличный блог, но новые посты давно не появлялись. Ещё OpenAI Blog, inFERENCe. Читаю в Twitter и Facebook свежие новости ведущих разработчиков. Мне нравится поисковик Карпатого по научным публикациям. Там есть ещё рекомендации и очень интересная рубрика «Топ Хайп» — это самые часто упоминаемые в твитах статьи.

Если бы у тебя была возможность освоить новую технологию в этом году, что бы это было?

Хочу поплотнее поработать с GAN-архитектурами. Это подход к обучению генеративных сетей. Допустим мы хотим генерировать правдоподобные изображения спален. Для этого мы обучаем генератор (сеть принимающую случайный вектор и выдающую изображения) обманывать дискриминатор (сеть обучаемую отличать настоящие спальни от сгенерированных). То есть сети противостоят друг другу и совершенствуются во время обучения. В конце концов генератор может выдавать изображения, которые иногда могут обмануть и человека. На практике GAN хорошо себя показали в задаче повышения разрешения изображений (SRGAN), а также позволили генерировать правдоподобных котиков по наброскам как в pix2pix.

Можно ли использовать технологии нейросетей для фронтенда. И если да, то где?

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

А какие сейчас ещё есть интересные применения нейросетей? Все мы знаем про обработку фоток, видео, сейчас ещё генерация всяких лиц. А какие ещё в принципе возможны применения?

Из прочих современных применений нейросетей можно отметить генерирование речи, например проект WaveNet. Уже получается очень похоже на настоящую речь. Также активно ведутся работы по автоматической подгонке видеоряда под конкретную речь, например можно будет «снять», как какой-нибудь политик говорит те или иные слова. Скоро нас ждёт мир, в котором будет уже непонятно, что фальшивка, а что нет.

Как ты оптимизируешь свой код?

Как и остальные: профилирую и устраняю узкие места. Если речь об оптимизации inference-сети, то тут всё, как правило, сделано за нас, за исключением случаев с самописными слоями. С ними приходится повозиться.

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

Сейчас нет. Работа достаточно интересна, чтобы заниматься ей как хобби. Чтобы отвлечься, читаю книги и смотрю сериалы.

Какие задачи для решения с помощью нейросетей ты считаешь самыми сложными/интересными?

Беспилотные автомобили — очень сложная и интересная проблема. Такая система должна работать очень точно. Распознавать машины, дорогу, деревья, тротуар, пешеходов, самое сложное — соединять всё это вместе и давать автомобилю команду, куда ему повернуть, ехать побыстрее или помедленнее. Ко всему прочему ответственность очень велика. Заменить все автомобили беспилотными будет трудно, но это полностью решаемая задача. Уже сейчас есть автомобили с некоторыми навыками беспилотных. Ошибки, безусловно, ещё случаются. Google идёт по пути накопления огромнейших выборок (машины проехали 3 миллиона миль). Большое количество их машин каждый день ездят, собирают информацию, выявляют краевые случаи ошибок ИИ, и специалисты всё время их дообучают. В итоге сейчас они готовы выходить в коммерческую эксплуатацию, запустили бета-программу. Думаю, у них наверняка будет самый лучший беспилотник. К тому же на первых порах человек может сидеть за рулем и контролировать. А уж если посмотреть, как люди водят в России, то беспилотники гораздо безопаснее и их надо внедрять как можно скорее.

Медицина — также одно из важнейших направлений для машинного обучения. Представьте, что вас обследует не один врач-человек, а объединённое экспертное мнение всей мировой — западной, азиатской, аюрведической, какой хотите — медицины, которая объединяет экспертизу и статистику со всего мира. Или посмотрите на то, с какой точностью удалось находить рак на снимках биопсии. А главное, эти методики легко масштабировать.

А у искусственного интеллекта есть понятие обновления в софте? Первая версия, потом накатили вторую версию? Один раз запрограммировали — и он сам обучается?

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

То есть в таком виде софта не может быть серьёзных ошибок?

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

как стать инженером по машинному обучению. Смотреть фото как стать инженером по машинному обучению. Смотреть картинку как стать инженером по машинному обучению. Картинка про как стать инженером по машинному обучению. Фото как стать инженером по машинному обучению

То есть может быть такое, что машина в прошлой своей версии понимала, что это на картинке человек идёт, а потом ей накатывают новую версию — и она уже не понимает?

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

Ты работал над проектом Artisto, расскажи, как он начинался.

Мы взаимодействовали с Поиском Mail.Ru, у нас была команда, человек пять на первом этапе. Проект делался на энтузиазме. Недели за две мы получили вменяемые результаты, ещё недели две доводили до состояния, необходимого для production, параллельно допиливали бекенд. За месяц выпустили продукт, работающий с видео. Изначально пытались реализовать обработку фотографий, но потом решили, что не стоит повторять Prisma, нужно создавать что-то новое. Потом люди начали уходить, потому что у них были свои дела.

Чем различаются обработка фото и видео?

В Artisto видео разбивается на кадры, а затем они стилизуются независимо друг от друга. Есть, к примеру, другой метод стилизации видео, дающий более плавный результат. Там получается сложнее с учётом так называемого optical flow, когда для постоянства стилизации мы отслеживаем, куда «перетекают» пиксели от кадра к кадру. В частности мы стилизуем один кадр, а затем используем его модификацию для стилизации следующего. Мы знаем, как в следующем кадре расположен объект, двигаем все пиксели, которые есть на картинке, и стартуем с этого кадра. Потом берём следующий кадр, опять optical flow, двигаем пиксели, стартуем с этого кадра, стилизуем его. И так далее.

В Artisto стилизуется не весь кадр целиком, а только изменившиеся фрагменты?

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

В каких проектах нашей компании уже используется машинное обучение?

Во многих: в Почте, Поиске, Одноклассниках, ВКонтакте, Юле, Бипкаре. Например, с его помощью анализируется текст публикаций в соцсетях и на сайтах, индексируемых нашим поисковиком. Вообще, под термином «машинное обучение» подразумевается широкий спектр дисциплин, в том числе и глубокое обучение (deep learning), то есть нейросети. Это направление сейчас очень активно развивается. Особенно ярких результатов удалось добиться в сфере компьютерного зрения. Старые методы машинного обучения имели низкую точность распознавания изображений, но сейчас уже есть высокоэффективные подходы. Благодаря этому машинное обучение получило новый импульс развития, потому что распознавание фотографий — практичная, понятная и многим близкая задача, демонстрирующая пользу нейросетей.

С текстом дела обстоят хуже, но тоже неплохо. Машинный перевод пока уступает человеку, а в распознавании изображений deep learning во многих случаях обгоняет человека. Нейросети великолепно справляются с некоторыми компьютерными играми, особенно простыми, основанными на реакции. С другими же — слабо. Особенно когда речь идёт о тяжёлых стратегиях, где нужно управлять большим количеством юнитов. Здесь reinforcement learning работает не слишком эффективно. Полагаю, нужно больше исследований на эту тему.

Но совсем недавно прогремели ребята из OpenAI со своим ботом для Dota 2. Бот разбил лучших игроков мира в схватках 1 × 1. Dota — сложная игра, потому это знаменательное событие.

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

Мне кажется, что рано пока говорить о сильном искусственном интеллекте. Но когда мы к нему приблизимся, то уже будет понятно, как его регулировать. Пока мы программируем просто какие-то задачки. Мы это делаем сами и знаем, что получится на выходе. То есть не будет такого, что машина, которая управляла поисковой выдачей, внезапно начнёт строить заговоры.

Да — беспилотный автомобиль может сбить пешехода. Но не специально, а из-за ошибки. Когда мы будем создавать сильный интеллект, то встанет проблема его обучения так, чтобы он разделял цели человечества. Например, сегодня при обучении мы точно говорим, чтобы ошибка на выборке была ниже, функция потерь такая-то. Но на самом деле мы хотим, чтобы машина хорошо распознавала объекты. Для этого мы минимизируем функцию потерь. Минимизация функции потерь — это математическая запись указания сети «не ошибайся на данном наборе изображений». Сеть подстраивается и приобретает обобщающую способность, то есть выявляет закономерности и учится правильно предсказывать класс для изображений, которые никогда не видела. Эти закономерности бывают неправильными. В частности, модель может называть лук паспортом, и так далее. А в человека в процессе взросления закладываются моральные принципы, которые он на ходу валидирует и адаптирует. Так и ИИ каким-то образом должны быть привиты наши моральные принципы.

Какие применения нейросетей на рынке ты сегодня считаешь самыми впечатляющими/передовыми и почему?

Нейросети в принципе поражают, особенно когда знаешь, как они работают. На рынке довольно часто применяют классификаторы изображений, детекторы объектов и сети для распознавания лиц. Некоторые решения этих задач впечатляют элегантностью и простотой. Также могу отметить беспилотные автомобили и машинный перевод. Например, у Google нейросеть использует промежуточный язык, через который выполняет переводы с других, настоящих языков (точнее, речь идёт о векторных представлениях, из которых составляются фразы на любых других языках). Система получает на вход предложение на английском, формирует наборы чисел, а потом другая часть сети преобразует эти наборы, например в предложение на французском. И когда одна и та же нейросеть обучается так преобразовывать между многими языками, то у нее формируется какое-то универсальное представление текста, благодаря которому сеть может связывать друг с другом разные языки, прямому переводу между которыми она не училась. Например, её можно натренировать переводить EN ⇄ FR и EN ⇄ RU — и тогда модель сумеет переводить FR ⇄ RU.

Какими знаниями/навыками должен обладать специалист по нейросетям?

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

А как у нас в компании с вакансиями для специалистов по глубокому обучению?

У нас в компании специалисты по машинному обучению сейчас есть практически в каждом бизнес-юните. В Почту мы активно ищем специалистов для улучшения антиспама и для создания новых «умных» функций (в основном работа с текстом). Также мы заинтересованы в специалистах для разработки компьютерного зрения. В Облако — специалистов по комьютерному зрению. Еще из интересных областей, где мы используем глубокое обучение и ищем профильных специалистов, можно отметить разработку и совершенствование рекомендательных систем, анализ больших данных и работа с текстом в самых разных проектах (например, предсказание правильных ответов в Поиске Mail.Ru). ML есть и в рекламной крутилке, и в формировании умной ленты социальных сетей и в Поиске.

То есть в компании все функции людей постепенно замещаются искусственным интеллектом?

Надо понимать, что программирование от этого никак не упрощается, а только усложняется. Программисты ещё долго будут востребованы. Кроме того, специалисты по ИИ тоже должны быть в первую очередь программистами: обучить программиста созданию ИИ гораздо проще. И они принесут компании гораздо больше пользы, потому что будут очень быстро реализовывать свои идеи, в отличие от чистых исследователей. В целом многие компании, и наша в том числе, вкладывают огромные деньги в искусственный интеллект. Например, сейчас Китай до 2030 года хочет стать лидером в этой области. В одной только корпорации Baidu работает 1300 специалистов по машинному обучению.

Какое направление в сфере нейросетей ты считаешь самым перспективным?

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *