Векторная диаграмма: линейная и ортогональная составляющие векторного проецирования.

Геометрия скалярного произведения: единичные векторы, проекции и интуитивное понимание.

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

Делиться

93f976e0a137faa2deac76e8fdcc74cc
Визуализация аналогии с «тенью»: векторная проекция в трехмерном пространстве. Изображение предоставлено автором (создано с помощью Gemini).

Введение

Эта статья — первая из трёх частей. Каждая часть самодостаточна, поэтому вам не нужно читать остальные, чтобы её понять.

Скалярное произведение — одна из важнейших операций в машинном обучении, но её сложно понять без правильных геометрических основ. В этой первой части мы заложим эти основы:

Единичные векторы

· Скалярная проекция

· Векторная проекция

Независимо от того, изучаете ли вы линейную алгебру впервые или хотите освежить эти понятия, я рекомендую вам прочитать эту статью.

В этой статье мы представим и объясним скалярное произведение, а в следующей статье рассмотрим его более подробно.

Раздел, посвященный проекции вектора, включен в качестве дополнительного бонуса: он полезен, но не обязателен для понимания скалярного произведения.

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

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

Единичный вектор

Вектор 𝐯→large mathbf{vec{v}} называется единичным вектором, если его модуль равен 1:

|𝐯→|=1LARGE mathbf{|vec{v}|} = 1

Чтобы уменьшить величину ненулевого вектора, сохранив при этом его направление, мы можем его нормализовать. Нормализация масштабирует вектор в следующий множитель:

1|𝐯→|LARGE frac{1}{|mathbf{vec{v}}|}

Нормализованный вектор 𝐯^large mathbf{hat{v}} — это единичный вектор в направлении 𝐯→large mathbf{vec{v}}:

𝐯^=𝐯→|𝐯→|LARGE begin{array}{|c|} hline mathbf{hat{v}} = frac{mathbf{vec{v}}}{|mathbf{vec{v}}|} \ hline end{array}

Обозначение 1. Отныне, всякий раз, когда мы нормализуем вектор 𝐯→large mathbf{vec{v}} или пишем 𝐯^large mathbf{hat{v}}, мы предполагаем, что 𝐯→≠0large mathbf{vec{v}} neq 0. Это обозначение, наряду с последующими, также актуально для следующих статей.

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

𝐯→=|𝐯→|⏟magnitude⋅𝐯^⏟directionLARGE begin{array}{|c|} hline rule{0pt}{2.5em} mathbf{vec{v}} = underbrace{|mathbf{vec{v}}|}_{text{magnitude}} cdot underbrace{mathbf{hat{v}}}_{text{direction}} \[4.5em] hline end{array}

Рисунок 1 иллюстрирует эту идею: 𝐯{mathbf{v}} и 𝐯^large mathbf{hat{v}} направлены в одном направлении, но имеют разные величины.

dd2c050591ef4da00659d5049e02aa38
Рисунок 1. Разделение понятий «Сколько» и «В каком направлении». Любой вектор можно представить как произведение его модуля и единичного вектора, которое сохраняет направление, но имеет длину 1. Изображение предоставлено автором (создано с помощью Claude).

Сходство единичных векторов

В двумерном пространстве все единичные векторы лежат на единичной окружности (радиус 1, с центром в начале координат). Единичный вектор, образующий угол θ с осью x, имеет координаты (cos θ, sin θ).

Это означает, что угол между двумя единичными векторами кодирует естественный показатель сходства — как мы вскоре покажем, этот показатель равен cos θ: он равен 1, когда они направлены в одну сторону, 0, когда перпендикулярны, и −1, когда направлены в противоположные стороны.

Обозначение 2. В данной статье θ обозначает наименьший угол между двумя векторами, поэтому 0°≤θ≤180°0° leq theta leq 180° .

На практике нам неизвестен параметр θ напрямую – нам известны координаты векторов.

Мы можем показать, почему скалярное произведение двух единичных векторов: a^largehat{a} и b^largehat{b} равно cos θ, используя геометрический аргумент в три шага:

1. Поверните систему координат до тех пор, пока b^largehat{b} не окажется на оси x. Поворот не изменяет углы или величины.

2. Считайте новые координаты. После поворота вектор b^largehat{b} имеет координаты (1, 0). Поскольку a^largehat{a} — единичный вектор, расположенный под углом θ к оси x, определение единичной окружности дает его координаты как (cos θ, sin θ).

