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

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

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

Делиться

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
ideipro logotyp
Космическое пространство с астероидами на фоне звёздного неба.
Современная навигационная система в голубом фоне.
ideipro logotyp
ideipro logotyp
ideipro logotyp
ideipro logotyp
ideipro logotyp
Image Not Found
Современная навигационная система в голубом фоне.

Неужели «Святой Грааль батарей» наконец-то готов одарить нас своим присутствием?

Финский стартап Donut Lab утверждает, что совершил прорыв в области твердотельных батарей. Верите вы этому или нет, но, похоже, эта технология — не просто рекламный трюк. Эндрю Дж. Хокинс, редактор раздела «Транспорт». Публикации этого автора будут добавляться…

Апр 11, 2026
Мужчина в синей футболке с логотипом "rocket" на сером фоне.

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

Источник изображения: Rocket Индийский стартап Rocket делает ставку на то, что следующая большая возможность кроется в этапе, предшествующем программированию: в том, чтобы искусственный интеллект помогал людям принимать решения о том, что создавать. Компания запустила платформу, которая разрабатывает…

Апр 11, 2026
Виктория расширяет пилотный проект «Виртуальная больница» на весь штат, а также публикует другие новости.

Виктория расширяет пилотный проект «Виртуальная больница» на весь штат, а также публикует другие новости.

Кроме того, Justice Health NSW осуществила первый запуск системы NSW SDPR (Social Disaster of Policy Program). Взаимодействие с пациентами. Фото: FatCamera/Getty Images В штате Виктория расширяется пилотный проект по оказанию виртуальной специализированной медицинской помощи. Правительство штата Виктория…

Апр 11, 2026
Цифровой отпечаток пальца на технологической плате; концепция безопасности данных.

Учетные данные безопасности были случайно скомпрометированы на тысячах веб-сайтов.

Исследователи выявили почти 10 000 веб-сайтов, где можно было найти ключи API, что позволило злоумышленникам получить доступ к конфиденциальной информации. Утечка ключей могла позволить злоумышленникам получить контроль над цифровой инфраструктурой компании. Vertigo3d/Getty Images Критически важные учетные данные…

Апр 11, 2026

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