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

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

Хотя технически это подкатегория машинного обучения, глубокое обучение превратилось в отдельную парадигму и заслужило звание «одного из столпов машинного обучения», и не зря. В последнее десятилетие появилось огромное количество успешных приложений и технологических достижений, использующих глубокое обучение. Алгоритмы и архитектуры глубокого обучения помогли решить некоторые очень интересные и — до сих пор — почти неразрешимые проблемы, но также предоставили множество забавных приложений. Глубокое обучение — это парадигма машинного обучения, где рабочей лошадкой является концепция нейронных сетей. Нейронные сети — это алгоритмы, математические конструкции, которые транслируются в программы и в своих основных формах состоят из узлов (реализованных с помощью структур данных) и вычислений (реализованных как действия, выполняемые над данными). Как вы можете догадаться из названия, их абстрактная архитектура — это сеть. Узлы выполняют действия над данными и связаны друг с другом путем обмена данными. Это чрезмерно упрощенное описание того, что такое нейронная сеть, не соответствует такой прекрасной концепции, но я рекомендую вам поискать в Интернете более подробное описание. Достаточно знать, что сеть — это удобный способ увидеть, как действия выполняются над данными.

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

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

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

Предположения о фоновых знаниях

Как и базовое машинное обучение, глубокое обучение — сложная область, требующая определенных базовых знаний. К счастью, повсеместное распространение фреймворков и библиотек облегчает работу, но они не избавляют — и не должны — избавлять вас от необходимости понимать, что вы создаете и как должна работать ваша модель. Здесь вступают в игру математическая зрелость и навыки программирования. Линейная алгебра обязательна, а также необходимы отточенные навыки Python. Это означает, что вы должны хорошо разбираться в ООП и всем стеке Numpy, вам нужно знать, как умножать матрицы (множество матриц!), и было бы более чем полезно иметь четкое представление о машинном обучении, представленном в разделах Автодидакты. путь часть 1» (в основном о подходе).

Вводные ресурсы

Некоторые ресурсы сгруппированы по стоимости и возрастающей сложности с точки зрения новичка.

Абсолютно бесплатные курсы

  • Погружение в глубокое обучение — если вы новичок в ГО, но имеете достаточный опыт в МО (как описано в 1-й части этой серии), то это очень хорошее место для начала. Этот курс, созданный учеными и преподавателями ведущих университетов США, таких как Стэнфорд и Карнеги-Меллон, представляет собой подробное введение в глубокое обучение для начинающих. Большим бонусом (кроме того, что это абсолютно бесплатно!) является тот факт, что примеры предоставляются как в PyTorch, так и в Tensorflow (двух самых известных фреймворках для DL) вместе с записанными лекциями.
  • Fast.ai — попытка демократизировать глубокое обучение. Преподаватели этого курса приложили огромные усилия, чтобы упростить необходимый фон для путешествия по глубокому обучению. Существует также книга с похожим названием и мышлением, которая тесно связана с курсом, а также целая библиотека, которая поможет вам создавать модели. На сайте вы найдете не один курс, и один из них обязательно привлечет ваше внимание!
  • Стэнфордский курс Эндрю Нг — естественное продолжение знаменитого курса по машинному обучению. Очень хороший обзор поля. Настоятельно рекомендуется дополнить этот курс версией Coursera, которая в некоторых моментах гораздо более подробная, а также бесплатная (требуется платный доступ к некоторым элементам).
  • Курс Янна Лекуна по глубокому обучению в CDS — курс одного из отцов глубокого обучения. Я осмелюсь сказать, что это немного неортодоксальный подход к доставке и учебная программа по сравнению с другими статьями в списке, но это определенно то, что вы не пропустите (возможно, после того, как вы взглянете на одну из вышеперечисленных). Это полный курс с тетрадями и лекциями.

