📈 🧠 💰 Станьте экспертом по машинному обучению с нуля и бесплатно!

Полное руководство, как освоить машинное обучение (ML) и технологии искусственного интеллекта (AI) с нуля, не обладая каким-либо опытом в этой области.

Полное руководство о том, как начать изучать машинное обучение (ML) и искусственный интеллект (AI), не обладая каким-либо опытом в этой области.

В моих соцсетях мне сотни раз в день задают один и тот же вопрос: "как попасть в Machine Learning?" Зачастую он имеет другие формы, вроде: "как начать бесплатно?", "как начать, не будучи разработчиком?" и т.п. Поэтому я решил написать полное руководство о том, как начать свой путь в машинном обучении с полного нуля и бесплатно. Чтобы отвечать на такие актуальные вопросы, я исследовал множество ресурсов на протяжении нескольких последних лет, и сохранял лучшие из них в блокнот, чтобы быстро отвечать на будущие вопросы.

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

От переводчика
Люди, способные самостоятельно освоить настолько сложные концепции, заслуживают всяческого уважения. Однако мой собственный опыт заставляет меня предупредить вас: "это не Рио-де-Жанейро!" Даже имея красный диплом факультета прикладной математики, 25 лет опыта программирования и диплом лучших в стране курсов по Data Science (далеко не бесплатных!), высокооплачиваемую работу я все равно не получил: нет "experience", нет опубликованных статей, и т.д. Так что если машинное обучение интересует вас только как шанс найти хорошую работу – подумайте еще раз.
Кроме того, почти все перечисленные ресурсы доступны только на английском языке, и если у вас с ним не очень – сначала поднимите свой уровень языка. Усвоение сложного материала на незнакомом языке – это настоящий кошмар.

Кто может стать экспертом в машинном обучении?

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

Цель этой статьи – в том, чтобы предоставить путь для всех, желающих попасть в Machine Learning, но не знающих, с чего начать. Я знаю, что найти, с чего начать, или что изучать дальше при изучении чего-нибудь нового, может быть трудно, особенно если у вас нет учителя или кого-нибудь, кто дал бы хороший совет. Именно поэтому я перечислю множество ресурсов, с которыми вы сможете проконсультироваться, упорядоченных по возрастанию сложности. Если вы уже кое-что знаете, то просто пропустите некоторые шаги.

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

Не стесняйтесь проигрывать видео несколько раз или изучать одни и те же концепции из разных источников. Повторение – ключ к успеху при изучении чего-то нового!

От переводчика
Многие авторы утверждают, что "диплом матфака необязателен", и это действительно так – но вам не обойтись без теории вероятностей, статистики, линейной алгебры и дифференциального исчисления функций нескольких переменных. Вся необходимая математика содержится в великолепной книге Mathematics for Machine Learning (Кембридж), и я настоятельно рекомендую начать именно с нее, чтобы понять, "ваша" это область или нет. Не сможете усвоить хотя бы первую часть книги (и выполнить большую часть упражнений) – значит, машинное обучение не для вас.
Каждая модель машинного обучения – это математическая модель оптимизации, и для успеха в этой области математику нужно по-настоящему любить. Без нее вы не сможете даже правильно подготовить данные! Поэтому любое собеседование включает простейшие математические задачи, на которых и срезают "гуманитариев".

Начните с YouTube

Давайте погрузимся!

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

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

https://www.youtube.com/WhatsAI

Первый ресурс, который я лично рекомендую – это плейлист YouTube, представляющий самые важные термины в данной области, What's AI. Этот плейлист надо обязательно посмотреть, чтобы получить базовое понимание машинного обучения и какое-то представление о терминах, используемых в этой области. Это просто последовательность коротких 1-минутных видео, рассматривающих самые важные термины, от простых до более сложных. Вам потребуется не больше 30 минут, чтобы получить полный обзор этой области!

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

К счастью для нас, замечательный канал 3Blue1Brown создал серии видео, раскрывающих именно эти концепции предельно ясно. Не стесняйтесь проигрывать их несколько раз или найдите свой плейлист на эту тему, если что-то осталось непонятным! Изучение основано на повторении!

https://www.youtube.com/c/3blue1brown

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

Не упускайте и другие обучающие видео на YouTube! Там есть отличные ресурсы, и вообще это бесплатная и недооцененная платформа для изучения!

Начинаем серьезное изучение

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

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

Кроме того, эти курсы очень увлекательны. Как только у вас появится мотивация, чтобы нажать кнопку "Play", они удержат ваше внимание до конца, и я, обещаю, что вы научитесь МНОГОМУ!

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

Переходим к чтению

Читайте статьи онлайн

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

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

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

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

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

Читайте важные книги

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

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

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

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

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

Нет опыта кодирования – нет проблем!

