Мое впечатление о курсе Tensorflow в Стэнфорде: недели 1–3
В моем предыдущем посте я дал краткое введение в эту новую серию постов, цель которых дать объяснение последнего Стэнфордского курса Tensorflow с января по февраль 2018 года. В этой части я расскажу о своих впечатлениях от первых трех. недель этого курса.
Неделя 1: Обзор Tensorflow
Эта неделя представляет собой лучшее объяснение Tensorflow, которое я когда-либо видел. Часто, когда кто-то получает мотивацию изучать машинное обучение, он может быстро разочароваться из-за сложности и двусмысленности исходной документации Tensorflow.
Я бы рекомендовал сначала кратко просмотреть конспекты лекций, а затем перейти к слайдам. Последнее даст вам беглое начало вашего понимания TF.
Неделя 2: операции Tensorflow + примеры
На этой неделе мы расскажем о возможностях Tensorflow. Сначала в курсе рассматриваются операции TF, такие как константы, суммирование, умножение и т. Д., А вторая лекция недели показывает, как реализовать линейную регрессию.
№1. TF операции
- Вы получите хорошее представление о Tensorboard - наборе инструментов, предоставляемых TF, используемых для визуализации вашего графика (есть 2 шага при построении модели в TF - формирование вашего графика и последующее выполнение с использованием определенных данных).
- Затем акцент смещается на различные способы создания константы. Например, можно легко сделать матрицу (n, m) заполненной нулями. (tf.zeros ([n, m], tf.int32)). Конечно, вы можете сделать гораздо больше.
- После этого все математические операции, такие как сложение, 5+ различных делений, скалярное произведение и т. Д., Прекрасно объясняются.
- Все мы знаем, что есть определенные типы чисел, например, натуральные числа и т. Д. В программировании их еще больше, и, конечно же, команда TF хотела охватить их все. Так вы увидите, что это такое и как их использовать.
- Далее вы познакомитесь с переменными TF. Они отличаются от констант с точки зрения использования. Переменные используются для хранения значений, которые можно обновлять по ходу - например, весов и смещений нейронной сети.
- Наконец, вы можете увидеть, как использовать 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 этого курса. Надеюсь, вам понравится сериал :)