Каждый раз, когда я задумываюсь о новом занятии, я ищу отзывы. С Self-Driving Cars Nanodegree у меня не было такой возможности: программа только что была анонсирована, и количество заявок росло так быстро, что мне пришлось немедленно подать заявку, чтобы иметь шанс одним из первых сделать это. Это. Теперь, когда завершился семестр 1, я хочу поделиться своим опытом.

Перво-наперво. Стоило ли это денег и времени, потраченного на это? Ответ: ДА. Это было сложно, захватывающе и многому меня научило.

Вот как организован курс:

Первый семестр включает 17 уроков и 5 проектов. Каждый урок состоит из 20–40 видеороликов по 2–10 минут и некоторого количества упражнений. Единственное требование - завершить все проекты до окончания Срока. У каждого проекта есть рекомендуемый срок, чтобы вы могли лучше оценить свой прогресс. По завершении проекта вы готовите рецензию, в которой резюмируете свои результаты, и отправляете ее рецензенту. Рецензент проверяет, соответствует ли ваша заявка критериям, и отправляет вам результат вместе с комментариями и предложениями по улучшению. Количество попыток не ограничено.

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

Далее начинается настоящее обучение. Первый шаг - Глубокое обучение. Вы начинаете с создания собственной нейронной сети с нуля на простом Python в качестве упражнения, затем переходите к принципам сверточных нейронных сетей (CNN) и заканчиваете обзором современных архитектур, таких как VGG и GoogLeNet. В качестве вашего первого проекта глубокого обучения вы создаете классификатор дорожных знаков. Вам предоставляется большой набор данных изображений дорожных знаков, и вы используете Tensorflow для создания, обучения и настройки своей CNN. В качестве заключительного теста вы сделаете несколько снимков дорожных знаков в вашем районе и убедитесь, что ваш CNN может их классифицировать.

Второй проект выводит вещи на новый уровень: у вас больше нет готового набора данных. Вместо этого у вас есть симулятор автомобиля, который позволяет записывать данные во время вождения. Ваша цель - построить нейронную сеть для прогнозирования угла поворота. Круг за кругом вы узнаете, насколько несбалансированными могут быть реальные данные и как их дополнить, чтобы получить более представительный набор данных. Для тестирования вы переводите симулятор в автономный режим и подключаете его к своей сети. Это еще один ценный урок: даже если ваша метрика ошибок показывает, что у вас все хорошо, во время теста на симуляторе ваша машина может съехать с дороги и утонуть в озере. Да, бывает. Я получил сеть на основе LeNet, однако я знаю людей, которые использовали трансферное обучение для адаптации VGG для этой цели.

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

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

Итак, вернемся на землю. Udacity советует зарезервировать для этого курса около 10 часов в неделю. Думаю, эта оценка верна, но относиться к ней следует как к средней температуре тела в больнице. Если вы действительно хорошо разбираетесь во всех предпосылках, вы можете сделать в два раза больше за то же время. Если нет - все зависит от того, насколько быстро вы научитесь. У меня были некоторые базовые теоретические знания о машинном обучении, я чувствовал себя комфортно с синтаксисом Python (более или менее), и я прошел курс ИИ для робототехники, который будет очень полезен в следующем семестре, но был абсолютно бесполезен для этого. Я работаю полный рабочий день, поэтому смотрел лекции по утрам в будние дни и работал над проектами по выходным. Я думаю, что в среднем тратил около 15 часов в неделю. Хорошо, что у меня еще оставалось время на спорт и отдых, поэтому нет ничего невозможного.

Кстати о железе. Udacity предоставляет 50 долларов на Amazon AWS, чтобы вы могли попробовать свой код на графическом процессоре. Однако важно понимать, что если вы используете эту опцию для всего процесса (включая кодирование и отладку), вы, скорее всего, в конечном итоге потратите значительно больше денег только на один проект. Лично я запускал все на своем ноутбуке без графического процессора, и все было нормально.

Вот и все. Честно говоря, я даже не осознавал, сколько мы узнали за эти 12 недель, прежде чем я написал этот обзор. Надеюсь, мое мнение оказалось для вас полезным.

Спасибо за чтение!