что нужно знать для машинного обучения

Машинное обучение — это легко

Для кого эта статья?

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

что нужно знать для машинного обучения

В цифрах

С каждым годом растёт потребность в изучении больших данных как для компаний, так и для активных энтузиастов. В таких крупных компаниях, как Яндекс или Google, всё чаще используются такие инструменты для изучения данных, как язык программирования R, или библиотеки для Python (в этой статье я привожу примеры, написанные под Python 3). Согласно Закону Мура (а на картинке — и он сам), количество транзисторов на интегральной схеме удваивается каждые 24 месяца. Это значит, что с каждым годом производительность наших компьютеров растёт, а значит и ранее недоступные границы познания снова «смещаются вправо» — открывается простор для изучения больших данных, с чем и связано в первую очередь создание «науки о больших данных», изучение которого в основном стало возможным благодаря применению ранее описанных алгоритмов машинного обучения, проверить которые стало возможным лишь спустя полвека. Кто знает, может быть уже через несколько лет мы сможем в абсолютной точности описывать различные формы движения жидкости, например.

Анализ данных — это просто?

Да. А так же интересно. Наряду с особенной важностью для всего человечества изучать большие данные стоит относительная простота в самостоятельном их изучении и применении полученного «ответа» (от энтузиаста к энтузиастам). Для решения задачи классификации сегодня имеется огромное количество ресурсов; опуская большинство из них, можно воспользоваться средствами библиотеки Scikit-learn (SKlearn). Создаём свою первую обучаемую машину:

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

— Если все так просто, почему до сих пор не каждый предсказывает, например, цены на валюту?

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

Ближе к делу

— Получается, зарабатывать на этом деле я не сразу смогу?

Итак, сегодня нам потребуются:

Дальнейшее использование требует от читателя некоторых знаний о синтаксисе Python и его возможностях (в конце статьи будут представлены ссылки на полезные ресурсы, среди них и «основы Python 3»).

Как обычно, импортируем необходимые для работы библиотеки:

— Ладно, с Numpy всё понятно. Но зачем нам Pandas, да и еще read_csv?

Иногда бывает удобно «визуализировать» имеющиеся данные, тогда с ними становится проще работать. Тем более, большинство датасетов с популярного сервиса Kaggle собрано пользователями в формате CSV.

— Помнится, ты использовал слово «датасет». Так что же это такое?

Датасет — выборка данных, обычно в формате «множество из множеств признаков» → «некоторые значения» (которыми могут быть, например, цены на жильё, или порядковый номер множества некоторых классов), где X — множество признаков, а y — те самые некоторые значения. Определять, например, правильные индексы для множества классов — задача классификации, а искать целевые значения (такие как цена, или расстояния до объектов) — задача ранжирования. Подробнее о видах машинного обучения можно прочесть в статьях и публикациях, ссылки на которые, как и обещал, будут в конце статьи.

Знакомимся с данными

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

Работая в Jupyter notebook, получаем такой ответ:

что нужно знать для машинного обучения

Это значит, что теперь нам доступны данные для анализа. В первом столбце значения Grade показывают, к какому сорту относится вино, а остальные столбцы — признаки, по которым их можно различать. Попробуйте ввести вместо data.head() просто data — теперь для просмотра вам доступна не только «верхняя часть» датасета.

Простая реализация задачи на классификацию

Переходим к основной части статьи — решаем задачу классификации. Всё по порядку:

Создаем массивы, где X — признаки (с 1 по 13 колонки), y — классы (0ая колонка). Затем, чтобы собрать тестовую и обучающую выборку из исходных данных, воспользуемся удобной функцией кросс-валидации train_test_split, реализованной в scikit-learn. С готовыми выборками работаем дальше — импортируем RandomForestClassifier из ensemble в sklearn. Этот класс содержит в себе все необходимые для обучения и тестирования машины методы и функции. Присваиваем переменной clf (classifier) класс RandomForestClassifier, затем вызовом функции fit() обучаем машину из класса clf, где X_train — признаки категорий y_train. Теперь можно использовать встроенную в класс метрику score, чтобы определить точность предсказанных для X_test категорий по истинным значениям этих категорий y_test. При использовании данной метрики выводится значение точности от 0 до 1, где 1 100% Готово!

— Неплохая точность. Всегда ли так получается?

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

— Слишком легко. Больше мяса!

