Я закончил Udacity's Deep Learning Nanodegree (DLND) в конце прошлого года, а специализация deeplearning.ai Эндрю Нг завершилась для меня в феврале.

В настоящее время я прохожу около 70% через Udacity's Artificial Intelligence Nanodegree (AIND) в рамках моей самостоятельно созданной степени магистра искусственного интеллекта.

Этот пост начинался как мой ответ на вопрос на Quora.

Я ответил на вопрос, основываясь на моем опыте работы с обоими курсами, а также с DLND.

Короткий ответ

Сделайте и то, и другое.

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

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

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

Я прошел курсы в следующем порядке.

1. Udacity Deep Learning Nanodegree
2. Udacity Artificial Intelligence Nanodegree Термин 1 (традиционный ИИ)
3. Специализация Coursera deeplearning.ai от Эндрю Нг
4. [Текущая ] Udacity Artificial Intelligence Nanodegree Term 2 (в центре внимания - глубокое обучение)

Если бы у меня снова было время, я бы использовал следующий порядок.

1. Специализация Coursera deeplearning.ai, автор Эндрю Нг
2. Нанодиплом по глубокому обучению Udacity
3. Срок 1 по нанодеге Udacity по искусственному интеллекту
4. Срок 2 по нанодиплому по искусственному интеллекту Udacity

Почему?

Deeplearning.ai by Andrew Ng использует фундаментальный подход к глубокому обучению. Так я лучше всего учусь.

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

Если у вас уже есть базовые знания о глубоком обучении и машинном обучении или вы уже являетесь солидным программистом на Python, AI Nanodegree от Udacity может стать для вас идеальным местом для начала.

Почему оба?

Знание кроссовера.

Пройдя оба курса, я обнаружил, что они прекрасно дополняют друг друга.

Там, где курс Эндрю падает, AIND подхватывает и наоборот.

Вчера со мной случился один реальный пример. Я застрял на проблеме в проекте AIND NLP capstone, в частности, на той, которая связана с встраиванием слов.

Я писал на форумах, что у меня проблемы с пониманием вложения слов.

По предложению Вадима я вернулся к лекциям по встраиванию слов в специализации deeplearning.ai. Прежде чем это сделать, я часами искал в Интернете объяснение, которое смогу понять.

Примечание для себя: не пренебрегайте материалом, который вы уже просмотрели!

В конце концов, они оба отличные курсы. Если вам нужно выбрать один, я бы предпочел специализацию deeplearning.ai. В стиле преподавания Эндрю есть что-то, что мне действительно нравится.

Более длинный ответ

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

Я разделю его на восемь категорий.

1. Стоимость и время - эти курсы не являются бесплатными или легкими.
2. Предварительные условия - что вам нужно перед началом.
3. Варианты поддержки - что делать, если вы застряли.
4. Качество курса - насколько хорош материал?
5. Отправка проекта - что происходит с вашей работой?
6. Структура курса - как проходит курс?
7. Возможности на будущее - что делать после курсов?
8. Другие учебные ресурсы - какие еще есть учебные ресурсы?

1. Стоимость и время

Специализация deeplearning.ai требует ежемесячной абонентской платы в размере 64 австралийских долларов (~ 50 долларов США) для доступа к каждому из пяти курсов. Каждый курс рассчитан примерно на 1 месяц. Итого пять месяцев - это ~ 250 долларов США.

Если вы будете достаточно быстры, вы сможете сделать это за месяц. Мне удалось это сделать за три. Однако я мог бы закончить менее чем за два месяца жизни.

DLND требует предоплаты в размере 750 австралийских долларов (~ 580 долларов США). Вы должны завершить все проекты, связанные с DLND, в течение четырех месяцев после начала, иначе вам придется заплатить снова. Если вы завершите его вовремя, вы получите 145 долларов в месяц.

