Как начать машинное обучение

Вы всегда были поражены количеством онлайн-курсов по машинному обучению? Вы считаете, что количество тем в машинном обучении пугает? Вы тратите больше времени на чтение обзоров, чем на сам курс? Что ж, я составил пошаговое руководство, чтобы вы могли перейти с нуля до опытного участника Kaggle за один год. Давайте прямо в это дело!

Примечание. Я предполагал, что читатель знает основы исчисления и векторы.

Шаг 0:

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

Шаг 1:

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



Шаг 2:

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

Вот отличный пост от Даниэля Бурка; это поможет вам все настроить.



Шаг 3:

А теперь вернемся к Python. Если вы предпочитаете учебники и медленные учебные пособия, Corey Schafer создал фантастическое учебное пособие. Посмотрите видеоролики 1–9, 17–39, 46 и 56.

h ttps: //www.youtube.com/playlist? list = PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU

Если вы предпочитаете более увлекательные и динамичные обучающие программы, Харрисон Кинсли или Sentdex сделали отличное руководство, в котором вы создаете небольшую игру.





Шаг 4:

Теперь, когда вы изучили Python, вы поймете, что использование нескольких вложенных списков для обработки матриц неэффективно. Здесь на помощь приходит Numpy. Вот краткое текстовое руководство от Гоку Мохандас.



Шаг 5:

Помните, я сказал обратить внимание на математические концепции, которые только что затронул Эндрю Нг. Один из них - линейная алгебра. Но я не хочу, чтобы вы прошли полноценный теоретический курс линейной алгебры. Вместо этого у нас есть блестящий курс «Вычислительная линейная алгебра» от Рэйчел Томас.



Шаг 6:

Прежде чем приступить к разработке модели машинного обучения, необходимо выполнить анализ данных. Двумя наиболее важными инструментами / библиотеками для этого являются Pandas и Matplotlib. Corey Schafer сделал исчерпывающее руководство для обоих. Не пытайтесь запомнить все функции; ознакомьтесь с библиотеками.

Панды: https://www.youtube.com/playlist?list=PL-osiE80TeTsWmV9i9c58mdDCSskIFdDS

Matplotlib: https://www.youtube.com/playlist?list=PL-osiE80TeTvipOqomVEeZ1HRrcEvtZB_

Шаг 7:

Теперь, когда у вас есть все инструменты, вы можете приступить к созданию моделей машинного обучения. Я бы порекомендовал следовать наряду с учебником Sentdex из видео 1–42.

https://www.youtube.com/playlist?list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v

Шаг 8:

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

  1. Деревья решений

https://www.youtube.com/watch?v=7VeUPuFGJHk&t=13s

https://www.youtube.com/watch?v=wpNl-JwwplA

https://www.youtube.com/watch?v=q90UDEgYqeI&t=51s

2. Случайный лес

https://youtu.be/J4Wdy0Wc_xQ

https://youtu.be/nyxTdL_4Q-Q

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

https://youtu.be/YYjvkSJoui4

3. AdaBoost

https://youtu.be/LsK-xG1cLYA

Я считаю, что к настоящему времени вы сможете прочитать документацию и разобраться во всем самостоятельно. Но на всякий случай я добавил простое руководство по реализации AdaBoost в Python от Unfold Data Science.

https://youtu.be/7xHM93WXOu8

4. Повышение градиента

https://youtu.be/3CC4N4z3GJc

https://youtu.be/2xudPOBz-vs

https://youtu.be/jxuNLH5dXCs

https://youtu.be/StWY5QWMXCw

https://youtu.be/OUk7Xvs8iS8

5. XGBoost

https://youtu.be/OtD8wVaFm6E

https://youtu.be/8b1JEDvenQU

https://youtu.be/ZVFeW798-2I

https://youtu.be/oRrKeUCEbq8

https://youtu.be/GrJP9FLV3FE

6. Наивный байесовский

https://youtu.be/O2L2Uv9pdDA

https://youtu.be/l3dZ6ZNFjo0

Шаг 9:

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





Шаг 10:

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

Шаг 11:

Наконец, чтобы укрепить свои практические навыки глубокого обучения, пройдите следующий курс. Это потенциально может сделать вас победителем конкурса Kaggle.



Поздравляю! Вы стали практиком машинного обучения-самоучки.

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

Хлопайте и комментируйте, если вы нашли это полезным. Приветствуются предложения и положительная критика.