Для наглядного просмотра результата обучения на данном датасете можно привести такой пример: оставив только два параметра, чтобы задать их в двумерном пространстве, построим график обученной выборки (получится примерно такой график, он зависит от обучения):

что нужно знать для машинного обучения

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

Предлагаю читателю самостоятельно узнать почему и как он работает.

Последнее слово

Надеюсь, данная статья помогла хоть чуть-чуть освоиться Вам в разработке простого машинного обучения на Python. Этих знаний будет достаточно, чтобы продолжить интенсивный курс по дальнейшему изучению BigData+Machine Learning. Главное, переходить от простого к углубленному постепенно. А вот полезные ресурсы и статьи, как и обещал:

Материалы, вдохновившие автора на создание данной статьи

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

Где брать данные, или «хранилище датасетов» — здесь собрано огромное количество данных от самых разных источников. Очень полезно тренироваться на реальных данных.

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

Источник

Как постичь машинное обучение, если ты не великий математик

Предлагаем почитать перевод статьи Diego Isco с ресурса dev.to. Она будет полезна начинающим специалистам в области ML.

что нужно знать для машинного обучения

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

И я загорелся этим. Сказал, что хочу этому научиться. Неважно, насколько трудно мне будет. Я хочу научиться, и я научусь.

Будем честны: все мы слышали о зарплатах инженеров по машинному обучению. Взгляните на это.

что нужно знать для машинного обучения

что нужно знать для машинного обучения

Впечатляет, правда? Но машинное обучение еще нужно освоить — и вот тут начинается мрак.

Воодушевленный, я начал изучать работы по этой теме, и знаете что? Везде — математика! Навороченные уравнения, линейная алгебра, векторы и странные символы.

В тот вечер я плакал как ребенок. Но, как хороший технарь, утер слезы и решил учиться самостоятельно.

Да, я просто еще один нерд, пытающийся осилить машинное обучение.

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

Ход обучения

что нужно знать для машинного обучения
Математика → Статистика → Программирование → Машинное обучение → Любительские проекты

Когда вы будете искать на YouTube видео о машинном обучении, то обязательно наткнетесь на 3 основных — от Siral Raval, Jabril и Daniel Bourke.

Все они — выше всяких похвал. Поэтому я решил взять из этих видео лучшее.

Математика

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

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

Хорошо, а что именно нужно знать? Всего-то линейную алгебру и матанализ.

Напоминаю: я не гений в математике. Я плохо разбираюсь в математике. Я завалил матанализ на всех курсах в университете!

Так вот, можно ли освоить теорию машинного обучения, не будучи гением в математике?

Есть один нюанс. Если вы не дружите с числами, то это потому, что не понимаете основ.

Помните основы? Об основах линейной алгебры и математического анализа рассказывает на канале 3Blue1Brown Грант Сандерсон. Ему надо дать Нобелевскую премию в области образования. Он просто берет математику объясняет ее в потрясающей форме. Как ребенку. Это прекрасно.

Итак, моим первым шагом было понять основы линейной алгебры и математического анализа. Поверьте, после этого все намного проще.

что нужно знать для машинного обучения

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

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

Что ж, мы усвоили этот длинный курс и попрактиковались, теперь черед математического анализа. В Академии Хана есть потрясающая программа, которая дает все, что надо для того, чтобы чувствовать себя уверенно, имея дело с мудреными уравнениями.

Статистика

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

Поэтому сосредоточьтесь и учитесь.

А для облегчения этой задачи — бесплатный курс Probability — The Science of Uncertainty and Data от Массачусетского технологического института.

Читая учебную программу, вы можете подумать, что курс базовый, но это не так. Он охватывает достаточно тем, чтобы дать основы для понимания теории вероятности. Всем, кто любит поучиться, вот еще один курс — Statistics and Probability от Академии Хана. Это в дополнение, так что расслабьтесь.

Программирование

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

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

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

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

Ладно, допустим, вы не знаете программирования, и это будет ваша первая строчка кода. В таком случае я бы выбрал Datacamp. Смело исследуйте тему самостоятельно и смотрите их курс по Python.

Машинное обучение

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

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

Еще один ресурс — это Introduction to Machine Learning for Coders. Хороший курс с детальными объяснениями алгоритмов машинного обучения.

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

Не могу не упомянуть еще одну программу, которую очень хвалят. Но она платная: это Introduction to Machine Learning Course нa Udacity. Если у вас отложено немного денег и вы готовы инвестировать в себя, то это подходящий случай, но решайте сами.

