Хочу шарить в машинном обучении. Что нужно знать?

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

Вадим Юн , генеральный директор компании Crayon в России

Практика нашей компании показывает, что до 70% времени на проектах, связанных с машинными обучением, занимает этап подготовки данных. Специалистов, занимающихся работой с данными (или Data Scientist), умеющих анализировать и визуализировать данные, на рынке сейчас сильно не хватает.

Ситуация обусловлена двумя факторами. Во-первых, внезапно взлетевшем спросом на экспертов по обработке данных. Сейчас каждая компания, деятельность которой так или иначе затрагивает сферу ИТ, стремится нанять такого специалиста к себе в штат. Если зайти на HH.ru или любой другой сервис по подбору персонала, можно увидеть огромное количество открытых вакансий на позицию Data Scientist в различных компаниях. Кроме того, это одна из самых высокооплачиваемых работ. Как следствие рынок перегрет по уровню заработной платы. Во-вторых, нехватка специалистов связана с тем, что дата-саентисты — это в первую очередь математики. Чем сложнее задача и методы, которые используются для анализа данных, тем более «хардкорная» математика нужна. Несмотря на то, что в России высокий уровень технического образования, рынок оказался не готов для того, чтобы предложить необходимое количество математиков с хорошими навыками программирования, умением строить алгоритмы и практическими знаниями методов статистического анализа данных.

Если у вас математический склад ума и вам интересна карьера с множеством возможностей для карьерного роста, обратите внимание обучающие курсы по работе с данными, например на Coursera, Khan Academy, Udacity или Kaggle.

Сергей Ширкин , декан факультета Искусственного Интеллекта в онлайн-университете GeekUniversity

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

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

В компьютерном зрении важны знания современных архитектур нейронных сетей. Так как это направление последние два-три года интенсивно развивалось, то ценится знание основных достижений и умение применять методы, описанные в статьях, на практике. Помимо знаний Python в компьютерном зрении желательно знать C/C++, так как это быстрые языки, и они являются предпочтительными для внедрения моделей.

Также сейчас активно развивается обработка естественного языка, модели которой позволяют работать как с письменной речью (классификаторы текстов, чат-боты), так и с устной (голосовые боты). Здесь ценится умение читать статьи, разбираться в нейронных сетях, знать особенности языков и отслеживать и внедрять новейшие достижения NLP.

Сергей Афанасьев , исполнительный директор, начальник управления статистического анализа «Ренессанс Кредит»

Чтобы быть в тренде, специалисту по машинному обучению надо обратить внимание на дисперсию — она решает, в какой точке кривой специалист окажется.

Если говорить об общих навыках, то для специалистов Data Science выделяют три основных компетенции. Во-первых, наличие навыков программирования: умение писать код на Python (или, например, на R), знание библиотек машинного обучения. Во-вторых, уверенная математическая база — знание алгоритмов ML, теория вероятностей, математическая статистика, линейная алгебра. В-третьих, бизнес-экспертиза — понимание, как работает бизнес, опыт в бизнес-аналитике, навыки проведения исследований.

Сфера Data Science бурно развивается, но является недоспециализированной — во многих отраслях нет явно выделенных специальностей с чёткими требованиями. Поэтому в Data Science часто ищут full stack специалиста, который должен и хорошо писать код на Python, и обладать бизнес-экспертизой, и быть хорошим математиком, и уметь внедрять модели в продакшн, и быть хорошим менеджером проекта, и заниматься R&D и т. д. Эдакий и швец, и жнец, и на дуде игрец.

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

SQL-тест включает несколько задач на написание select-запросов. На него мы отводим 30–40 минут. Несмотря на то, что тестовые запросы пишутся в 5–7 строк, они составлены так, что отражают основные проблемы, с которыми аналитики сталкиваются в своей работе с базами данных. Многие кандидаты, к сожалению, не справляются с этими задачами, хотя этому тесту уже более 10 лет.

Take-home test на моделирование — домашнее задание на 2–3 дня, в котором требуется построить модель регрессии на данных, взятых из открытых источников. По результатам этого теста мы оцениваем уровень знания Python, основ моделирования, навыки работы с данными, навыки проведения исследования и интерпретации результатов.

Алексей Найдёнов , заместитель руководителя отдела анализа данных хостинг-провайдера REG.RU

Несмотря на стремительное развитие инструментов, применяющихся в машинном обучении — новых библиотек, фреймворков, архитектур нейросетей и всё более мощного оборудования, — навыки, необходимые специалисту по Machine Learning, почти не изменились за последние пять лет. Разумеется, в каждой конкретной области вам могут пригодиться какие-то определённые знания, но в целом можно выделить несколько основных требований:

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

Николай Бурныков , системный архитектор Orange Business Services Россия и СНГ

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

В настоящее время наблюдается расцвет нейронных сетей и алгоритмов глубокого обучения, в связи с чем требуется умение работать с двумя базовыми фреймворками глубокого обучения — PyTorch и Tensorflow (а также его надстройкой — Keras). Безусловно, очень важно, чтобы специалист уже имел опыт решения производственных задач в указанных средах, но плюсом будет также и авторство научных статей по данной тематике.

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

