Скалярное произведение и углы
Мы уже научились считать длину, но оказывается, для полного построения классической геометрии нужно ещё кое-что
Введём скалярное произведение
Аксиоматически это просто функция от двух векторов с вот такими свойствами:
- Билинейность
- Положительная определённость
- Симметричность
Тут та же ситуация, что была с векторный пространством и нормой
Любаяфункция, которая удовлетворяет этим свойствам называется скалярным произведением
В школе нам говорили, что скалярное произведение можно использовать для нахождения угла между векторами
Потому что
Но самое интересное, что на самом деле, в самом векторном пространстве ничего про углы не сказано
До этого момента мы пользовались понятием угла только один раз и опирались на интуитивное понимание
Но просто при работе с векторами углы сами не появляются
Твист состоит в том, что формула написанная выше является определением одновременно и угла и стандартной нормы вектора:
В школе нам давали простую формулу подсчёта скалярного произведения:
Но это работало потому что в школе у нас базис был стандартный: xyz
Где базисные векторы единичной длины и друг другу все перпендикулярны (ортогональны)
Разберёмся почему
В общем виде виде формула скалярного произведения выглядит вот так:
G - матрица скалярных произведений между базисными векторами
Эту матрицу мы выбираем сами
Если мы возьмём единичную матрицу, то как бы скажем, что две вещи:
-
Все базисные вектора друг другу перпендикулярны, так как вне диагонали все нули
-
У них единичная длина. Ведь на диагонали стоят единицы, а это скалярное произведение базисных векторов на себя, то есть, квадрат их длины
И как раз при этих условиях формула (2) превращается в формулу (1)
Причём, если попробовать посчитать длину вектора:
То получится стандартная евклидова норма!
Главное, что я хотел сказать всей этой алгеброй это то, что скалярное произведение (и следствия, например в виде углов) не вшито в пространство, мы сами выбираем, как оно будет выглядеть
Теперь разберём, что оно нам даёт
Во первых, это работа с направлениями
Само скалярное произведение показывает, насколько “близки” два вектора
Если оно положительно, вектора смотрят примерно в одну сторону
Если отрицательно, то в разные
Если равно нулю, то они перпендикулярны (и да, при разных скалярных произведениях одни и те же вектора могут быть как перпендикулярны, так и не перпендикулярны)
В отличии от угла, скалярное произведение так же показывает длину ортогональной проекции
Если взять два вектора и как бы посвятить фонарём перпендикулярно одному из векторов, то тень от другого будет ортогональной проекцией
Её длина равна:
Если вектора перпендикулярны, то по этой формуле проекция равна нулю (как и должно быть)
Важный именно для Data science приём - косинусное свойство
По ранее данной формуле, не сложно посчитать косинус угла между векторами:
Это достаточно быстро считаемая операция и она позволяет понимать, насколько вектора сонаправленны
Если cos = 0, то перпендикулярны
Если cos = 1, то полностью сонаправлены
Представим, у нас есть датасет разных видосов на видеохостинге
Наша задача посоветовать пользователю видосы близкие к его интересам
Тут как раз косинусное сходство может помочь
-
Берём “средний” вектор его интересов - среднее арифметическое его просмотренных видео
-
Считаем с остальными видео косинусное сходство
-
Те видео, с которыми оно ближе всего к 1 могут наилучшим образом подходить пользователю
Скалярное произведение является важным маркером того, что происходит с пространством при преобразованиях
Если преобразование как-то меняет скалярное произведение, значит это явно не просто поворот или отражение, что-то явно растягивается, сжимается или сдвигается (меняются длины и углы)
Преобразования, которые не меняют скалярное произведение (а значит, длины и углы тоже) называются ортогональными
Формально это записывается так:
Таких преобразований всего два - это поворот или отражение относительно подпространства
Так как углы и длины не меняются, то такие преобразования переводят ортонормированный базис в ортонормированный
А из этого следует, что столбцы матрицы преобразования образуют как раз ортонормированный базис
*Напомню, что по столбцам матрицы преобразования стоят координаты новых базисных векторов
Умножение двух матриц можно интерпретировать как применение стандартного скалярного произведение к столбцам строкам двух матриц
Тогда полученная матрица будет состоять из попарных произведений каждого вектора с каждым
Получается, что если столбцы матрицы состоят из ортонормированного базиса, то если умножить матрицу на себя транспонированную, то получится единичная матрица:
Чему равен определитель у матрицы ортогональных преобразований?
(воспользуйтесь нашим геометрическим определением определителя через объёмы)