Код
#статьи

Специалист по машинному обучению: кто такой, чем занимается и сколько получает

Разбираемся, нужно ли творцам искусственного интеллекта знать математику и Python.

Специалист по машинному обучению (ML, machine learning) — это программист, который с помощью специальных наборов данных и алгоритмов обучает искусственный интеллект.

Посмотрим, например, как приложение «Яндекс.Навигатор» выбирает маршрут до пункта назначения. У него есть ваши GPS-координаты и карта, но при этом он знает и о пробках, авариях, дорожном ремонте. Всё это благодаря графу дорог — алгоритм быстро анализирует возможные пути и находит самый быстрый. А программисты следят, чтобы машинный интеллект не ошибался.

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

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

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

Задачи специалиста по МL отличаются в разных компаниях и проектах, но чаще всего он делает вот что:

  • Собирает и подготавливает данные. Для прокачки искусственного интеллекта необходимо много данных. И не любых, а специально размеченных. Например, чтобы научить машину отличать котиков от собак, нужно дать ей много фотографий и «подписать», на каких изображены кошки, а на каких — собаки. Такая классификация данных называется разметкой.

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

  • Строит модели машинного обучения для обработки данных. Простой пример — умная лента «ВКонтакте». Чтобы показывать только интересные записи, алгоритм отслеживает ваши лайки, комментарии, предпочтения друзей и даже похожих с вами по интересам людей, а потом показывает потенциально интересные материалы. Специалисты по ML создают и обучают такие алгоритмы. Результат их работы — умная модель, которая выдаёт прогноз на основе данных. Если вкусы изменились, вы подписались на кого-то или прокомментировали пост, непременно изменится и ваша лента.

Алгоритмы для построения модели программируют под конкретные задачи. Иногда они довольно простые — например, алгоритм для предсказания предпочтений туристов из разных городов занимает всего 20 строчек кода.

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

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

Кому подойдёт профессия специалиста по ML

  • Программисту, который хочет прокачать свои знания Python, R, C++, JavaScript, Scala или Julia, подтянуть математику и научиться работать с данными и алгоритмами.
  • Аналитику или менеджеру продуктов, который стремится получать больше данных с помощью продвинутых технологий и принимать решения на их основе.
  • Учёному, который хочет моделировать сложные процессы и находить взаимосвязи в разрозненных данных.
  • Исследователю или data-журналисту, который стремится обнаружить истинные причины тех или иных событий и явлений этого мира.

Стать специалистом по машинному обучению за три дня не получится. Но вы можете попробовать профессию и попытаться предсказать курс доллара с помощью машинного обучения на бесплатном марафоне «Напишите первую модель машинного обучения за 3 дня».

Какие навыки нужны специалистам по МL

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

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

  • Логическое мышление. Создание любой программы — это решение задачи. Необходим особый склад ума, чтобы разбить проблему из реального мира на составные части и описать алгоритм, который будет её решать.

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

  • Алгебра и дискретная математика. Они пригодятся для разбора сложных технических концепций, которые лежат в основе машинных алгоритмов. Это не значит, что без диплома матфака путь в профессию закрыт, — для начала достаточно школьной программы.
  • Статистика и теория вероятностей. Специалисту по МL приходится работать с данными, анализировать их, применять теорию вероятностей, чтобы настроить алгоритмы и оценить корректность результатов. Немногие специалисты владеют всеми тонкостями высшей математики, а вот основы статистики может изучить почти каждый.
  • Программирование. Обычно специалисты по МL используют Python или R, но одного знания языков недостаточно. Придётся много работать с базами данных — для этого нужен SQL. А ещё надо изучить много специфических фреймворков (Apache Spark, TensorFlow, PyTorch) и библиотек (scikit-learn, NumPy, Keras, Pandas). Пригодится и MATLAB — пакет программ для учёных, который часто используют в крупных компаниях.
  • Английский язык. Для программирования, чтения профессиональной литературы и общения с комьюнити — это мастхэв.

Перспективы развития профессии

Сегодня МL помогает людям практически в любой области — от выбора сериалов на Netflix до заботы о здоровье. Востребованность специалистов по ML с каждым годом растёт. Например, hh.ru отмечает, что с 2015 по 2019 год количество вакансий в сфере машинного обучения выросло в семь раз.

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

На какую зарплату могут рассчитывать Junior, Middle и Senior

Яндекс, «Тинькофф» и другие компании нуждаются в крутых профессионалах в области ML. По наличию опыта такие специалисты делятся на три группы: Junior, Middle и Senior.

Junior (младший)

Программист с опытом в ML около 1 года. Собирает и подготавливает данные, формулирует требования к сбору обучающей выборки, строит несложные модели машинного обучения — обычно под контролем более опытного специалиста.

Нужно уметь работать с библиотеками для обработки данных — Pandas, NumPy, Matplotlib, и понимать системы управления базами данных — MySQL/PostgreSQL.

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

Middle (средний)

Уверенный специалист с опытом от 2 до 5 лет. Он способен перевести задачи бизнеса на язык математики, реализовать с нуля и оценить производительность модели машинного обучения, проанализировать и проверить данные — соответствуют ли они заданным критериям.

Среди требований к мидлу — навыки работы с современными аналитическими пакетами на R/Python и промышленными хранилищами данных (Teradata, DB2), а также понимание BigData. Приветствуется владение статистическими инструментами — SPSS, MATLAB, SAS Data Miner.

В регионах средняя зарплата — 60–80 тысяч, в Москве — не меньше 100 тысяч рублей.

Senior (старший)

Опытный специалист. Работодатели ожидают, что у сеньора за плечами 5–7 лет работы над проектами в сфере data mining, data analysis, машинного обучения или математического моделирования. В списке компетенций: уверенный Python, SQL/CQL, глубокое понимание архитектуры нейросетей, знание Spark Streaming (используется с Apache Spark), Cassandra (система управления базами данных), фреймворков TensorFlow, CV, PyTorch или других — в зависимости от стека компании.

Иногда выделяют ML Team Lead (тимлид, лидер команды). Тимлидами становятся сеньоры, возглавляющие подразделения Machine Learning. Здесь важны лидерские качества, тайм-менеджмент и умение работать в команде.

Сеньоры и тимлиды в регионах зарабатывают 100–120 тысяч, в Москве — от 200 и до 400–500 тысяч. Это хороший стимул освоить профессию. А учитывая, что потребность в машинном обучении с годами будет только расти, зарплаты опытных специалистов по ML точно не станут ниже.

Где учиться

Изучать машинное обучение можно в университете, на курсах или самостоятельно.

Университет даёт студентам хорошую базу, особенно в математике и статистике. Вы получите диплом государственного образца — это может быть плюсом при трудоустройстве. Но поступить на специальность Data Science обычно непросто и дорого. Например, двухлетняя магистратура по наукам о данных в «Высшей школе экономики» обойдётся в 1 155 000 рублей.

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

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

Вывод

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

Научитесь: Профессия Machine Learning Engineer Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована