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

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

  • Контент
  • Инструкторы
  • Длина
  • Сложность
  • Важные выводы (после завершения курса)

Содержание

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

Курс начинается со слов «посмотрите на все крутые вещи, которые мы можем делать с помощью Deep Learning», где мы учимся запускать чужой код, чтобы увидеть, каковы их проекты:

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

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

Несколько раз вы будете что-то вычислять вручную, но это алгебра 5-го класса.

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

Обзор нейронных сетей

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

Ну наконец то! Я узнаю значения некоторых из этих вещей ...

Этого точно не произошло. Скорее, они использовали три разных словарных термина, чтобы описать, что такое нейрон в нейронной сети.

  • Для записи, узел - это функция. Вы передаете функциям ввод и получаете вывод. Вы можете дополнить этот ввод любым удобным для вас способом. Аналогично с выводом
  • Ввод обычно представляет собой число, умноженное на десятичное число. Десятичное число - это вес, ввод - это ввод.
  • Выходные данные являются результатом функции узла, которая представляет собой просто математическую операцию: f (x) = x². х = 1,2. вес x = 0,2. f (x * вес) = 0,24²

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

Это было неприятно, но в конце концов я справился.

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

Следующими были Си-Эн-Эн, мой любимый сегмент курса. (Это произошло после того, как мы «реализовали» наш собственный TensorFlow, и инструкторы курса махали рукой по большей части нашей «реализации»)

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

Урок Сираджа можно полностью пропустить, так как он подходит только для ссылок на ресурсы.

Этот раздел также включает в себя учебник по TensorFlow и использованию Deep Learning Cloud, таких как экземпляры GPU AWS, FloydHub и другие.

Раздел облака был бесценен, потому что вам придется использовать эти экземпляры, если вы надеетесь иметь шанс завершить более поздние проекты.

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

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

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

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

Рекуррентные нейронные сети (RNN)

Надуманный. Свернутый (не свернутый, как CNN; P). Раздражающий.

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

Смотреть. Он прекрасный парень и предлагает много прекрасного контента на своем канале YouTube. Выполните поиск по запросу «Глубокое обучение Сираджа», и вы получите автономную серию, полную необязательных испытаний, которые вознаградят вас, если вы их выполните.
Но подборки видео, которые были частью этого курса, были просто неудобными.

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

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

К чести Udacity, они подчеркивают важность низкоуровневых реализаций с помощью встраиваний и Word2Vec. Это все еще зависит от принципа «вы должны реализовать эти абстракции по-нашему», что заставило меня ругать моего монитора и авторов этого курса.

В целом, насколько мне известно, блок RNN был наименее дополнительным. Преподаватели говорили так, как будто этот материал был для них столь же чужд, как и для нас, студентов. Контент будет подчеркивать одну часть реализации (встраивание, word2vec, создание повторяющейся ячейки и т. Д.), А остальные будут выполнены за вас. Хуже того, никогда не объясняется, почему повторяющаяся ячейка называется таковой. Когда-либо. Если вы хотите знать, вам нужно использовать свои возможности Google и открыть его. Это лучше спрятать, чем вы думаете.

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

Затем бегайте полчаса.

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

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

GAN действительно крутые, но инструкторы не могли сформулировать техническое «почему», только «это действительно круто, потому что они позволяют нам создавать новые вещи!»

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

Картинки говорят громче слов:

Автоэнкодеры очень круты, но технически бесполезны. Некоторые архитектуры CNN, а также сети GAN устарели.

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

Код I будет исходить от Мэта - ведущего инструктора Udacity по этому курсу - почти дословно, но идеи связать все будет лучше всего Сираджем в его прямом эфире Q&A и ресурсах, найденных в его видеоресурсах.

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

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

Ретроспективно

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

Все началось так хорошо, как могло бы быть, и только пошло под откос.

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

Инструкторы

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

Mat, главный редактор словаря - D

Винсент Ванхаук, главный научный сотрудник, Google Brain - B

  • Он познакомил нас с TensorFlow (TF), и его раздел был достаточно сложным. Нам пришлось изучить документацию TF, чтобы наилучшим образом решить некоторые из его викторин, но мы были предоставлены нашим собственным устройствам.