3. Перемножьте соответствующие компоненты и сложите:

a^⋅b^=ax⋅bx+ay⋅by=cos⁡θ⋅1+sin⁡θ⋅0=cos⁡θLarge begin{aligned} hat{a} cdot hat{b} = a_x cdot b_x + a_y cdot b_y = \ costheta cdot 1 + sintheta cdot 0 = costheta end{aligned}

Сумма произведений отдельных компонентов называется скалярным произведением:

a→⋅b→=a1⋅b1+a2⋅b2+⋯+an⋅bnLarge boxed{ begin{aligned} vec{a} cdot vec{b} = a_1 cdot b_1 + a_2 cdot b_2 \ + cdots + a_n cdot b_n end{aligned} }

Иллюстрацию этих трех шагов см. на рисунке 2 ниже:

04b2d3768baed35b0402610d22d5b093
Рисунок 2. Повернув перспективу так, чтобы она совпадала с осью x, математические вычисления в координатах значительно упрощаются, показывая, почему скалярное произведение двух единичных векторов равно cos(θ). Изображение предоставлено автором (создано с помощью Claude).

Всё вышеизложенное было показано в двумерном пространстве, но тот же результат справедлив в любом количестве измерений. Любые два вектора, независимо от количества измерений, всегда лежат в одной плоской плоскости. Мы можем повернуть эту плоскость так, чтобы она совпадала с плоскостью xy — и отсюда доказательство в двумерном пространстве применяется в точности.

Обозначение 3. На следующих диаграммах мы часто изображаем один из векторов (обычно b→largevec{b}) вдоль горизонтальной оси. Если вектор b→largevec{b} еще не выровнен по оси x, мы всегда можем повернуть нашу систему координат, как мы делали выше («прием с поворотом»). Поскольку поворот сохраняет все длины, углы и скалярные произведения, каждая формула, выведенная в этом положении, справедлива для любого направления вектора b→largevec{b}.

Скалярная проекция

Вектор может влиять на множество направлений одновременно, но часто нас интересует только одно направление.

Скалярная проекция отвечает на вопрос: какая часть вектора 𝒂→large boldsymbol{vec{a}} лежит вдоль направления вектора 𝒃→large boldsymbol{vec{b}}?

Это значение отрицательно, если проекция направлена в противоположную сторону от b→largevec{b}.

Аналогия с тенью

Наиболее наглядный способ представить себе скалярную проекцию — это представить её как длину тени. Представьте, что вы держите палку (вектор a → ∞ a) под углом к земле (направление вектора b → b), а источник света светит прямо вниз сверху.

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

Приведенная ниже анимированная иллюстрация подтверждает эту идею:

c13ca05be4ad24d581da671fb30c1b45
Рисунок 3. Скалярная проекция в виде тени.
Скалярная проекция измеряет, какая часть вектора a лежит в направлении вектора b .
Она равна длине тени, которую точка А отбрасывает на точку Б (Ву, 2023). GIF-анимация создана Клодом.

Расчет

Представьте источник света, направленный прямо вниз на линию PS (в направлении b→largevec{b}). «Тень», которую отбрасывает стрелка a→largevec{a} (стрелка от P к Q ) на эту линию, — это в точности отрезок PR. Это можно увидеть на рисунке 4.

e6668f769abb96530902fb5e8e7ac90c
Рисунок 4: Измерение направленного выравнивания. Скалярная проекция (сегмент PR ) визуально отвечает на основной вопрос: «Какая часть вектора a лежит точно в направлении вектора b?» Изображение предоставлено автором (создано с помощью Claude).

Вывод формулы

Теперь рассмотрим треугольник PQR: перпендикуляр, проведённый из точки Q, образует прямоугольный треугольник, и его стороны равны:

  • PQ = |a→|large PQ = |vec{a}| (гипотенуза).
  • PRlarge PR (прилегающая сторона – тень).
  • QRlarge QR (противоположная сторона – перпендикулярная составляющая).

Из этого треугольника:

  1. Угол между a→largevec{a} и b→largevec{b} равен θ.
  2. cos⁡(θ)=PR|a→|large cos(theta) = frac{PR}{|vec{a}|} (самое базовое определение косинуса).
  3. Умножьте обе стороны на |a→|large|vec{a}| :

PR=|a→|cos⁡(θ)LARGE begin{array}{|c|} hline PR = |vec{a}| cos(theta) \ hline end{array}

