Обзор курса Эндрю Нг по сверточной нейронной сети

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

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

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

На второй неделе рассматриваются несколько классических CNN и объясняется, как была построена архитектура, путем добавления новых концепций поверх ранее существовавших. Затем продолжается объяснение ResNets (концепция, которая может применяться к другим сетям, а не только CNN), а затем развиваться в направлении Inception Networks (да, Inception, как в фильме).

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

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

В целом, это хороший курс. На пути есть некоторые глюки. Некоторые из видео не так отшлифованы, как могли бы, например, некоторые «ляпы» нужно удалить, а несколько ошибок, которые нужно исправить на слайдах, но очень незначительные. Больше всего меня беспокоят задания по программированию. Во-первых, они не самодостаточны. Они с самого начала ссылаются на введение в Tensorflow, сделанное на 3-й неделе второго курса нано-степени: «Улучшение глубоких нейронных сетей». Это немного неловко, когда вы не используете Tensorflow изо дня в день (обычно меня устраивает Керас) и между курсами есть 2–3 месяца ...

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

Наконец, неудобны ядра jupyter, используемые на сайте. Доступность сервера временами кажется отрывочной. Вы часто теряете свою работу, даже если сохранили ее (вы должны регулярно сохранять / экспортировать на локальный компьютер, чтобы решить эти проблемы). Короче говоря, до ядра Kaggle еще далеко. О тех же проблемах сообщил мой коллега, прошедший другой курс Coursera, так что это не уникальное явление для курса CNN. Кроме того, поскольку доступ к Coursera теперь основан на подписке, вы потеряете доступ к своим ядрам, если не продлите подписку после курса. Следовательно, если вы не хотите потерять свою работу (поскольку она является такой же справочной, как и сами видео курса), вам придется хранить ее локально на своем компьютере или в предпочтительном облачном хранилище.

При всем при этом, это отличный курс, и он научил меня многому, чего я раньше не знал, так что в целом 4/5! Но будьте готовы к глюкам, особенно в заданиях по программированию. Мне особенно понравилось одноразовое обучение, которое я собираюсь применить к одной из моих задач глубокой нейронной сети на работе (не связанной с CNN) и передаче нейронного стиля. В этом последнем упражнении по программированию вы завершаете код алгоритма передачи нейронного стиля. С небольшим толчком моего хорошего друга Marc-Olivier я пошел немного дальше и реализовал алгоритм передачи нескольких стилей. Вот и мои младшие ребята с разным уровнем стилевого переноса из Эдварда Мунка, Пабло Пикассо, Винсента Ван Гога и Жоржа Брака.

Информация на этом сайте принадлежит мне и не обязательно отражает позицию, стратегию или мнение Эрикссон.