Открыть сервис

Tensor — математическое понятие и библиотека

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

Тензор в математике и физике

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

История развития тензорного исчисления

Основы тензорного анализа заложены в XIX веке. Немецкий математик Бернхард Риман в 1854 году ввёл понятие метрического тензора, описывающего геометрию искривлённых пространств. Итальянский математик Грегорио Риччи-Курбастро и его ученик Туллио Леви-Чивита в 1880–1890-х годах разработали систематическое тензорное исчисление — так называемое абсолютное дифференциальное исчисление.

Решающий вклад в популяризацию тензоров внёс Альберт Эйнштейн, использовавший их в общей теории относительности (1915). Уравнения гравитационного поля записываются через тензор энергии-импульса и тензор кривизны Риччи. В 1901 году Риччи и Леви-Чивита опубликовали фундаментальную работу «Методы абсолютного дифференциального исчисления и их приложения», которая стала стандартным справочником для физиков.

Основные виды тензоров

По рангу (валентности) различают:

  • тензор ранга 0 — скаляр (одно число);
  • тензор ранга 1 — вектор или ковектор (набор чисел с одним индексом);
  • тензор ранга 2 — матрица или билинейная форма (два индекса);
  • тензор ранга 3 и выше — многомерные массивы.

По типу индексов тензоры делятся на контравариантные (верхние индексы), ковариантные (нижние) и смешанные. Операции над тензорами включают свёртку (суммирование по повторяющимся индексам), тензорное произведение, симметрирование и альтернирование.

Применение в физике

В физике тензоры используются повсеместно:

Тензор в программировании и машинном обучении

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

Архитектура тензорных вычислений

Современные фреймворки машинного обучения (TensorFlow, PyTorch, JAX) оперируют тензорами как базовыми объектами. Тензор характеризуется формой (shape) — кортежем размерностей по каждой оси, типом данных (float32, int64 и др.) и устройством размещения (CPU, GPU, TPU). Операции над тензорами автоматически дифференцируются, что позволяет обучать нейронные сети методом обратного распространения ошибки.

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

Тензорные процессоры

Для ускорения тензорных операций разработаны специализированные аппаратные решения. Компания Google в 2016 году представила тензорный процессор (TPU) — ASIC-микросхему, оптимизированную для умножения матриц и свёрток. В 2020 году NVIDIA ввела тензорные ядра в архитектуру Ampere, а затем и в последующие поколения графических процессоров. Тензорные ядра выполняют операцию fused multiply-add над матрицами 4×4 за один такт.

Применение в нейросетях

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

  • входные данные (изображения — трёхмерные тензоры: высота, ширина, каналы);
  • веса слоёв (матрицы и многомерные массивы);
  • промежуточные активации;
  • градиенты при обучении.

Свёрточные нейронные сети обрабатывают тензоры с помощью операций свёртки, пулинга и нормализации. Трансформеры оперируют тензорами внимания размерности (batch, sequence, features). Разреженные тензоры (с большим числом нулевых элементов) применяются в графовых нейросетях и рекомендательных системах.

Тензорное разложение

Отдельная область — разложение тензоров на более простые компоненты (CANDECOMP/PARAFAC, Tucker-разложение, тензорный поезд). Эти методы используются для сжатия данных, извлечения скрытых факторов и понижения размерности. Тензорные разложения находят применение в обработке сигналов, хемометрике и анализе социальных сетей.

Тензорное исчисление в механике

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

Критика и ограничения

Математические тензоры требуют аккуратного обращения с индексами и правил преобразования, что создаёт порог входа для изучения. Программные тензоры при больших размерностях потребляют значительный объём памяти: например, тензор формы (1000, 1000, 1000) типа float32 занимает 4 гигабайта. Это ограничение стимулирует развитие методов смешанной точности, квантования и распределённого обучения.

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

Источники

  • Димитриенко Ю. И. Тензорное исчисление. — М.: Высшая школа, 2001.
  • Кострикин А. И., Манин Ю. И. Линейная алгебра и геометрия. — М.: Наука, 1986.
  • Гудфеллоу Я., Бенджио И., Курвилль А. Глубокое обучение. — М.: ДМК Пресс, 2017.
  • Kolda T. G., Bader B. W. Tensor Decompositions and Applications // SIAM Review, 2009.
  • TensorFlow Documentation: Tensor — Core API.
Загружаем BFOmetr…