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

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

1. Почему этот блог?

Часто люди спрашивают меня в различных социальных сетях или по электронной почте:

  • «Как я могу изучить ML (машинное обучение)?»,
  • «Каковы источники или онлайн-курсы, на которых я могу изучить ML?»,
  • «Какие инструменты лучше всего экономичны и с которыми легко работать?»

Если у вас тоже есть эти вопросы, то вы попали в нужное место.

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

2. Трудно начать работу с машинным обучением?

Нет это не так!!

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

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

Есть в основном 2 аспекта машинного обучения:

  1. Теоретическая
  2. Практичный

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

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

При этом практический аспект - это то, что действительно важно в конце дня для вашего проекта или проблемы. Существует множество фреймворков машинного обучения (TensorFlow, PyTorch, Keras, MxNet), что угодно. Эти фреймворки позволяют реализовать свои идеи, не вдаваясь в подробности реализации на низком уровне, если вы этого не хотите.

Итак, без лишних слов,

3. Приступим

Я расскажу вам список курсов / ресурсов и их плюсы и минусы:

3.a) Курсы (MOOC):

Важно уметь реализовывать полученные знания и создавать приложения / программное обеспечение машинного обучения, для этого вам необходимо выучить некоторый язык программирования. Python (3.x) в настоящее время является самым популярным языком программирования для машинного обучения и других вещей благодаря огромной поддержке сообщества и простоте использования.

Sentdex - один из тех каналов Youtube, на которых публикуются отличные материалы о приложениях Python и даже о машинном обучении (подробнее об этом позже). Его видео легко продвигать.

Я предлагаю посмотреть до видеоролика 36. Sys Module, а затем просто посмотрите учебные материалы по Matplotlib, если хотите.

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

Я рекомендую делать заметки во время просмотра видео (это поможет вам быстро пересмотреть или найти уравнения или формулы). Несмотря на то, что упражнения курса находятся в Octave / Matlab, попробуйте реализовать их на языке по вашему выбору (Python, R, JavaScript). Я рекомендую перейти к 5–6 неделям учебной программы, а затем перейти к другим курсам и продолжить это параллельно, если хотите.

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

Вы можете пропустить список воспроизведения, когда позже в этой серии вам понадобится графический процессор для выполнения задач, или вы можете попробовать создавать приложения в облаке (далее в публикации).

Это специализация, состоящая из 5 курсов, каждый из которых нацелен на конкретную область глубокого обучения. Он также преподается профессором Эндрю Нг и представляет собой более продвинутую версию курса ml-org. Упражнения по программированию выполняются на Python 3. Сама специализация является платной, но отдельные курсы могут быть проверены бесплатно (вы не получите сертификат, если будете проверять курсы).

Это скорее личный выбор, сколько и какие курсы вы хотите пройти из этих 5 курсов. Так что выбирайте и ныряйте глубже. ;)

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

Он состоит из двух курсов: Практическое глубокое обучение для программистов - это тот, с которого вам нужно начать, а затем продвигаться к продвинутому уровню (Передовое глубокое обучение для кодеров ).

3.b) Ресурсы:

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

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

Вы можете использовать облачные сервисы, такие как Google Cloud Services, Paperspace, Azure, AWS и т. Д., Чтобы обучать свои модели и даже развертывать их для использования другими.

Google Cloud Services - это то, что я сейчас использую, потому что они предоставляют бесплатные кредиты в размере 300 долларов для вашей учетной записи Google, а также предоставляют вам доступ к графическим процессорам, таким как K80, по очень низким ценам.

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

  1. Блог Амули Аанкуль
  2. Блог How Khang

3.c) Соревнования и наборы данных:

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

Это отличный способ взаимодействовать с сообществом и даже получить работу в машинном обучении, если у вас отличный профиль.

Существует множество платформ, на которых проводятся соревнования по машинному обучению, в основном Kaggle.com и HackerEarth.

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

Еще один отличный ресурс для наборов данных - Репозиторий машинного обучения UCI.

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

Вы также можете связаться со мной в Twitter по адресу @ShrimalAnubhav, посмотреть мое портфолио или найти меня в LinkedIn и Facebook. Я был бы рад получить известие от вас.