Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция №11 29.11.pptx
Скачиваний:
12
Добавлен:
16.12.2023
Размер:
7.11 Mб
Скачать

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Представление данных

Тензор, содержащий единственное число, называется скаляром (скалярным тензором, или тензором нулевого ранга).

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

Пусть имеется вектор

x = (12, 3, 6, 14, 7).

Этот вектор содержит пять элементов и потому называется пятимерным вектором.

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

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Представление данных

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

Массив векторов — это матрица, или тензор второго ранга, или двумерный тензор. Матрица имеет две оси (часто их называют строками и столбцами).

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Представление данных

Тензор определяется тремя ключевыми атрибутами, такими как:

-количество осей (ранг) — например, трехмерный тензор имеет три оси, а матрица — две;

-форма — кортеж целых чисел, описывающих количество измерений на каждой оси тензора. Например, матрица в предыдущем примере имеет форму (3, 5), а тензор третьего ранга — (3, 3, 5). Вектор имеет форму с единственным элементом, например (5), тогда как у скаляра форма пустая — ();

-тип данных (обычно в библиотеках для Python ему дается имя dtype) — это тип данных, содержащихся в тензоре; например, тензор может иметь тип float16, float32, float64, uint8 и др.

Теперь мы знаем, что исходные данные, содержащие обучающие изображения, представлены трехмерным тензором с 8-разрядными целыми числами. Точнее, это массив с 60 000 матрицами целых чисел размером 28 × 28. Каждая матрица представляет собой черно-белое изображение, где каждый элемент — пиксель с плотностью серого цвета в диапазоне от 0 до 255.

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Представление данных. Примеры

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

векторные данные — двумерные тензоры с формой (образцы, признаки), где каждый образец — это вектор числовых атрибутов («признаков»);

временные ряды или последовательности — трехмерные тензоры с формой (образцы, метки_времени, признаки), где каждый образец является последовательностью (длиной метки_времени) векторов признаков;

изображения — четырехмерные тензоры с формой (образцы, высота, ширина, цвет), где каждый образец является двумерной матрицей пикселей, а каждый пиксель представлен вектором со значениями «цвета»;

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

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Временные рады или последовательности

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

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Видеоданные

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

Например, 60-секундный видеоклип с разрешением 144 × 256 и частотой четыре кадра в секунду будет состоять из 240 кадров. Для сохранения пакета из четырех таких клипов потребуется тензор с формой (4, 240, 144, 256, 3). То есть 106 168 320 значений! Если предположить, что dtype тензора определен как float32, тогда для хранения каждого значения понадобится 32 бита, а для всего тензора соответственно 405 Мбайт.

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Операции с тензорами

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

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

Возьмем для примера операцию сложения. Пусть имеется следующий вектор: A = [0.5, 1],

он определяет направление в двумерном пространстве. Добавим новый вектор B = [1, 0.25] и сложим его с предыдущим.

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Геометрическая интерпретация операций с тензорами

Чтобы получить результирующий вектор, представляющий сумму двух исходных векторов, достаточно перенести начало одного вектора в конец другого. Операция прибавления вектора B к вектору A заключается в переносе точки A в новое место, при этом расстояние и направление переноса от исходной точки A определяется вектором B. Если применить ту же операцию к группе точек на плоскости («объекту»), можно создать копию целого объекта в новом месте. То есть тензорное сложение представляет операцию параллельного переноса объекта (без его искажения) на определенное расстояние в определенном направлении.

Вектор в двумерном пространстве, изображенным

Геометрическая интерпретация суммы в

виде стрелки

в виде двух векторов

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Примеры операций с тензорами

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

Параллельный перенос: добавление вектора к точке переместит ее на фиксированное расстояние в фиксированном направлении; при применении к набору точек (например, к двумерному объекту) эта операция называется параллельным переносом.

Сложение векторов как параллельный перенос в двумерном пространстве

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Примеры операций с тензорами

Поворот: поворот двумерного вектора на угол α выражается как скалярное произведение с матрицей R = [u, v] размером 2 × 2.

Масштабирование: масштабирование изображения по вертикали и горизонтали (слайд) можно осуществить с помощью скалярного произведения с матрицей 2 × 2:

S = [[масштаб_по_горизонтали, 0], [0, масштаб_по_вертикали]]

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

Двумерное масштабирование как скалярное произведение

Соседние файлы в папке Лекции