Любительские проекты

Теперь вы уже знаете машинное обучение, но этого недостаточно. Вам нужно больше практики. Здесь вам поможет книга Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow.

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

И напоследок

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

Источник

🤖 Машинное обучение для начинающих: основные понятия, задачи и сфера применения

что нужно знать для машинного обучения

Что такое машинное обучение?

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

Разумеется, это лишь общее описание. Как правило, вы не придумываете модель с нуля, а пользуетесь результатами многолетних исследований в этой области, поскольку создание новой модели, превосходящей существующие хотя бы на одном виде задач – это настоящее научное достижение. Методы задания целевой функции, определяющей, насколько хороши выдаваемые моделью результаты (функции потерь), также занимают целые тома исследований. То же самое относится к методам изменения параметров модели, ускорения обучения и многим другим. Даже начальная инициализация этих параметров может иметь большое значение!

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

Чем машинное обучение отличается от искусственного интеллекта?

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

что нужно знать для машинного обучения

Модели и параметры

Самая простая модель имеет всего два параметра. Если нужно предсказать результат, линейно зависящий от входного признака, достаточно найти параметры a и b в уравнении прямой линии y=ax+b. Такая модель строится с помощью линейной регрессии. На следующем рисунке показана модель, предсказывающая «уровень счастья» человека по его собственной оценке в зависимости от уровня его дохода (красная линия):

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

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

Хотя алгоритм обратного распространения ошибки (backropagation) был придуман довольно давно, до недавнего времени не было технических возможностей для реализации глубоких нейронных сетей, содержащих большое количество слоев. Быстрое развитие микроэлектроники привело к появлению высокопроизводительных GPU и TPU, способных обучать глубокие нейронные сети без суперкомпьютеров. Именно широкое распространение глубокого обучения стоит за тем бумом искусственного интеллекта, о котором вы слышите отовсюду.

Учиться, учиться и учиться

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

Стратегия обучения выбирается в зависимости от поставленной задачи и имеющихся данных для обучения. Выделяют обучение с учителем (supervised learning), обучение без учителя (unsupervised learning) и обучение с подкреплением (reinforcement learning).

что нужно знать для машинного обучения

Обучение с учителем

Это обучение на примерах, при котором «учителем» называются правильные ответы, которые, в идеале, должна выдавать модель для каждого случая. Эти ответы называются метками (название происходит из задач классификации, модели которых практически всегда обучаются с учителем – там эти ответы являются метками классов), а данные с метками – размеченными.

К сожалению, с моделями машинного обучения все не так просто, поскольку мы сами не знаем, какой ответ будет «правильным» для каждого случая! Ведь именно для получения этих ответов нам и нужна модель. И практически всегда нам нужно, чтобы модель хорошо усвоила зависимость результата от входных признаков, а не точно повторяла результаты тренировочного набора, который в реальной жизни может содержать и ошибочные результаты (шум). Если модель выдает верные результаты на всем тренировочном наборе, но часто ошибается на новых данных, говорят, что она переобучена на этом наборе.

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

Обучение без учителя

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

Такую стратегию обучения, использует, например, Airbnb, объединяя в группы похожие дома, и Google News, группируя новости по их темам.

Частичное привлечение учителя

Как и предполагает название, обучение с частичным привлечение учителя (semi-supervised learning) – это смесь обучения с учителем и без него. Этот метод использует небольшое количество размеченных данных и множество данных без меток. Сначала модель обучается на размеченных данных, а затем эта частично обученная модель используется для разметки остальных данных (псевдо-разметка). Затем вся модель обучается на смеси размеченных и псевдо-размеченных данных.

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

Обучение с подкреплением

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

Лучшие курсы для изучения машинного обучения

Сферы применения машинного обучения

Машинное обучение имеет огромное количество применений, но особенно выделяются два крупных и важных направления: машинное зрение (computer vision, CV) и обработка естественного языка (natural language processing, NLP), каждое из которых объединяет множество различных задач.

что нужно знать для машинного обучения

Машинное зрение

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

Обработка естественного языка

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

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

Источник

Как выучить машинное обучение: книги, курсы, подходы — отвечают эксперты

Авторизуйтесь

Как выучить машинное обучение: книги, курсы, подходы — отвечают эксперты

что нужно знать для машинного обучения

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

что нужно знать для машинного обучения

директор по инновациям компании «Иннодата»