Udacity's Artificial Intelligence Nanodegree - самый длинный и самый дорогой из трех. Состоит из двух трехмесячных сроков по цене 1000 австралийских долларов (~ 775 долларов США). Опять же, если вы завершите требуемые проекты в течение шести месяцев, получится 258 долларов США в месяц.

По моему опыту, оба курса Udacity занимали не менее 15–20 часов (иногда больше) в неделю, чтобы не сбиться с пути.

С другой стороны, мне удавалось проходить недельные занятия в день (6–8 часов) по специальности deeplearning.ai. Это в основном потому, что я придерживался методов обучения Нг.

2. Предпосылки

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

Требуется некоторая математика, но в центре внимания должен быть Python.

Если вы можете прочитать скрипт Python на GitHub и понять хотя бы 60% того, что происходит, у вас все будет хорошо, если вы попробуете любой из этих курсов.

Если Python является для вас слабым местом, я бы еще немного попрактиковался, прежде чем начать.

Когда я начал DLND, у меня было трехнедельное знание Python. До этого я никогда не программировал.

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

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

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

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

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

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

3. Варианты поддержки

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

DLND и AIND имеют собственный канал в Slack и специализированные форумы.

В двух каналах Slack есть еще несколько каналов, посвященных разным темам.

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

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

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

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

Форумы по специализации deeplearning.ai - аналогичный опыт. Основное отличие состоит в том, что пользователям не разрешается размещать какой-либо код непосредственно из заданий, но псевдокод - это нормально. Я нашел здесь форумов более чем достаточно, чтобы ответить на мои вопросы.

Когда вы регистрируетесь в AIND, вам назначается наставник. Имя моего наставника - Аюши. Она инженер-программист из Индии.

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

Никогда не обесценивайте силу вслух говорить о своих проблемах. И никогда не бойтесь просить о помощи.

Один совет при размещении вопроса - передать его как можно более эффективно. Помогите другим помочь вам, подробно объяснив, с какими проблемами вы сталкиваетесь. Я над этим работаю.

4. Содержание курса

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

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

1. Введение
2. Нейронные сети - создание вашей первой нейронной сети.
3. Сверточные нейронные сети - построение классификатора пород собак.
4. Рекуррентные нейронные сети - использование нейронных сетей для генерации Телевизионные сценарии.
5. Generative Adversarial Networks - создание генератора лиц.
6. Deep Reinforcement Learning - обучение квадрокоптеру летать. [НОВЫЙ]

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

Примечание. Раздел 6 - это новое дополнение к DLND, и я еще не пробовал его.

Deeplearning.ai Эндрю Нг разбито на пять частей.

1. Нейронные сети и глубокое обучение
2. Улучшение глубоких нейронных сетей: настройка гиперпараметров, регуляризация и оптимизация
3. Структурирование проектов машинного обучения
4. Сверточные нейронные сети
5. Последовательность Модели

Курсы 2 и 3 были для меня отличными. Я чувствую, что этот материал отсутствовал в DLND.

Остальные курсы были похожи по структуре на их эквиваленты, предлагаемые в DLND. Прохождение курсов 4 и 5 продолжало обогащать мои знания о том, что было охвачено в DLND.

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

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

Срок 1

1. Создайте игрового агента - используйте состязательный поиск с эвристическими оценками, чтобы создать агента для решения судоку и изолирования игры.
2. Реализуйте поиск по планированию - создайте систему логистики грузовых авиаперевозок с использованием эвристики графика планирования.
3. Разработайте систему распознавания жестового языка - используйте скрытые марковские модели для распознавания жестов на американском жестовом языке.

Если вы не заполнили DLND, Условие 2 AIND будет состоять из одного из следующих, с возможностью покупки дополнительных. Я заполнил DLND после регистрации, поэтому у меня есть доступ ко всем трем. *

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

* Это могло измениться, обязательно напишите в службу поддержки Udacity за разъяснениями.

Срок 2