Ян Гудфеллоу, штатный научный сотрудник, Google Brain - A

  • Он изобрел GAN. Йошуа помог ему отточить идею.
  • Он хорошо обучил содержанию, а почему бы и нет ??? Он сделал вещь. Если кто-то должен уметь преподавать предмет лучше всего, так это его отец.

Сирадж, уровни высокой энергии, поющий «ученый» - C

  • Он был совершенно посредственным. Его видео с автокодировщиком Q&A было очень информативным.
  • Его стиль преподавания, основанный на песнях, был для меня слишком юным. Его типичные видеоролики на YouTube короткие, всегда содержат песню (что мне неприятно) и представляют собой дополнительные обзоры форумов поверх общего обзора этого курса.
  • Прямые трансляции были намного лучше, чем его типичное видео, и показали, как он решил инкапсулировать такие вещи, как слои, веса и смещения в наших сетевых узлах.
  • Его содержание для раздела RNN было совершенно бесполезным; больше всего «дурацкого» и весёлого и «оооо». Блестящий ».

Длина и сложность

Я свел эти два вместе, потому что они влияют друг на друга.

Во-первых, весь этот нано-градус можно с комфортом выполнить в течение месяца. Если у вас есть 10 часов в неделю, вы будете ближе к полутора месяцу. Сделайте выходные максимально комфортными и сделайте свой вечер комфортным, это будет несложно.

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

Udacity рекомендует использовать сообщество Slack, когда содержание курса становится затруднительным. Я думал, что это будет эффективно, но как только я отстал (мой отпуск без ноутбука), я почти не смог наверстать упущенное.

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

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

Я помню пятницу, когда работал дома. У нас был очень скучный звонок, и я успешно обучил сверхточную модель на 10 классах изображений. Я почувствовал прилив радости и облегчения. «Я могу стать исследователем. Эти модели имеют смысл. Я могу думать в TensorFlow », - подумал я. Это был приятный опыт.

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

Я закончил собственно содержание GAN примерно за три дня. Я потратил намного больше времени (~ 10 дней) на историю и теорию автоэнкодеров, чем нужно, только для того, чтобы узнать об их устаревании в вопросах и ответах Сираджа.

Было ощущение, что курс был полон отвлекающих факторов - отвлекающих факторов, которые были бы забавными, если бы я:

  1. Не отставал от графика для успешного завершения, и
  2. Было такое чувство, что я лаял на каждое дерево в лесу глубокого обучения.

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

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

Тем не менее, я пришел, увидел, победил.

Пришел увидел победил

Важные выводы

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

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

Я пробовал блюдо пупу

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

  • Регрессия и классификация с глубокими полностью подключенными сетями
  • Обработка естественного языка с помощью долговременной краткосрочной памяти, рекуррентных нейронных сетей и моделирования внимания
  • Понимание изображений, обнаружение объектов и субтитры с помощью сверточных нейронных сетей
  • Создание романов (изображений и прочего) с Генеративными Моделями.
  • Теоретическая концепция глубокого обучения с подкреплением (и почему это так впечатляет)

Я могу погрузиться в выбранную мной вертикаль

С их Нанодегидом инженера по искусственному интеллекту Udacity предлагает вам традиционный путь к ИИ. Так сказать хлеб с маслом Питера Норвига:

  • Найти путь
  • Ограничения и поисковая оптимизация
  • Оптимизация алгоритмической сложности

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

Я могу пропустить этот шаг.

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

Просто я работаю над любимыми вещами, руководствуясь собственными амбициями.

Заключить

Я рекомендую эту программу тем, кто любит подход к информатике «сначала сделай, а потом учи математику». Я также рекомендую его тем, кто хочет погрузиться в код, но не хочет беспокоиться о том, что фреймворк делает для них (математика).

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

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

Я отговариваю людей, придерживающихся фундаментальных взглядов или ориентированных на фундаментальные знания, отказаться от достижения этой наностепени. Я получил степень для гарантированного приема в робототехнику или AI Nanodegree. Инструкция по основам дается даже в обзоре, и подчеркивает несущественное для направления, в котором идет этот курс. Но об этом мы уже говорили.

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

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

До тех пор.