Сегмент 𝑷𝑹boldsymbol{PR} — это длина тени — скалярная проекция 𝒂→large boldsymbol{vec{a}} на 𝒃→large boldsymbol{vec{b}}.

Когда θ > 90°, скалярная проекция тоже становится отрицательной. Представьте, что тень переворачивается на противоположную сторону.

Как связана единичная векторная величина?

Длина тени ( PR ) не зависит от величины b→largevec{b}. Она зависит от |a→|large|vec{a}| и от θ.

При вычислении a→⋅b^largevec{a} cdot hat{b} вы спрашиваете: какая часть a→largevec{a} лежит вдоль направления b→largevec{b}? Это и есть длина тени.

Единичный вектор выступает в роли направления. Фильтр: умножение a→largevec{a} на него позволяет выделить компоненту a→largevec{a} вдоль этого направления.

Давайте рассмотрим это с помощью приема вращения. Мы располагаем b̂ вдоль оси x:

a→=(|a→|cos⁡θ, |a→|sin⁡(θ))Large vec{a} = (|vec{a}|costheta, |vec{a}|sin(theta))

и:

b^=(1,0)Large hat{b} = (1, 0)

Затем:

a→⋅b^=|a→|cos⁡θ⋅1+|a→|sin⁡(θ)⋅0=|a→|cos⁡θLarge begin{aligned} vec{a} cdot hat{b} = |vec{a}|costheta cdot 1 \ + |vec{a}|sin(theta) cdot 0 = |vec{a}|costheta end{aligned}

Скалярная проекция 𝒂→large boldsymbol{vec{a}} в направлении 𝒃→large boldsymbol{vec{b}} имеет вид:

|a→|cos⁡θ=a→⋅b^=a→⋅b→|b→|LARGE renewcommand{arraystretch}{2} begin{array}{|c|} hline begin{aligned} |vec{a}|costheta &= vec{a} cdot hat{b} \ &= frac{vec{a} cdot vec{b}}{|vec{b}|} end{aligned} \ hline end{array}

Геометрическая интерпретация скалярного произведения

Мы применяем тот же приём вращения ещё раз, теперь с двумя общими векторами: a→largevec{a} и b→largevec{b}.

После поворота:

a→=(|a→|cos⁡θ, |a→|sin⁡θ)Large vec{a} = (|vec{a}|costheta, |vec{a}|sintheta) ,

b→=(|b→|, 0)Large vec{b} = (|vec{b}|, 0)

так:

a→⋅b→=|a→|cos⁡θ⋅|b→|+|a→|sin⁡θ⋅0=|a→||b→|cos⁡θLarge begin{aligned} vec{a} cdot vec{b} = |vec{a}|costheta cdot |vec{b}| \ + |vec{a}|sintheta cdot 0 = |vec{a}||vec{b}|costheta end{aligned}

Скалярное произведение 𝒂→large boldsymbol{vec{a}} и 𝒃→large boldsymbol{vec{b}} равно:

a→⋅b→=a1b1+⋯+anbn=∑i=1naibi=|a→||b→|cos⁡θLarge renewcommand{arraystretch}{2} begin{array}{|l|} hline vec{a} cdot vec{b} = a_1 b_1+ dots + a_n b_n \ = sum_{i=1}^{n} a_i b_i = |vec{a}||vec{b}|costheta \ hline end{array}

Векторная проекция

Проекция вектора выделяет ту часть вектора 𝒂→large boldsymbol{vec{a}}, которая направлена вдоль вектора 𝒃→large boldsymbol{vec{b}}.

Аналогия с тропой

Представьте себе два маршрута, начинающихся из одной и той же точки (начала координат):

  • Тропа А ведет к месту наблюдения за китами.
  • Тропа B ведет вдоль побережья в другом направлении.

Вот ответы на вопрос о проекции:

Вам разрешено идти только по тропе B. Какое расстояние вам нужно пройти, чтобы оказаться как можно ближе к конечной точке тропы A?

Вы идёте по тропе B и в какой-то момент останавливаетесь. С того места, где вы остановились, вы смотрите в сторону конца тропы A, и линия, соединяющая вас с ней, образует идеальный угол 90° с тропой B. Это ключевой геометрический факт — ближайшая точка всегда находится там, где вы бы повернули на прямой угол.