Если вы решили начать изучение машинного обучения, то в вашем распоряжении есть множество ресурсов. Это и online-курсы (Coursera, Udemy, Udacity и т. д.) и комбинированные online-/offline-курсы (netology, ВШЭ, Яндекс ШАД и т. д.) и большое количество литературы: «Introduction to Machine Learning with Python: A Guide for Data Scientists», «Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems» и т. д.

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

что нужно знать для машинного обучения

ведущий разработчик систем машинного обучения NAUMEN

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

Так или иначе, даже если профильное базовое образование в области математики забыто, придётся вспомнить всё или почти всё в рамках онлайн-курсов по машинному обучению. На сайте Coursera достаточно много отличных курсов, с которых можно начинать изучение машинного обучения, например базовый курс «Машинное обучение и анализ данных», подготовленный совместно МФТИ и компанией «Яндекс». Или «Открытый курс по машинному обучению» от сообщества Open Data Science (ODS). Тем, кто «уже в теме», советую пройти курс «Advanced Machine Learning Specialization» от ВШЭ, а далее рекомендательная система Coursera подскажет вам полезные курсы, которые могут вас заинтересовать.

Важной составляющей успешного развития в области машинного обучения является хорошее владение английским языком, так как большая часть исследований в данной области публикуется на нём. Интересные разработки в области нейронных сетей от OpenAI, Google и Facebook также публикуются на английском языке. Тем не менее, важно также читать современную литературу по машинному обучению, выходящую на русском языке. Наиболее интересные издательства — это «ДМК Пресс» и O’Reilly, которые, наверное, знакомы многим программистам, так как публикуют достаточно много литературы, связанной с разработкой на различных языках программирования.

Не стоит забывать про различные соревнования по машинному обучению. Наиболее популярной площадкой является Kaggle, а в русскоязычном сегменте довольно популярен Boosters. Соревнования по машинному обучению помогут «добрать» и совершенствовать экспертные знания в конкретных областях машинного обучения, таких, например, как машинное зрение и обработка естественного языка. Не потеряться в море информации поможет общение с единомышленниками и профессионалами в данной области в рамках Slack-сообщества ODS. В этом сообществе можно найти массу полезной информации в различных областях машинного обучения, задать вопрос, на который Google не смог ответить, а также найти работу.

что нужно знать для машинного обучения

ведущий разработчик программного обеспечения Тверского технологического центра Accenture

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

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

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

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

Для тех, кто хочет получить базовое представление о том, что такое машинное обучение, полезным окажется курс от Эндрю Ына (Andrew Ng) на Coursera.

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

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

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

что нужно знать для машинного обучения

CEO Elbrus Coding Bootcamp

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

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

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

что нужно знать для машинного обучения

эксперт по машинному обучению «Инфосистемы Джет»

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

Если не хочется в магистратуру, можно пройти курсы. Достойные программы у ШАД, DMIA, CSC. Все три есть в офлайн-варианте: ШАД и DMIA в Москве, CSC в Петербурге. В ШАД и CSC также реализован вариант удалённого обучения, в DMIA он планируется.

Если вас интересует исключительно онлайн, то, конечно, есть смысл выбрать требуемое на Coursera. Что это может быть?

Machine Learning — базовый курс по машинному обучению от Andrew Ng, одного из сооснователей Coursera. На мой взгляд, у курса ровно один минус — код нужно будет писать на MATLAB. Если это вас не смущает, то обязательно берите.

Введение в машинное обучение — тоже базовый курс, но уже на русском и на Python, от Константина Воронцова, профессора кафедры интеллектуальных систем ФУПМ МФТИ.

Deep Learning Specialization — это уже целая специализация по нейронным сетям от Andrew Ng. Специализация неспешная, но глубокая. Особенно мне полюбился третий курс, где Эндрю рассуждает о том, как надо вести исследование в области глубокого обучения. Но его советы могут пригодиться и в классическом ML.

Advanced Machine Learning Specialization — курс от российских ребят. Он уже поглубже: там и про байесовскую статистику, и про Natural Language Processing, и про компьютерное зрение.

Кстати, про статистику. Чтобы ставить эксперименты и правильно считать корреляции, вам нужно знать статистику. Есть прекрасный курс уже на Stepik по основам статистики. Рекомендую. А если вам совсем лень, то книжка «Статистика и котики» вас спасёт. Маленькая, с наглядными картинками — читается за пару часов.