Платные курсы

  • Udemy (£10-14/курс): £/курс. У Udemy есть много курсов на выбор, но вы должны выбирать с умом. Как правило, курсов с высоким рейтингом достаточно, чтобы начать работу в прикладной сфере и помочь вам создать несколько проектов для отображения в вашем портфолио. Мне показались очень интересными курсы Ленивый программист, От нуля к мастерству и Хосе Портилья.
  • Специализация Deep Learning на Coursera: ££/месяц. Это также было упомянуто в приведенном выше списке, но здесь для полноты. Стоимость обратно пропорциональна времени, которое вы инвестируете, и скорости прохождения курсов. (Примечание: специализацию можно закончить за 2 месяца)
  • Сертификат разработчика AI TensorFlow, специализация Coursera: ££/месяц. Еще одна специализация Deeplearning.ai на Coursera, посвященная практическому использованию TensorFlow и готовящая вас к получению сертификата разработчика. Он прекрасно дополняет указанную выше специализацию, а также есть книга инструктора Лоуренса Морони, которая тесно связана с курсом.
  • Deep Learning Nanograde Udacity: ££££/месяц. Udacity предлагает широкий выбор семестровых курсов с лекциями, рекомендациями и проектами. Это довольно дорого, чем остальные, и, возможно, есть ресурсы такого же качества, если не лучшие для начала. Он входит в список как универсальный ресурс и благодаря личному опыту работы с ним.

Книги

Вот некоторые интересные книги с прикладным подходом к предмету:

Мой личный выбор — начать с бесплатных ресурсов. В зависимости от ваших предпочтений и того, на чем вы хотели бы сосредоточиться (например, компьютерное зрение, НЛП и т. д.), вы можете дополнить их проектами, которые вы можете найти в онлайн-учебниках или даже в статьях здесь, на Medium.

Теоретические/математические ресурсы

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

Учебник по глубоким нейронным сетям — это не что иное, как:

  • Книга Гудфеллоу, Бенджио и Курвиля — золотой стандарт в теории глубокого обучения. В основном ориентирован на математические основы теории. Вы не найдете здесь написанного кода, но я считаю, что эта книга заслуживает место в библиотеке любого практика.

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

Но, скорее всего, вы снова окажетесь в компании Goodfellow’s et. др. библия.

Проекты и интересные приложения

За последнее десятилетие многочисленные приложения глубоких нейронных сетей оказали влияние и привлекли внимание к более традиционным алгоритмам машинного обучения. Это не лишено достоинств, поскольку мы были свидетелями многих случаев, когда модели достигли сверхчеловеческой производительности. Они умеют классифицировать изображения среди тысяч классов с меньшей погрешностью, чем люди, могут выявлять рак (меланому, рак молочной железы и т. д.) у пациентов на специализированном человеческом уровне и беспрепятственно вести беседу (я говорю о вас GPT-3). …!), что заставляет вас думать, что он проходит тест Тьюринга. Они решили Го и шахматы… даже ДОТА.

Делая это более приземленным, мы также можем создавать полезные и интересные проекты, не обязательно тратя миллионы на обучение моделей. Многие компании, такие как DeepMind, Google и OpenAI, сделали свои модели общедоступными бесплатно! Это дает нам преимущество при создании собственных приложений. Здесь на ум приходит концепция переносного обучения. Используя предварительно обученные модели, мы можем достичь высоких показателей точности для нашего конкретного приложения, обучая только несколько последних слоев нашей модели (которая состоит из предварительно обученных слоев, к которым добавляются наши слои, относящиеся к нашему приложению).

Каналы YouTube

Несколько хороших каналов на YouTube, включая множество учебных пособий:

Заключение

Глубокое обучение, вероятно, является одним из самых важных достижений в области искусственного интеллекта за последние 10–15 лет. Технология графического процессора и новые алгоритмы позволили обучать огромные модели, которые во многих случаях превосходят людей в задачах, связанных со зрением и речью. Уже одно это однозначно делает эту горячую тему, которая может иметь значение, и о которой вам следует позаботиться!

Оставайтесь с нами для следующих частей учебной программы Autodidact…

Я был бы рад узнать ваши мысли ниже и использовали ли вы эти ресурсы сами!

Отказ от ответственности: никакие ссылки не являются партнерскими.

Подключаемся: https://www.linkedin.com/in/marios-kokmotos