Обзор Udacity Artificial Intelligence Engineer Nanodegree, семестр 2

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

Время ожидания 1

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

Я также спросил их поддержки по поводу противоположной ситуации - можно ли сделать более длительный перерыв между семестрами и начать позже с другой когортой. Ответ был «да» и без штрафных санкций. Так что, если вы не можете заполнить оба условия подряд, это не должно быть проблемой.

Срок 2. Глубокое обучение и приложения

Состав

Термин 2 состоит из 2 частей:

  • Глубокое обучение и приложения, где вы узнаете больше о CNN, RNN и GAN.
  • Сосредоточенная часть, в которой вы глубже погружаетесь в наиболее интересную для вас область. Вы выбираете между компьютерным зрением, обработкой естественного языка и голосовым пользовательским интерфейсом. На сегодняшний день вы можете сделать только одну концентрацию, что очень жаль, поскольку с моей точки зрения, по крайней мере, две концентрации абсолютно выполнимы.

Сверточные нейронные сети

Первая часть применения методов глубокого обучения касается сверточных нейронных сетей. Раздел очень хорошо структурирован, вы получите подробное объяснение, решение викторин и небольшой проект во время уроков. Качество материала однозначно выше, чем у Deep Learning Foundation Nanodegree. Последний проект - детектор породы собак, в котором вы используете методику трансферного обучения для достижения разумных результатов.

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

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

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

Рекуррентные нейронные сети и LSTM

Второй раздел был о рекуррентных нейронных сетях (vanilla и LSTM) и их приложениях. Структура похожа на раздел CNN с пояснениями, ссылками, небольшими викторинами и проектами.

Я должен сказать, что с точки зрения качества объяснения это лучший раздел всего курса, и его невозможно сделать лучше. Перед тем, как я начал, у меня были некоторые проблемы с пониманием концепций, а также архитектура LSTM была не на 100% ясна для меня. После того, как я закончил, я бы сказал, я очень хорошо уловил идею. Джереми Ватт действительно хорош в объяснении сложных вещей простым способом.

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

Генеративные состязательные сети

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

К сожалению, все материалы я изучил уже в Deep Learning Foundation Nanodegree. Я был разочарован, так как ожидал, что получу что-то новое за деньги, а не то, что я уже выучил. В любом случае, я освежил свои знания и пошел на концентрацию.

Время ожидания 2 и концентрация

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

Выбор концентрации

Вы погружаетесь глубже, решая задачи «Компьютерное зрение», «Обработка естественного языка» или «Голосовой интерфейс пользователя». Все три концентрации представлены вам наставником Udacity и человеком из компании (инженером или генеральным директором в случае Affectiva), который помогает подготовить раздел.

Концентрация компьютерного зрения производится в сотрудничестве с Affectiva и стартовый проект посвящен использованию их SDK для распознавания эмоций. Концентрация обработки естественного языка (NLP) производится в сотрудничестве с IBM и стартовый проект посвящен использованию IBM Watson для решения задач NLP. Концентрация голосового пользовательского интерфейса осуществляется в сотрудничестве с Amazon, и стартовый проект предполагает использование Alexa Skill-Set для создания собственного голосового интерфейса. Все стартовые проекты в основном для развлечения и не оцениваются.

Изначально я хотел использовать компьютерное зрение, но после просмотра вступлений передумал и выбрал голосовой интерфейс пользователя. Причиной тому была лучшая презентация (с моей точки зрения) из всех трех, и я прочитал на форуме Udacity, что проект Capstone является наиболее требовательным.

Концентрация голосового интерфейса пользователя

Вначале вы разрабатываете голосовой интерфейс с помощью Amazon Alexa. Amazon Alexa умеет распознавать речь, понимать ее и соответствующим образом реагировать. В ходе проекта вы создаете модель голосового взаимодействия с вашим собственным навыком, которая работает в Amazon Alexa, и создаете функцию AWS Lambda для обработки запросов. Собственно, вы научитесь использовать экосистему Amazon для решения задачи распознавания речи и ее понимания. Проект не о глубоком обучении, а об использовании подготовленных строительных блоков. Во всяком случае, это было довольно интересно и не очень просто.

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

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

Заключение

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

Udacity очень хорошо готовит вас к тому, чтобы стать практиком, но я не ожидал, что у вас будет шанс перейти в чисто исследовательскую область, завершив курс. Я настоятельно рекомендую сначала пройти курс Deep Learning Foundation - это очень помогает во время обучения инженеру по искусственному интеллекту Nanodegree, если вы новичок в этой области. С другой стороны, мне потребовалось всего 4 месяца по 10–15 часов в неделю, чтобы закончить курс, вместо 6 месяцев, как рекламировалось.

Я все еще не уверен насчет инвестиций - два Nanodegrees стоят 2000 долларов США. Но, по крайней мере, в прошлом году я узнал много нового и надеюсь, что это поможет мне либо на моем нынешнем карьерном пути, либо перейти в новую область. В любом случае, я понял, что методы глубокого обучения необходимы и чистому инженеру-программисту для решения возникающих проблем :-)

Вы можете найти все проекты на моем GitHub - они начинаются с aind- для Term 1 и aind2- для Term 2.