Что почитать?

«Python. К вершинам мастерства» (и вообще обратите внимание на издательство «O’Reilly»).

«Глубокое обучение. Погружение в мир нейронных сетей».

А ещё стоит читать Internet Archive — там всегда много интересных публикаций.

Если вас интересует короткий путь, то можно почитать этот Телеграм-канал, в котором просто и понятно разбираются свежие статьи.

Где потренироваться?

Мир машинного обучения богат на разного рода контесты и хакатоны.

Онлайн-площадок много, расскажу немного о самой известной — Kaggle. Там организуется множество соревнований на любой вкус. Ещё она хороша тем, что участники могут выкладывать решения (так называемы кернелы) и есть возможность посмотреть, как эту задачу решают другие.

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

Также существуют смешанные варианты — онлайн и офлайн. Если выбирать один такой хакатон и именно в России, то я, конечно, посоветую RAIF Hackathon (я была одним из организаторов и хорошо знаю, как устроено это мероприятие). Изюминка в том, что вы анализируете данные тех компаний, представители которых находятся совсем рядом с вами. А потом слушаете лекции, например, того же самого Константина Воронцова, чей курс уже упоминался.

И конечно, во всех этих соревнованиях есть ещё приятный бонус в виде денежного вознаграждения победителю (и славы, куда же без неё).

что нужно знать для машинного обучения

Solution Architect, Machine learning & AI, DataArt

Знакомство с машинным обучением предлагаю начать с изучения того, из чего оно состоит. Python, математика, алгоритмы, глубокое обучение, компьютерное зрение и обработка естественных языков — основные составляющие того, что принято относить к machine learning. Давайте остановимся на каждом пункте по порядку.

Python

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

Python — один из самых быстроразвивающихся языков, и именно на нём построен целый экомир Data Scientist.

Зачастую на собеседованиях можно встретить вопросы по следующим библиотекам:

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

Из книг достаточно сложно что-то посоветовать, но на рабочем столе есть две:

Математика

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

Некоторые курсы, которые помогут понять, с чем из этой области в обозримом будущем придется сталкиваться:

Из книг, которые лежат у меня на столе:

Алгоритмы

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

Лучший курс для новичков уже ни один год — от AndrewNG. Он захватывает и нейронные сети, и базовые понятия, однако внутри используется Octave, а не Python. Направлен больше на теорию, чем на практику. Объяснения на грани фантастики, и порог вхождения определённо низкий.

Я брала этот курс, но любой курс Кирилла Ерёменко поражает простотой и насыщенностью материала. При помощи этого курса можно быстро покрыть всё вышеизложенное в списке и ещё много чего. В нём мало теории, но после окончания у вас останется куча практического опыта.

Я постаралась собрать наиболее общий список алгоритмов, чтобы лучше изучить этот раздел ML:

Basic Machine Learning Algorithms:

Глубокое обучение

Deep Learning — всевозможные архитектуры нейронных сетей. Я видела AI-специалистов, которые предпочитают ограничиваться ML и зачастую не выходят за рамки определённых алгоритмов. Поэтому начать без этого пункта не то чтобы просто, а, скорее, нужно. Но для людей, которые не знают, о чём речь, в этом пункте скрыта вся романтика.

Посоветовать что-то конкретное тяжело. Зачастую люди могут специализироваться на архитектуре одной конкретной сети. Общий обзор можно получить из курса Кирилла Ерёменко.

Компьютерное зрение

Computer Vision — отдельный мир в мире ML. Ну, почти отдельный — здесь кроется немного другая математика, немного другие алгоритмы и немного другие базовые знания.

Моё знакомство ограничилось следующим:

Обработка естественных языков

Многие считают, что нет начинающего Data Scientist без проекта, связанного с NLP (Natural Language Processing). По собственному опыту могу сказать, что это раздел на любителя. И им стоит заниматься в случае страсти к филологии.

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

что нужно знать для машинного обучения

руководитель направления Data Science в «Нетологии»

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

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

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

Чтобы перейти в Machine learning, нужно понять, как работают базовые алгоритмы, изучить реальные кейсы. Если хотя бы на начальном уровне знаете Python, разобраться будет проще. Владение английским языком помогает выиграть 1–2 года у тех, кто ждёт выхода официальной документации или перевода книг.

Программа-минимум для человека, который хочет разбираться в машинном обучении (учиться примерно 8–12 мес):

