Тензоры

1. Определение

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

  • Ранг (порядок) тензора — количество его индексов:
    • Ранг 0: скаляр, например $a = 5$
    • Ранг 1: вектор, например $\mathbf{v} = [v_1, v_2, v_3]$
    • Ранг 2: матрица, например $M = \begin{bmatrix}1 & 2\3 & 4\end{bmatrix}$
    • Ранг 3 и выше: многомерные массивы, например $T_{ijk}$
  • Размерность тензора — количество значений, которое может принимать каждый индекс.

2. Нотация

  • Тензор записывается с индексами: $T_{ijk}$ означает тензор 3-го ранга.
  • Индексы показывают, сколько измерений у тензора:
    • $i = 1..n$, $j = 1..m$, $k = 1..p$
  • В линейной алгебре часто используют нижние ($T_i$) и верхние ($T^i$) индексы, что связано с ковариантностью и контравариантностью, но для первых шагов можно их игнорировать.

3. Основные операции

  1. Сложение и вычитание
    • Можно складывать и вычитать только тензоры одинакового ранга и размерностей:
\[ A_{ij} + B_{ij} = C_{ij} \]

Пример:

\[ A = \begin{bmatrix}1 & 2\\3 & 4\end{bmatrix},\quad B = \begin{bmatrix}5 & 6\\7 & 8\end{bmatrix},\quad A+B = \begin{bmatrix}6 & 8\\10 & 12\end{bmatrix} \]
  1. Умножение на скаляр
    • Любое число умножается на каждый компонент тензора:
\[ \lambda \cdot T_{ij} = (\lambda T)_{ij} \]
  1. Перестановка индексов (транспонирование)
\[ T_{ijk} \to T_{kji} \]
  1. Свертка (contraction)
    • Суммирование по паре индексов, аналогично следу матрицы:
\[ \text{Tr}(A) = \sum_i A_{ii} \]
  • В общем виде для тензора:
\[ S_{i_1 \dots i_{r-2}} = \sum_k T_{i_1 \dots i_{r-2} kk} \]
  1. Умножение тензоров
    • Существует несколько видов умножения: поэлементное, внешнее (outer product), свертка (contraction).
\[ (A \otimes B)_{ijkl} = A_{ij} B_{kl} \]

4. Связь с линейной алгеброй

  • Вектор = тензор 1-го ранга: $\mathbf{v} = v_i$
  • Матрица = тензор 2-го ранга: $A = A_{ij}$
  • Тензоры более высоких рангов = многомерные обобщения матриц
  • Любая линейная комбинация компонентов тензора является линейной операцией:
\[ C_{i_1\dots i_r} = \sum_\alpha \lambda_\alpha T^{(\alpha)}_{i_1\dots i_r} \]

5. Примеры из физики и практики

  • Физика:
    • Тензор инерции: $I_{ij}$
    • Тензор напряжений: $\sigma_{ij}$
    • Тензор кривизны: $R_{ijkl}$
  • Компьютерные науки:
    • Массивы в NumPy, PyTorch, TensorFlow — это тензоры
  • Машинное обучение:
    • Входные данные, веса, промежуточные активации нейросетей — всё тензоры

6. Ключевые моменты для понимания

  • Тензор — это обобщение скаляра, вектора и матрицы
  • Ранг = количество индексов
  • Размерность = количество значений на индекс
  • Тензоры можно складывать, умножать на скаляры, менять индексы, сворачивать
  • Используются в математике, физике и компьютерных науках