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

Автор оригинала: Diego Isco
  • Перевод
Предлагаем почитать перевод статьи 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. Наслаждайтесь процессом, а не результатом.
Plarium
Разработчик мобильных и браузерных игр

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

    0

    Ещё бы адаптированный вариант на русском языке...

      +1
      Адаптированный вариант на русском — пройти один из бесплатных курсов: ШАД, OZON Masters или MADE… только сначала туда поступить :)
        0
        Посмотрел вступительные. Для человека 30+ там нечего делать. Печаль :(
          +1
          Как-то пессимистично… я, наоборот, думаю к 50-ти подтяну математику до нужного уровня :)… и можно поступать
            0
            Где-то встречалось изречение, что математика — это язык, на котором природа разговаривает с человеком.
            Вот так, порой незримо, каждый из нас с ней и сталкивается. Как глубоко в неё погружаться, тут уж в соответствии со своими силами и возможностями.
        +2
        Для видео (с канала 3Blue1Brown) доступны субтитры на русском. Как пользоваться — здесь свежий пример.
          +2
          Вот за что минусуете человека? За то, что он не настолько хорошо знает английский, как native speaker?
          Для Diego Isco это не проблема, ему-то не нужно быть математиком, чтобы пройти предложенные курсы. А для человека с каким-нибудь Intermediate уровнем для этого придется серьезно расширить словарный запас.
          Вообще-то на Хабре есть англоязычный раздел и такие статьи лучше постить сразу туда. Те, кто хорошо знает английский, прочтут ее без перевода (и без проблем, я надеюсь). А потом пойдут на курсы.
          Для тех, кто с английским не в ладах, эта статья вообще бесполезна. Зря переводили, тратили время.
            +1
            По второй части. Статью нахожу полезной — узнал про очень интересный канал 3Blue1Brown, раньше он мне не попадался.
            Переведено хорошо, в стане интересующихся машинным обучением прибыло. Автору поста респект за годный контент.
            Если интересует мой уровень владения иностранным языком — посмотрите мой профиль и там последний комментарий к одному из постов. Общее представление получите.
            +2
            Вот тут есть переводы некоторых роликов 3Blue1Brown, в основном, по тематике линейной алгебры. Автор канала где-то в комментариях обещал перевести со временем все видео.
            0

            В Яндексе вас заверят что это не возможно (иначе говоря — нужно быть гением в математике) :)

              +2
              Да почему гением? Надо знать на уровне 2-3 курсов мехмата, шо тут гениального
                0
                Можно и физфака :-)) И, кстати, математика там простая как сибирский валенок, можно взять книги того же Смирнова и почитать (Только не на ночь!!!)
                +1

                Недавно в ШАД появился инженерный трек поступления, там математика сильно проще, но больше требований к программированию, вот пример задач: https://yadi.sk/i/4y0LWJ0l3PBPIQ

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

                Никак. Расходимся.
                  0
                  Способ есть — стать великим математиком.
                  +1

                  По статистике могу посоветовать книги Гмурмана и Grami A. Отличные книги с задачами. Как применять статистику можно почитать в Statistics in Nutshell.

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

                  Самое читаемое