Список книг, на которые стоит обратить внимание:

Короткие видео про развитие вкуса и вдохновение красотой и универсальностью математики: раз и два.

Бесплатный онлайн видео-курс Академии Хана про базовые понятия статистики (совокупности, выборки, ЦПТ, сравнения средних и т. д. — не обязательно быть в них спецом, но базовое понимание развить стоит ещё до обучения на курсах).

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

что нужно знать для машинного обучения

старший менеджер по разработке ПО компании ICL Services

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

что нужно знать для машинного обучения

эксперт в области IT-разработок

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

Ответ зависит от цели, которую ставит перед собой программист. Если задача — получить общее представление о предмете, узнать про основные инструменты и научиться ими пользоваться, то можно воспользоваться онлайн-курсами. Например, на платформе Coursera есть целая специализация из 6 курсов от Яндекса и МФТИ. Материал там изложен качественно и понятно, а интересные практические задания помогают его усвоить. Если этот курс покажется сложным из-за матаппарата (впрочем, используемого в минимально необходимом объёме), можно найти более простой курс на этой же платформе. И в любом случае, для обучения понадобятся хотя бы базовые навыки программирования на Python, так как он и набор библиотек Scikit-learn — сегодняшний стандарт в практике машинного обучения.

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

что нужно знать для машинного обучения

руководитель центра когнитивных технологий «АйТеко»

Доля проектов с применением искусственного интеллекта и машинного обучения ежегодно растёт, и скорость этого роста только увеличится. Рынок испытывает острую нехватку специалистов, что отражается на порядке зарплат в отрасли и ситуации в целом. Молодые люди, привлечённые высокой востребованностью и уровнем компенсаций, видят рекламные объявления онлайн-курсов с обещанием сделать из них Data Scientist за 2–3 месяца, и записываются без сомнений.

В первую очередь стоит опровергнуть распространённое заблуждение, что за 2–3 месяца можно стать Data Scientist. На старте освоения специализации важно осознать, что это долгий путь, и он не сводится к умению строить модели и работать с Kaggle. В приоритете — глубокое понимание работы с данными: определение их структуры, визуализация и анализ. То есть основа всему — системное качественное образование в фундаментальных дисциплинах: линейной алгебре, статистике, теории вероятностей, лингвистике и т. д.

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

Такой фрагмент можно написать, посмотрев небольшое видео или прочитав статью. Но это не значит, что вы стали специалистом и приобрели требуемые навыки. Стать им можно только благодаря опыту, наставничеству и участию в реальных проектах. После 2 лет обучения с погружением в практику, а не через 2–3 месяца пассивного изучения курсов, мы получаем хорошего Junior Data Scientist. Если на входе у человека есть подобное понимание профессии, то он сможет правильно построить обучение и карьеру. И очевидный совет — уже на этапе освоения специальности ищите возможность практики.

Теперь онлайн-курсы и книги, которые будут полезны:

что нужно знать для машинного обучения

ведущий инженер-программист компании СКБ Контур

Хороший специалист в области машинного обучения — тот специалист, который:

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

А если интересно изучить нейронные сети поглубже, советую почитать любую из этих книг:

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

А как решаются реальные задачи машинного обучения, рекомендую посмотреть на Kaggle — популярной соревновательной платформе в области машинного обучения. Вот примеры таких задач, во вкладке kernels можно посмотреть, как такие задачи решались:

что нужно знать для машинного обучения

ведущий инженер по GPU-приложениям и ML хостинг-провайдера REG.RU

Машинное обучение — обширная технология, стоящая на четырёх «столпах» анализа данных (Regression, Dimensionality Reduction, Density Estimation, Classification). Они в свою очередь имеют в своей основе около десятка направлений вычислительной математики (не считая, собственно, программирования!). Поэтому не следует ожидать, что машинным обучением можно овладеть, просмотрев несколько видео или подписавшись на Telegram-канал. Выбор способа изучения такой обширной темы — это прежде всего вопрос личных сильных сторон и возможностей.