1. Computer Vision Concentration - создайте систему определения ключевых точек лица с использованием глубокого обучения и OpenCV.
2. Концентрация обработки естественного языка - создайте модель машинного перевода для перевода с английского на французский. [Я сейчас здесь]
3. Система распознавания речи - создайте систему распознавания речи.

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

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

5. Отправка проекта

Подача проекта для DLND и AIND очень похожа. Через класс Udacity вы можете отправить файлы проекта или ссылку на GitHub со своим кодом.

В течение 24 часов рецензент Udacity свяжется с вами и сообщит вашу оценку (сдать или нужно доработать). Однако это не обычный обзор. Рецензент часто оставляет несколько комментариев по всему вашему коду с отзывами или советами, чтобы узнать о нем больше.

Я не могу говорить о рецензентах достаточно высоко. Я всегда с нетерпением жду их мнения.

Для специализации deeplearning.ai все проекты и мини-викторины отмечаются автоматически. Это экономия времени, поскольку вы получаете немедленные результаты, однако вы упускаете совет, чтобы узнать больше и где можно улучшить.

6. Структура курса

Udacity использует комбинацию коротких лекций (обычно продолжительностью от 2 до 8 минут) с информативной графикой. Тест по программированию на Python в браузере обычно посвящен важной теме.

В конце каждой важной вехи в качестве дополнительной практики перед завершающим проектом может быть предложен проект разминки.

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

Структура специализации deeplearning.ai очень похожа на известный МООК Эндрю Нг по машинному обучению на Coursera. Видео продолжительностью менее 5 минут встречаются редко, в среднем около 10 минут. Я смотрел их в 1,5 раза быстрее.

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

В конце каждой серии лекций студенты должны пройти тест с несколькими вариантами ответов, не связанный с программированием. Каждая викторина имеет порог прохождения 80% (допускается несколько попыток).

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

После прохождения викторин доступны задания по программированию в виде блокнотов Jupyter. Для выполнения каждого задания по программированию требуется не менее 80%.

Если вы столкнетесь с проблемами по проектам или с любыми материалами класса, форумы - ваш друг.

7. Будущие варианты

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

Очевидный ответ - использовать то, что вы узнали.

Но как?

Сообщения в блогах.

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

Если вы поделитесь своим текстом с другими, это поможет им учиться.

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

Снимайте видео.

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

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

Говорить другим о том, что вы знаете, полезно в любой ситуации.

Поделитесь тем, что вы узнали.

Практикуйтесь на HackerRank или Kaggle.

HackerRank и Kaggle предоставляют множество ресурсов для практики освоенных вами навыков (а также помогают освоить новые).

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

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

Постройте что-нибудь

Есть идея? Используйте приобретенные навыки, чтобы воплотить это в жизнь. Отправьте его другим, они тоже могут найти в этом пользу. Если это не удается, поделитесь с другими тем, что вы узнали в процессе. Если все получится, поздравляем!

Все это сводится к одному.

Быть учителем

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

Примечание. Я все еще работаю над этим!

8. Другие учебные ресурсы

Пространство онлайн-обучения ИИ стремительно развивается. Информации так много, что трудно понять, на что обращать внимание.

В моем случае после того, как я закончу AIND, я перейду на fast.ai.

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

Что касается ИИ, я настоятельно рекомендую следующие ресурсы. *

* Если у вас есть другие, я буду рад добавить их сюда.

Окончательный вердикт

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

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

Что бы вы ни решили делать, помните, что чему-то научиться по определению сложно.

Когда станет трудно, подумайте, с чего вы начали.

ОБНОВЛЕНИЕ (29 марта 2018 г.): С момента написания этой статьи Udacity пересмотрели свою учебную программу по искусственному интеллекту. Многие из конкретных деталей здесь (цены / материалы курса) могут не полностью применяться, но принципы обучения и дальнейшие действия остаются в силе.

А пока загляните в Школу искусственного интеллекта Udacity.

Смотрите: YouTube

Ежедневные статьи: www.mrdbourke.com

Подключиться: LinkedIn