Тензоры

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} \]
  2. Умножение на скаляр
    • Любое число умножается на каждый компонент тензора:
    \[ \lambda \cdot T_{ij} = (\lambda T)_{ij} \]
  3. Перестановка индексов (транспонирование)

    \[ T_{ijk} \to T_{kji} \]
  4. Свертка (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} \]
  5. Умножение тензоров
    • Существует несколько видов умножения: поэлементное, внешнее (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. Ключевые моменты для понимания

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