Тем, кто быстро извлекает знания из практики и при этом не имеет возможности получать регулярное образование, лучше всего будет взять готовый серьёзный проект со всеми этапами машинного обучения. Например, Voice Loop от Facebook, и задаться целью постепенными небольшими модификациями адаптировать его для своей задачи. Можно разобраться, как синтезировать свой собственный голос или минимизировать вычислительную нагрузку для работы системы на гаджете. По мере решения прикладной задачи у вас начнёт складываться технологическая картина этапов обработки данных и процесса обучения. Уровень сложности готового проекта следует выбирать в соответствии с уровнем понимания кода на Python, аккуратностью отслеживания вносимых изменений и ошибок (с помощью системы контроля версий и т. п.). Преимущества подхода — быстрый старт и скорое получение относительно полезных результатов. Недостатки обусловлены «инженерностью» мышления: будет очень нелегко создать решение задачи «с нуля», без использования «заготовок». Вы также рискуете не разглядеть возможности переноса готовых идей на другие проблемы из-за более слабого понимания фундаментальных основ.

Тем же, кто лучше воспринимает теорию и математику, лучше будет посмотреть на спецкурсы при различных университетах. Академический подход будет долго вводить вас в курс дела по статистическим методам (регрессионный анализ, метод наименьших квадратов, kNN и т. д.), так что собственно до машинного обучения вы доберётесь ближе ко второй половине курса. Практические задачи будут простыми и нереалистичными, но целенаправленными. Плюсы этого подхода в теоретическом кругозоре: вы будете легко отсеивать малопригодные пути решения той или иной задачи, не теряя времени на практических неудачах. Однако, разработанный вами блестящий прототип имеет риск увязнуть на этапе внедрения из-за недостатка инженерной практики.

Ниже список литературы курса «Анализ данных», читаемого для студентов политехнической школы EPFL (Лозанна, Швейцария):

что нужно знать для машинного обучения

руководитель Computer Vision Research Group ABBYY

Начать знакомство с машинным обучением я рекомендую с книги Массачусетского технологического института «The Deep Learning Book», она выложена в открытом доступе. Это признанный во всём мире учебник по нейронным сетям, который не требует от читателя глубокой математической подготовки — все необходимые основы рассказываются во вводной части. Идеальная книга для человека, который ничего не знает о нейросетях, но хочет разобраться в этом вопросе подробно.

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

Чтобы следить за обновлениями, советую читать свежие и популярные статьи на сайте Arxiv Sanity Preserver по по тематике Machine Learning или любой другой интересующей вас теме.

что нужно знать для машинного обучения

ведущий инженер-программист компании True Engineering

Если вы решили заняться машинным обучением, то первым же шагом зарегистрируйтесь в сообществе ODS (Open Data Science). Там можно бесплатно получить ответ практически на любой вопрос, спросить совет, выговориться и найти наставника. Аналогов в IT просто не существует. Почти все обсуждения идут на русском языке, но регистрируются и иностранцы. Некоторые из них даже пытаются изучать русский (только за то, что на нём разговаривают на ODS). Такое вот «секретное оружие» российских data scientist’ов.

Второй шаг — практика. Машинное обучение, как и вообще IT, в этом плане весьма хорошая сфера. Чтобы безнаказанно оперировать людей, надо закончить институт. Чтобы перевозить пассажиров в самолёте, и они не разбежались, надо закончить училище. Чтобы анализировать данные, надо установить Python, Jupyter Notebook, PyCharm Community, Git.

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

Другой источник практики — ваша текущая работа. Если есть хоть какие-нибудь данные, то их можно анализировать. В простейшем случае сделайте «тот же самый отчёт», но на Python с библиотеками Pandas и Matplotlib — уже сможете добавить строчку в резюме. Попробуйте что-нибудь спрогнозировать, возможно, ваши начинания найдут поддержку со стороны начальства.

Параллельно с практикой (но никак не вместо неё) можно подтягивать теорию. Если вы не гений математики, а вуз закончили давно, то не стоит нырять в статистику, линейную алгебру и разбор классических ML-алгоритмов. Это также как «входить в IT» с ассемблера, дискретной математики, теории типов, книг Кнута. Круто, полезно, интересно, но только если у вас в запасе есть несколько лет по 8 часов в день.

Есть много разных курсов, лекций и статей. Для начала можно посмотреть на YouTube лекции «Stanford University CS231n». На русском языке есть курс «Deeplearning на пальцах». Лекции также выложены на YouTube, есть семинары и домашние задания.

Третий шаг — устройство на работу. Многие энтузиасты ML почему-то забывают или откладывают этот шаг. Они проходят курс за курсом (иногда несколько одновременно), участвуют в соревнованиях на Kaggle, посещают хакатоны, пишут пэт-проекты, но почему-то не рассылают резюме и не устраиваются на работу. Некоторые «звёздочки» умудряются на этих активностях зарабатывать приличные деньги. Но таких очень немного.