Место, где вы останавливаетесь на тропе B, является проекцией точки A на точку B. Оно представляет собой «ту часть точки A, которая направлена в сторону точки B».

Оставшийся промежуток — от точки остановки до фактического конца маршрута А — это всё, что находится в точке А и не имеет отношения к направлению в точке В. Этот пример проиллюстрирован на рисунке 5 ниже: вектор, начинающийся в начале координат, направленный вдоль маршрута В и заканчивающийся в ближайшей точке,это векторная проекция вектора a→largevec{a} на вектор b→largevec{b}.

40f8c24d09df7cd3c23434dcda77cf68
Рисунок 5 — Векторная проекция как ближайшая точка к направлению.
При движении по тропе B ближайшая к конечной точке тропы A точка находится там, где соединяющий отрезок образует прямой угол с B. Эта точка является проекцией A на B. Изображение предоставлено автором (создано с помощью Claude).

Скалярная проекция отвечает на вопрос: «Как далеко вы прошли?»

Это всего лишь расстояние, одно число.

Ответ на вопрос о векторной проекции: «Где именно вы находитесь?»

Точнее: «Какое именно движение по тропе B приводит вас к ближайшей точке?»

Теперь «1,5 километра» недостаточно, нужно сказать «1,5 километра на восток вдоль побережья». Это расстояние плюс направление: стрелка, а не просто число. Стрелка начинается в начальной точке, указывает вдоль тропы B и заканчивается в ближайшей точке.

Пройденное вами расстояние — это скалярное значение проекции. Величина векторной проекции равна абсолютному значению скалярной проекции.

Ответ на вопрос о единичных векторах: «В каком направлении идет тропа B?»

Это в точности то, что обозначает b^largehat{b}. Это маршрут B, лишенный какой-либо информации о длине — только направление на побережье.

векторная проекция = (расстояние, которое вы пройдете) ⏟ скалярная проекция × (направление B) ⏟ b^begin{aligned} &text{векторная проекция} = \ &underbrace{(text{расстояние, которое вы пройдете})}_{text{скалярная проекция}} times underbrace{(text{направление B})}_{hat{b}} end{aligned}

Я понимаю, что аналогия с китом очень специфична; она была вдохновлена этим хорошим объяснением (Майкл П., 2014).

На рисунке 6 ниже показана та же диаграмма теней, что и на рисунке 4, с обозначением PR стрелкой , поскольку проекция вектора представляет собой вектор (имеющий как длину, так и направление), а не просто число.

d568aaafe5ff42ad5d7e564b8ac83c40
Рисунок 6 — Векторная проекция в виде направленной тени.
В отличие от скалярной проекции (длины), векторная проекция представляет собой стрелку, направленную вдоль вектора b. Изображение предоставлено автором (создано с помощью программы Claude).

Поскольку проекция должна лежать вдоль оси b→largevec{b}, для PR→largevec{PR} нам необходимы две вещи:

  1. Его величина — это скалярная проекция: |a→|cos⁡θlarge|vec{a}|costheta
  2. Его направление : b^largehat{b} (направление b→largevec{b})

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

PR→=|a→|cos⁡θ⏟скалярная проекция⋅b^⏟направление b→large begin{array}{|c|} hline hspace{10pt} vec{PR} = underbrace{|vec{a}| cos theta}_{text{скалярная проекция}} cdot underbrace{hat{b}}_{text{направление } vec{b}} hspace{20pt} \ hline end{array}

Это уже формула векторной проекции. Мы можем переписать её, подставив b^=b→|b→|largehat{b} = frac{vec{b}}{|vec{b}|} и учитывая, что |a→||b→|cos⁡θ=a→⋅b→large|vec{a}||vec{b}|costheta = vec{a} cdot vec{b}

Векторная проекция вектора 𝒂→large boldsymbol{vec{a}} в направлении вектора 𝒃→large boldsymbol{vec{b}} имеет вид:

projb→(a→)=(|a→|cos⁡θ)b^=(a→⋅b→|b→|2)b→=(a→⋅b^)b^Large renewcommand{arraystretch}{1.5} begin{array}{|c|} hline begin{aligned} text{proj}_{vec{b}}(vec{a}) &= (|vec{a}|costheta)hat{b} \ &= left(frac{vec{a} cdot vec{b}}{|vec{b}|^2}right)vec{b} \ &= (vec{a} cdot hat{b})hat{b} end{aligned} \ hline end{array}

