Мое впечатление о курсе Tensorflow в Стэнфорде: недели 1–3

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

Неделя 1: Обзор Tensorflow

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

Я бы рекомендовал сначала кратко просмотреть конспекты лекций, а затем перейти к слайдам. Последнее даст вам беглое начало вашего понимания TF.

Неделя 2: операции Tensorflow + примеры

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

№1. TF операции

По конспектам лекций:

  1. Вы получите хорошее представление о Tensorboard - наборе инструментов, предоставляемых TF, используемых для визуализации вашего графика (есть 2 шага при построении модели в TF - формирование вашего графика и последующее выполнение с использованием определенных данных).
  2. Затем акцент смещается на различные способы создания константы. Например, можно легко сделать матрицу (n, m) заполненной нулями. (tf.zeros ([n, m], tf.int32)). Конечно, вы можете сделать гораздо больше.
  3. После этого все математические операции, такие как сложение, 5+ различных делений, скалярное произведение и т. Д., Прекрасно объясняются.
  4. Все мы знаем, что есть определенные типы чисел, например, натуральные числа и т. Д. В программировании их еще больше, и, конечно же, команда TF хотела охватить их все. Так вы увидите, что это такое и как их использовать.
  5. Далее вы познакомитесь с переменными TF. Они отличаются от констант с точки зрения использования. Переменные используются для хранения значений, которые можно обновлять по ходу - например, весов и смещений нейронной сети.
  6. Наконец, вы можете увидеть, как использовать tf.Session (), который запускает график с использованием ваших импортированных данных.

№2. Линейная регрессия и логистическая регрессия для MNIST

Вторая лекция этой недели посвящена нескольким примерам.

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

Второй пример охватывает логистическую регрессию для набора данных MNIST (содержит более 30 тыс. Примеров рукописных изображений).

Линейная и логистическая регрессия кажутся знакомыми, но это совершенно разные алгоритмы. Вот разница:

Неделя 3: Продвинутые техники TF

Эта неделя снова разделена на 2 лекции. Первый касается нетерпеливого выполнения (см. Ниже), а второй полностью посвящен модели word2vec и некоторым продвинутым методам, которые с ней связаны.

№1. Нетерпеливое исполнение

Как вы уже знаете, построение моделей в TF состоит из двух этапов - формирования графа и его выполнения с помощью tf.Session (). Этот (декларативный) подход имеет множество преимуществ, но также имеет некоторые недостатки. Главный из них - сложность отладки. Вот тут-то и приходит на помощь нетерпеливое исполнение. Недавно над ним начала работать команда TF, которая предлагает обязательное выполнение всех операций. Это означает, что вы сможете увидеть результаты своей модели во время выполнения - не так ли здорово ^^.

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

№2. Word2vec

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

Word2vec можно использовать с двумя моделями - skip-gram и CBOW. Цитата из лекции:

Алгоритмически эти модели похожи, за исключением того, что CBOW предсказывает центральные слова из контекстных слов, в то время как скип-грамма делает обратное и предсказывает исходные контекстные слова из центральных слов. Например, если у нас есть предложение: «Быстрая коричневая лиса прыгает», то CBOW пытается предсказать «коричневый» на основе «», «быстро», «лиса» и « «Прыгает» », в то время как скип-грамма пытается предугадать« прыгает »,« быстро »,« лисица »и« прыгает »» от «коричневого».

В лекции дается объяснение модели скип-грамм, тогда как модель CBOW оставлена ​​для домашнего задания. Решение этой проблемы я дам в следующей статье.

Если вы хотите лучше понять модель word2vec, я бы порекомендовал кратко пройти Стэнфордский курс НЛП. Дайте мне знать, если у вас возникнут какие-либо вопросы, и я смогу вам помочь.

В следующей части я дам решения Задания 1 этого курса. Надеюсь, вам понравится сериал :)

Спасибо за чтение. Если вам понравилась статья, хлопните в ладоши 👏. Надеюсь у тебя будет отличный день!