Единственный совет по устройству на работу — готовьтесь. Многие думают, что ответы на «задачки про гномиков» не важны, а можно просто показать «что ты хороший мотивированный человек и во всё разберёшься». Не сработает — дефицита хороших мотивированных и способных людей в этой сфере нет. Есть дефицит сильных опытных специалистов и начинающих «звёздочек» с топовым образованием. Остальным надо конкурировать. Поэтому вычитывайте резюме (на ODS с этим помогут), готовьтесь к собеседованиям, решайте задачи, разбирайте и учите правильные ответы. Не затягивайте с этим шагом.

что нужно знать для машинного обучения

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

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

Рекомендую как можно быстрее научиться пользоваться библиотеками Python: Numpy, Pandas, Matplotlib, Scikit-learn. После их освоения прогресс в обучении Data Science пойдёт быстрее. Для сферы искусственного интеллекта характерна потребность беспрерывно доучиваться, так как знания разнообразны, а области знаний постоянно развиваются, появляется что-то новое. По этим причинам недостаточно пройти какие-то одни курсы и на этом успокоиться, перестать заниматься. Многие успешные профессионалы, уже работающие в этой сфере, продолжают записываться на курсы, чтобы не отстать от времени или чтобы повторить забытое. Появляются и совершенно новые, перспективные области, о которых буквально год назад никто не говорил, в частности, квантовые вычисления — здесь могу порекомендовать курс Quantum Computing от сайта brilliant.org и курс «Квантовые вычисления» на Coursera от Сергея Сысоева. Также советую ознакомиться с туториалами библиотеки PennyLane на GitHub, если вы интересуетесь квантовым машинным обучением.

Могу порекомендовать курсы за авторством или при участии Andrew Ng и его компании deeplearning.ai: Machine Leaning, Deep Learning на сайте Coursera. Ещё там совсем недавно появился курс по TensorFlow — также от компании deeplearning.ai. По обработке естественного языка понравился курс «Обработка текстов, написанных на естественных языках» от ВШЭ, также размещённый на Coursera.

На мой взгляд, лучшие книги для погружения в машинное обучение:

что нужно знать для машинного обучения

руководитель направления Data Science компании «Хэндисофт»

Машинное обучение (Machine Learning, ML) – это прикладная технология. Для быстрого погружения в ML нужно иметь отличную математическую базу и навыки программирования. Во-первых, хорошо разбираться в основах математики (функции, производные, векторы, матрицы), статистики, в основах построения данных. Если знаний не хватает, то стоит «прокачать» базу, иначе можно остаться специалистом, выполняющим задачи кодера. Во-вторых, потребуется хорошее знание одного из языков программирования, например, Python или C++.

Среди лучших курсов по ML стоит выделить программы МФТИ и РУДН. Лаборатория машинного интеллекта МФТИ учит создавать эффективные ML-команды. Серьёзную подготовку даёт Факультет управления и прикладной математики. Запущен образовательный курс Deep Learning in Natural Language Processing. На факультете физико-математических и естественных наук РУДН представлен курс по машинному обучению и анализу данных от ведущих профессионалов индустрии («Яндекс», Google, МФТИ, РАН). Очень серьёзно данная область преподается в Национальном исследовательском университете «Высшая школа экономики», на факультете компьютерных наук по теме ML можно подобрать массу курсов.

Комплексные знания можно получить в известной Школе анализа данных (ШАД), основанной компанией «Яндекс» в 2007 году. Помимо машинного обучения здесь изучают компьютерное зрение, анализ текстов и другие технологии. Два года студенты изучают предметы, которые обычно не входят в университетские программы. Специалисты ШАД востребованы в ведущих организациях России.

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

Обязательная составляющая процесса обучения – поддержка профессионального сообщества. В частности, известный форум Open Data Science (ODS) поможет получить обратную связь по любому вопросу. На площадке присутствуют практически все профессионалы российского сообщества дата-сайентистов, здесь можно найти нужные книги и рекомендации. ODS несколько раз в год проводит международные серии бесплатных конференций (Data Fest), объединяющих всех связанных с Data Science исследователей, инженеров и разработчиков. В рамках этих конференций дополнительно все участники обмениваются практическими результатами и наработками.

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

Итак, как изучать машинное обучение?

Источник

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

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