Юрий Латин , генеральный директор компании Bell Integrator

Hard Skills

Soft skills

Опыт

Дамир Заляев , старший менеджер по разработке ПО компании ICL Services

Естественно, всё зависит от области. Как я вижу, сейчас наиболее популярными областями являются Обработка Естественного Языка, Видеоаналитика и работа с Временными Рядами.

Однако вне зависимости от области важны как теоретические знания:

Так и практические навыки:

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

Денис Власов , ведущий аналитик Учи.ру

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

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

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

Алексей Парфентьев , руководитель отдела аналитики «СёрчИнформ»

На наш взгляд, обязательны следующие 3 пункта:

1. Математика. Прежде всего, специалист по машинному обучению должен иметь хороший математический бэкграунд. Это обязательно для хорошего понимания того, как работают классические алгоритмы ML и что же происходит внутри современных нейросетей. Понадобится и линейная алгебра (операции с векторами и матрицами), и матанализ (дифференцирование сложных функций, интегрирование), и математическая статистика и, конечно, теория вероятностей. Поэтому в этой области data science (науки о данных) крайне желательно иметь профильное высшее образование — мехмат, ВМК.

2. Python. Понадобятся базовые знания основ программирования, для того чтобы не путаться хотя бы в собственном коде, а лучше — быстро разбираться в чужом. Понадобится знать Python — если раньше люди пользовались R, C++ в ML, то в наше время быстрого развития нейросетей удобный и простой Python вытеснил всё остальное. Кстати, его можно освоить довольно быстро. Подойдёт и как первый язык для изучения программирования.

3. Курсы, книги, участие в Kaggle. Нейросети завоевали лидерство в современном машинном обучении и сейчас имеет смысл развиваться в этом направлении. Благо появилось множество книг, бесплатных курсов и обучающих видео по ML и нейросетям. Например, мы можем смело рекомендовать курс «Deep Learning на пальцах» при Новосибирском Государственном Университете (бесплатные лекции можно найти на YouTube). Что касается книг, можем рекомендовать как первую книгу С.И. Николенко «Глубокое обучение. Погружение в мир нейронных сетей». Ну и конечно участие в конкурсах. Нет ничего лучше, чем практика, и конкурсы Kaggle (от Google) предоставляют отличную возможность попрактиковаться и посоревноваться в машинном обучении. Для успешного прохождения собеседований участие в Kaggle будет огромным плюсом.

Рустам Салимзибаров , руководитель отдела разработки «Сателлит Инновация»

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

Во-первых, это знание математики. В особенности это касается теории вероятности и математической статистики. Помните времена, когда школьники кричали: «Зачем мы это учим! Нам не пригодится это в жизни!»? Забудьте о них. В жизни сегодня пригодится всё. И с каждым днём этого всего становится больше.

Во-вторых, это Python. Сегодня все пишут ML на Python. Не нравится? Не проблема. Мы всегда найдём другого специалиста, которому нравится Python. Да, у этого высокоуровневого языка программирования есть свои недостатки. Но достоинств всё же больше. Всё-таки, «сейчас — лучше, чем никогда». Язык развивается, и за обновлениями и новинками следить обязательно.

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

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

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

Петр Урваев , руководитель технологических решений SimbirSoft

Оценивать риски и прогнозировать бизнес-события с помощью Machine Learning сегодня хотят всё больше компаний. В частности, банкам нужен кредитный скоринг, ритейлерам — решения для предсказания спроса. В целом, в любом бизнесе есть маркетинговые или операционные данные для анализа, например для управления логистикой и другими процессами. Редко у кого всё выстроено оптимально, обычно всегда есть, что улучшать, поэтому спрос на решения Data Science и Machine Learning постоянно растёт.

Есть разные мнения, какие навыки важнейшие для ML-специалиста, мы с командой остановились на трёх:

Если речь идёт о начинающих специалистах, как и везде, требования сводятся к простой формуле: знать матчасть и нарабатывать практику. Применительно к ML, из теории нужно знать как минимум Python или R, основные библиотеки, алгоритмы, их ограничения, плюсы и минусы. Если вы уже являетесь разработчиком и располагаете хотя бы базовыми знаниями в теории вероятностей, статистике, мат. анализе и линейной алгебре, вы достаточно быстро разберётесь с этим. Для практики тоже большой простор: можно работать с публичными датасетами, участвовать в соревнованиях — например на платформе Kaggle.

Что касается базового образования, оно может быть разным — физика, прикладная математика, биоинформатика. Главное — иметь структурированное математическое мышление и не падать в обморок при виде матриц, формул и алгоритмов. ? Сроки обучения тоже у всех разные: бывает, что люди с бэкграундом осваивают Data Science за 3 месяца — с другой стороны, обучение на этом не заканчивается (и вообще не заканчивается никогда).