Этот раздел – для начинающих кодировщиков. Если у вас нет никакого опыта в Python или других языках программирования, он предоставит вам базу и даст отличную основу для программирования машинного обучения.

Если вы уже неплохо знакомы с Python'ом, смело пропускайте этот раздел и переходите к следующему!

Вот лучшие онлайн-курсы для изучения программной стороны машинного обучения:

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

Затем вы можете изучить бесплатный курс "Изучите основы Python для анализа данных" на OpenClassroom.

После этих двух ресурсов, если вы все еще не чувствуете, что уверенно знаете Python, можно погрузиться в платный курс от IBM на Coursera под названием "Машинное обучение на Python". Он уж точно подготовит вас к кодированию своих первых алгоритмов машинного обучения и серьезно улучшит ваши навыки программиста.

От переводчика
Опыт кодирования именно на Python действительно далеко не так важен, как знание математики, но полное отсутствие опыта кодирования может стать проблемой. Если вы не можете написать элементарный цикл, у вас будут проблемы с подготовкой данных. Я вообще не знал Python, но огромный опыт программирования на других языках и прекрасный курс Python от Фреда Баптисте, который я рекомендую всем, "поставили меня на ноги". Да, этот курс платный, но все четыре его части обойдутся вам не дороже одной серьезной книги. Приготовьтесь потратить на этот курс не менее пары месяцев, поскольку все упражнения обязательно нужно выполнять.

Проходите онлайн-курсы

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

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

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

Теперь вы более чем готовы начать практическую работу и строить свое будущее портфолио!

От переводчика
Лично я предпочитаю не те курсы, которые повторяют элементарные базовые сведения, а те, которые очень подробно анализируют какой-то аспект машинного обучения – например, курсы LazyProgrammer'а вроде этого курса по Tensorflow 2. Базовые сведения можно почерпнуть из книг и статей.

Учимся вместе

Практика, практика и еще раз практика!

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

https://www.kaggle.com/

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

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

Вы также можете создавать команды для соревнований Kaggle и учиться вместе! Я предлагаю вступить в коммьюнити для поиска команды и учиться вместе, это всегда лучше, чем учиться в одиночку. Этому посвящен следующий раздел.

Еще ресурсы

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

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

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

  • artificial – Искусственный Интеллект.
  • MachineLearning – машинное обучение (самое крупное сообщество).
  • DeepLearningPapers – статьи по глубокому обучению.
  • ComputerVision – извлечение полезной информации из изображений и видео.
  • learnmachinelearning – изучение машинного обучения.
  • ArtificialIntelligence – ИИ.
  • LatestInML – последние разработки в области машинного обучения, которые вы не должны пропустить.

Еще одна важная вещь в этой области – это следить за последними статьями и приложениями, которые появляются каждый день. Лучший способ – это присоединиться к группам LinkedIn, в которых отслеживают эти приложения, следить за публикациями Medium и даже YouTube-каналами, которые суммируют эти новые статьи. Я перечислю лучшие известные мне ресурсы, но вы, конечно, можете найти и другие, более соответствующий вашим интересам!

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

  • Two Minutes Papers – видео, выходящие раз в две недели и описывающие новые статьи за это время.
  • What's AI – еженедельные видео, описывающие новые статьи.

Вступите в группы LinkedIn:

Следите за аккаунтами и публикациями на Medium:

  • Towards Data Science – "делимся концепциями, идеями и кодом"
  • Towards AI – "лучшее в технологии, науке и инженерном деле"
  • OneZero – "скрытые течения будущего – публикация Medium о науке и технологии"
  • Небольшая самореклама, автор – я объясняю термины и новости Искусственного Интеллекта для новичков. Моя цель – раскрыть "черный ящик" ИИ для всех, чтобы люди знали о его возможностях и рисках.

Заключение

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

Заметьте, что это далеко не полный список ресурсов, которые помогут вам стать экспертом в машинном обучении. Разумеется, вы можете использовать больше (или меньше) ресурсов и учиться в удобном для вас ритме. Не все в жизни – соревнование, и вам стоит следовать своим инстинктам в выборе собственного пути изучения. Никогда не стесняйтесь перечитать статью или посмотреть видео второй раз, чтобы понять концепцию. Мы все прошли через это, и это совершенно нормально. Самое важное – чтобы вы поняли концепции, а не "покончили" со всем списком ресурсов за кратчайшее время.

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

***

Мнение переводчика может не совпадать с мнением редакции «Библиотеки программиста».

Источники

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

matyushkin
07 апреля 2020

ТОП-15 книг по Python: от новичка до профессионала

Книги по Python (и связанным с ним специальным темам) на русском языке. Рас...
admin
14 июля 2017

Пишем свою нейросеть: пошаговое руководство

Отличный гайд про нейросеть от теории к практике. Вы узнаете из каких элеме...