Краткое содержание

  • Единичный вектор позволяет выделить направление вектора, отбросив его величину.

𝐯^=𝐯→|𝐯→|LARGE begin{array}{|c|} hline mathbf{hat{v}} = frac{mathbf{vec{v}}}{|mathbf{vec{v}}|} \ hline end{array}

  • Скалярное произведение умножает соответствующие компоненты и суммирует их. Оно также равно произведению модулей двух векторов, умноженному на косинус угла между ними.

a→⋅b→=a1b1+⋯+anbn=∑i=1naibi=|a→||b→|cos⁡θ renewcommand{arraystretch}{2} begin{array}{|l|} hline vec{a} cdot vec{b} = a_1 b_1+ dots + a_n b_n \ = sum_{i=1}^{n} a_i b_i = |vec{a}||vec{b}|costheta \ hline end{array}

  • Скалярная проекция использует скалярное произведение для измерения того, насколько один вектор распространяется вдоль направления другого — это одно число, подобно длине тени.

|a→|cos⁡θ=a→⋅b^=a→⋅b→|b→|Large begin{array}{|c|} hline |vec{a}|costheta = vec{a} cdot hat{b} = frac{vec{a} cdot vec{b}}{|vec{b}|} \ hline конец{массив}

  • Векторная проекция идет еще дальше, возвращая фактическую стрелку, направленную в эту сторону: скалярная проекция умножает на единичный вектор.

(|a→|cos⁡θ)b^=(a→⋅b^)b^Large renewcommand{arraystretch}{2} begin{array}{|l|} hline (|vec{a}|costheta)hat{b} = (vec{a} cdot hat{b})hat{b} \ hline end{array}

В следующей части мы используем инструменты, изученные в этой статье, чтобы по-настоящему понять скалярное произведение.

Амит Шрайбер. Все материалы от Амита Шрайбера.

Источник: towardsdatascience.com

✅ Найденные теги: Векторы, геометрия, новости, Понимание, Проекции, Скалярное Произведение

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

ideipro logotyp
Три карты мира в разных цветах: жёлтый, зелёный, розовый. Страны выделены тёмными тонами.
Схема строения клеточного ядра: ядрышко, мембраны, хроматин, поры.
Цифровая сеть с абстрактными технологическими элементами на синем фоне.
SSD накопители Samsung 9100 Pro в магазине, цена указана на наклейках.
Игровой монитор Philips с ярким изображением космического корабля на экране.
Астронавты в оранжевых скафандрах и военные на борту вертолёта, спасательная операция.
ideipro logotyp
ideipro logotyp
Image Not Found
Три карты мира в разных цветах: жёлтый, зелёный, розовый. Страны выделены тёмными тонами.

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

Они стали восьмой по значимости причиной смерти среди детей во всем мире Исследование Глобального бремени болезней показало, что в 2023 году зарегистрировано 377 тысяч случаев онкологических заболеваний у детей и подростков и 144 тысячи смертей из-за них. Опухоли стали восьмой по значимости причиной смерти…

Апр 11, 2026
Схема строения клеточного ядра: ядрышко, мембраны, хроматин, поры.

Продолжаем уроки познавательного клетковедения на волнах паблика «Биология»

Итак, клеточное ядро функционально похоже на «кабинет босса» или своеобразный аналог мозга внутри эукариотической клетки. Оно отгорожено от подчинённых двойной стенкой с собственной охраной. Эта стенка называется ядерной оболочкой, и она пронизана ядерными порами — высокотехнологичными КПП,…

Апр 11, 2026
SSD накопители Samsung 9100 Pro в магазине, цена указана на наклейках.

В магазинах полно модулей памяти и накопителей, но их никто не покупает

Казалось бы, мы длительное время наблюдаем за дефицитом оперативной памяти и твердотельных накопителей из-за того, что производители решили переключиться на более прибыльный для себя серверный рынок. Однако ситуация в некоторых магазинах демонстрирует интересную картину, когда товара много,…

Апр 11, 2026
Игровой монитор Philips с ярким изображением космического корабля на экране.

Philips запустила двухрежимный игровой монитор Evnia 27M2G5800

Philips продолжает расширять серию игровых мониторов Evnia, и сегодняшний день она использовала для запуска новой модели 27M2G5800 с 27-дюймовой матрицей типа IPS и достаточно высоким разрешением 5120 х 2880 точек. В сетевые проекты играть с таким разрешением…

Апр 11, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых