fbpx
  • TensorFlow туториал. Часть 1: тензоры и векторы

    Tensorflow tutorial

    TensorFlow — это ML-framework от Google, который предназначен для проектирования, создания и изучения моделей глубокого обучения. Глубокое обучение — это область машинного обучения, алгоритмы в которой были вдохновлены структурой и работой мозга. Вы можете использовать TensorFlow, чтобы производить численные вычисления. Само по себе это не кажется специфичным, однако эти вычисления производятся с помощью data-flow графов. В этих графах, вершины представляют собой математические операции, в то время как ребра представляют собой данные, которые обычно представляются в виде многомерных массивов или тензоров, которые сообщаются между этими ребрами.

    Поняли? Название TensorFlow происходит из вычислений, которые нейросеть производит с многомерными данными и тензорами! Буквально — поток тензоров. На данный момент это все, что нужно знать о тензорах, но мы вернемся к ним чуть позже.

    TensorFlow tutorial познакомит вас с глубоким обучением в интерактивной форме:

    • Сначала вы узнаете больше о тензорах
    • Затем, туторил плавно расскажет о там, как установить TensorFlow
    • Далее вы узнаете об основах Tesorflow: как произвести свои первые простейшие вычисления
    • Следующий этап — настоящая задача на реальных данных: данные по Бельгийскому дорожным знаком и обработка с помощью статистики
    • Научитесь размечать данные таким образом, чтобы “скормить” эти данные нейросети.
    • И, наконец, разработаете свою модель нейронной сети — слой за слоем.
    • Как только архитектура будет готова, вы сможете тренировать сеть интерактивно, а также производить оценку эффективности, использую тестовую выборку.
    • Последнее, вы получите указания, как можно улучшить свою модель и как можно дальше работать с TensorFlow.

    Полная версия статьи на английском языке здесь.

    Введение в тензоры

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

    Плоские векторы

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

    Пример скаляра — “5 метров” или “60 м/с”, тогда как вектор — “5 метров на север” или “60 м/с на восток”.

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

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

    tensorflow туториал - тензоры и векторы

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

    Так что же с плоскими векторами?

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

    Чтобы понять, что это значит, рассмотрим пример: пусть есть вектор 2 X 1. Это означает, что вектор принадлежит множеству действительных чисел, которые объединены в пары. Или, иначе говоря, элемент двумерного пространства. В таких случаях, вы можете задавать вектор на координатной плоскости, как стрелки или лучи.

    Работая на координатной плоскости, вы можете узнать х координату конца луча с началом в (0, 0), посмотрев на первую строчку вектора, а у координату — на вторую.

    Замечание: если вы рассматриваете вектор размера 3 X 1, то вы работаете трехмерном пространстве. Здесь вы можете представить вектор, как стрелку в трехмерном пространстве, которое обычно задается тремя осями х, у и z.

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

    Единичные векторы — векторы длины 1. Двумерные или трехмерные вектора хорошо раскладываются в сумму ортогональных единичных векторов, таких как оси координат.

    Тензоры

    Плоский вектор — это частный случай тензора. Помните, вектор определялся в прошлом разделе как скаляр, которому задали направление. Тензор же — это математическое представление физической сущности, которая может быть задана величиной и несколькими направлениями.

    И так же как вы представляли скаляр одним числом, а трехмерный вектор как тройку чисел, тензор представляется в виде массива 3R чисел в трехмерном пространстве.

    R в этой записи отвечает за ранг тензора: в трехмерном пространстве тензор ранга 2 может быть представлен девятью числами. В N-мерном скаляр требует только одного числа, векторы требуют N чисел, а тензоры требуют N^R чисел. Этим объясняется, почему скаляры часто называют тензорами размера 0: у них нет направления, и они могут быть представлены только одним числом.

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

    Можно достаточно легко различать векторы, скаляры и тензоры: скаляры представляются одним числом, векторы — последовательностью чисел, тензоры — массивом чисел.

    Что делает тензоры такими особенными, так это комбинация компонентов и базисных векторов: все операция производится над тензорами сохраняют отношения между базисными векторами и компонентами такими же.

    В следующей частиустановка TensorFlow и первые шаги.


    Интересные статьи: