Найти в Дзене
The Dawn Project

Изучение машинного обучение. Бесплатные курсы, а также книги для изучения ML.

Оглавление

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

Вот несколько курсов для изучения этих языков:

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

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

Ссылка: https://stepik.org/course/67

Основы программирования в R

На этом курсе вы познакомитесь именно с основами языка R, а методы и алгоритмы языка вы изучите в других курсах. Также вы получите сертификат. Есть ДЗ.

Ссылка: https://stepik.org/course/497

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

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

Анализ данных в R

В этих двух частях вы будете изучать функции и различные методы в языке R, которые помогут в Data Science.

Ссылка на первую часть: https://stepik.org/course/129

Ссылка на вторую часть: https://stepik.org/course/724

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

Основы статистики

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

Ссылка на первую часть: https://stepik.org/course/76

Ссылка на вторую часть: https://stepik.org/course/524

Ссылка на третью часть: https://stepik.org/course/2152

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

Введение в Data Science и машинное обучение

На этом курсе вы изучите решающие деревья, random forest, а также вы познакомитесь с нейронными сетями. На этом курсе вы познакомитесь с некоторыми библиотеками языка Python и научитесь с ними работать. Также вы получите сертификат.

Ссылка: https://stepik.org/course/4852

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

Грокаем глубокое обучение - Эндрю Траск

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

Создаём нейронную сеть - Тарик Рашид

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

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

Глубокое обучение - Ян Гудфеллоу, Иошуа Бенджио, Аарон Курвилль

Разбирается теоретическая основа нейронных сетей. Уже нужны некоторые знания из вышей математике, но все же часть нужных знаний разбираются в этой книге.

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

Когда вы всё прошли и прочитали, что я тут порекомендовал, можете для начала проходить соревнования на Kaggle, а потом уже пробовать себя в фринлансе.

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

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

Итог

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