Чтобы не упустить ничего нового в ML, важно постоянное самообразование. Если нужно подтянуть теорию, то достаточно хорошие насыщенные курсы предлагают edX и Coursera. Для практики можно воспользоваться датасетами из UCI Machine Learning repository. Есть образовательный раздел на Kaggle и рассылки по машинному обучению и искусственному интеллекту, в частности от сообщества Open Data Science и издательства O’Reilly. А если есть время и желание разобраться в научной составляющей, то на arxiv.org и других ресурсах можно найти статьи по Machine Learning.

Александр Ефимов , директор по аналитическим и индустриальным решениям SAS Россия/СНГ

Какие навыки специалиста по машинному обучению сейчас наиболее востребованы

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

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

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

Ксения Шишканова , архитектор big data решений Accenture в России

За последние 5 лет сформировался стандартный набор требований к специалисту по машинному обучению, который включает: сильную математическую подготовку (теорию вероятности, статистику, линейную алгебру), как минимум один из языков программирования Python/R (реже С++), знание и способность на практике реализовать модели машинного обучения.

Использование ML и AI стало повсеместной практикой, появилось множество новых технологий и подходов, соответственно, можно выделить навыки, наличие которых станет преимуществом:

Neural Networks и Deep Learning

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

Нейронные сети показывают отличный результат в ряде задач (CV/NLP/RL/GAN), что поспособствует развитию фреймворков tensorflow, keras, pytorch и т. п. Тем не менее, в ряде задач по прежнему превалируют традиционные ML-подходы и алгоритмы в силу меньших требований к вычислительным мощностям (для нейронных сетей чаще используют GPU) и объёму данных для обучения.

Опыт работы со стеком технологий BigData

Чаще всего, чтобы провести предварительный анализ, предобработку, обучение и тем более запуск самой модели, вычислительных мощностей одной машины не хватает, и весь пайплайн построения модели происходит на кластере с распределённым хранением и вычислением данных. В роли хранилищ могут выступать файловые системы (HDFS(Hadoop), Druid и пр.), NoSQL базы данных (Cassandra, MongoDB, CouchbaseDB и пр.), MPP базы данных (vertica, greenplum, clickhouse и пр.). Для анализа чаще всего используются Spark, HiveQL, либо другие внутренние фреймворки хранилищ. Более того, специалист должен уметь работать с технологиями, и понимать, как писать алгоритмы для распределённых вычислений, а также оценивать их ресурсоёмкость и эффективность.

Обработка изображений и видеопотоков

В большом количестве областей используется анализ изображений и видеозаписей (медицина, сельское хозяйство, госслужба, автопилотирование, IoT и многое другое). Обработка такого рода данных требует специальных навыков: детектирование объектов, выделение границ, классификация, сегментация объектов. В качестве технологий могут использоваться OpenCV, DLIB, алгоритмы R-CNN, Fast R-CNN, Faster R-CNN, YOLO и др.

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

Михаил Толмачев , Senior Manager в EPAM

Важно учитывать потребности бизнеса, а бизнесу нужно то, что очень хорошо работает с высокой долей надёжности, т. е. даёт минимум 90–95 % точности.

Сейчас во всём мире тренд на Deep Learning, компьютерное зрение, нейросети. Нейросети можно использовать для предсказания спроса, рекомендации товара, персонализированного маркетинга. Однако, чтобы понять, как эти технологии работают, нужно иметь углублённые знания, быть Data Scientist. В отличие от Deep Learning, методы классического машинного обучения — матричного разложения, факторизационных машин — гораздо легче интерпретируются бизнесом, то есть с их помощью можно объяснить, почему те или иные товары были интересны, какие основные драйверы спроса. Также ограничения на интерпретируемость моделей бывает на законодательном уровне, например в фарме или банках.

В последнее время быстро развивается тренд на Generative Adversarial Networks (GANs). Эти алгоритмы позволяют на основании входящих данных генерировать новые данные, которые очень похожи на настоящие. Возьмём, например, картинку, где машина едет по пустыне, и картинку средней полосы России. Накладываем одно на другое, и вот уже машина едет по полю. Популярные приложения FaceApp и Prisma работают на данной технологии. Есть целый веб-сайт, генерирующий лица людей, которые на самом деле не существуют, при этом выглядят они как настоящие.

Одна из главных проблем Data Science — отсутствие достаточного количества данных для обучения, а с помощью GANs можно создавать больше данных и более точно обучать модели. Но пока эта область тяжела для применения в бизнесе. Чтобы это начало давать гарантированно хороший результат в реальной жизни, нужно провести больше академических исследований.

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

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

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

Антон Чан , IT-директор финтех-компании Cashwagon

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

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

Для этого аналитику данных важно обладать прочными знаниями математики и программирования. Стандартный набор необходимых навыков Data Scientist включает в себя:

Стоит отметить, что компании часто отдают предпочтение дипломированным дата-аналитикам.

Помимо риск-менеджмента, Data Scientist работает с нейросетями для анализа текстов, изображений, звуковых и видеорядов, моделирования временных рядов.

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

Итак, чего хотят от специалистов по машинному обучению?

В зависимости от решаемых задач и нужд бизнеса требования могут отличаться, но вот общие моменты:

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.

Не смешно? А здесь смешно: @ithumor


Источник: tproger.ru

Комментарии: