Предлагаем почитать перевод статьи 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.

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

И напоследок



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

  1. Не бойтесь менять последовательность некоторых шагов. Возможно, вы сначала захотите изучить Python, затем линейную алгебру и только потом статистику.
  2. Изучив что-то, побольше практикуйтесь.
  3. Играйте с алгоритмами машинного обучения на любом этапе, чтобы разобраться, что к чему. Настраивайте параметры, чтобы посмотреть, что будет. Любопытство должно быть вашим оружием.
  4. Будьте терпеливы. Я знаю, на все это нужно время, это трудно. Но оно того стоит.
  5. Kaggle вам в помощь. Много Kaggle!
  6. Наслаждайтесь процессом, а не результатом.