Перейти к содержимому

Скалярное произведение и углы

Мы уже научились считать длину, но оказывается, для полного построения классической геометрии нужно ещё кое-что

Введём скалярное произведение

Аксиоматически это просто функция от двух векторов с вот такими свойствами:

  1. Билинейность
<λv+μu,w>=λ<v,w>+μ<u,w><v,λu+μw>=λ<v,u>+μ<v,w>\begin{aligned} <\lambda v + \mu u, w> = \lambda<v, w> + \mu<u, w> \\ <v, \lambda u + \mu w> = \lambda<v, u> + \mu<v, w> \end{aligned}
  1. Положительная определённость
<v,v>0<v,v>=0v=0\begin{aligned} <v, v> \geq 0 \\ <v, v> = 0 \Leftrightarrow v = 0 \end{aligned}
  1. Симметричность

<v,u>=<u,v><v, u> = <u, v>

Тут та же ситуация, что была с векторный пространством и нормой

Любаяфункция, которая удовлетворяет этим свойствам называется скалярным произведением

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

Потому что <a,b>=abcosα<a, b> = ||a||*||b||*cos\alpha

Но самое интересное, что на самом деле, в самом векторном пространстве ничего про углы не сказано

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

Но просто при работе с векторами углы сами не появляются

Твист состоит в том, что формула написанная выше является определением одновременно и угла и стандартной нормы вектора:

v=<v,v>α=arccos(<v,u>vu)\begin{aligned} ||v|| = \sqrt{<v, v>} \\ \alpha = \arccos(\frac{<v, u>}{||v||*||u||}) \\ \end{aligned}

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

<v,u>=v1u1++vnun(1)<v, u> = v^1*u^1 + \dots + v^n*u^n \quad (1)

Но это работало потому что в школе у нас базис был стандартный: xyz

Где базисные векторы единичной длины и друг другу все перпендикулярны (ортогональны)

Разберёмся почему

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

<v,u>=i=1nj=1nvigijuj=vTGu(2)<v, u> = \sum^n_{i=1} \sum^n_{j=1}v^ig_{ij}u^j = v^T G u \quad (2)

G - матрица скалярных произведений между базисными векторами

Эту матрицу мы выбираем сами

Если мы возьмём единичную матрицу, то как бы скажем, что две вещи:

  1. Все базисные вектора друг другу перпендикулярны, так как вне диагонали все нули

  2. У них единичная длина. Ведь на диагонали стоят единицы, а это скалярное произведение базисных векторов на себя, то есть, квадрат их длины

И как раз при этих условиях формула (2) превращается в формулу (1)

Причём, если попробовать посчитать длину вектора:

<v,v>=(v1)2++(vn)2<v, v> = (v^1)^2 + \dots + (v^n)^2

То получится стандартная евклидова норма!

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

Теперь разберём, что оно нам даёт

Во первых, это работа с направлениями

Само скалярное произведение показывает, насколько “близки” два вектора

Если оно положительно, вектора смотрят примерно в одну сторону

Если отрицательно, то в разные

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

В отличии от угла, скалярное произведение так же показывает длину ортогональной проекции

Если взять два вектора и как бы посвятить фонарём  перпендикулярно одному из векторов, то тень от другого будет ортогональной проекцией

Её длина равна:

prvu=<v,u>vpr_vu = \frac{<v, u>}{||v||}

Если вектора перпендикулярны, то по этой формуле проекция равна нулю (как и должно быть)

Важный именно для Data science приём - косинусное свойство

По ранее данной формуле, не сложно посчитать косинус угла между векторами:

cosα=<v,u>vu\cos \alpha = \frac{<v, u>}{||v||*||u||}

Это достаточно быстро считаемая операция и она позволяет понимать, насколько вектора сонаправленны

Если cos = 0, то перпендикулярны

Если cos = 1,  то полностью сонаправлены

Представим, у нас есть датасет разных видосов на видеохостинге

Наша задача посоветовать пользователю видосы близкие к его интересам

Тут как раз косинусное сходство может помочь

  1. Берём “средний” вектор его интересов - среднее арифметическое его просмотренных видео

  2. Считаем с остальными видео косинусное сходство

  3. Те видео, с которыми оно ближе всего к 1 могут наилучшим образом подходить пользователю

Скалярное произведение является важным маркером того, что происходит с пространством при преобразованиях

Если преобразование как-то меняет скалярное произведение, значит это явно не просто поворот или отражение, что-то явно растягивается, сжимается или сдвигается (меняются длины и углы)

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

Формально это записывается так:

(Av,Au)=(v,u)(Av, Au) = (v, u)

Таких преобразований всего два - это поворот или отражение относительно подпространства

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

А из этого следует, что столбцы матрицы преобразования образуют как раз ортонормированный базис

*Напомню, что по столбцам матрицы преобразования стоят координаты новых базисных векторов

Умножение двух матриц можно интерпретировать как применение стандартного скалярного произведение к столбцам строкам двух матриц

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

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

Чему равен определитель у матрицы ортогональных преобразований?

(воспользуйтесь нашим геометрическим определением определителя через объёмы)