Alterna · учебный материал
01.3 Как измерить длину
Сначала найдём длину стрелки по теореме Пифагора. Затем сравним другие правила измерения, которые отвечают на другой вопрос о расстоянии.
Что в этом материале
- «Длина» должна удовлетворять правилам
- Единичный шар раскрывает выбранную геометрию
- Расстояние является нормой разности
- Масштаб признаков меняет соседство
Содержание и основные понятия
На предыдущей странице: откуда отсчитываются координаты.
Сначала найдём длину стрелки по теореме Пифагора. Затем сравним другие правила измерения, которые отвечают на другой вопрос о расстоянии.
Стрелка: 3 вправо, 4 вверх.
Координаты и расчёт геометрического примера приведены в тексте. Для изменения пространственного рисунка включитеJavaScript.
«Длина» должна удовлетворять правилам
На прямоугольной сетке маршрут можно измерять суммой горизонтального и вертикального перемещений; свободное движение по плоскости естественно измерять прямым отрезком; ограничение по самой большой координате задаёт ещё одну геометрию. Все эти варианты являются нормами, потому что для вектора
x
x
x
, скаляра
α
\alpha
α
и вектора
y
y
y
выполняются:
∥
x
∥
≥
0
,
∥
x
∥
=
0
⟺
x
=
0
,
∥
α
x
∥
=
∣
α
∣
∥
x
∥
,
∥
x
+
y
∥
≤
∥
x
∥
+
∥
y
∥
.
\|x\|\ge 0,
\qquad \|x\|=0\Longleftrightarrow x=0,
\qquad \|\alpha x\|=|\alpha|\|x\|,
\qquad \|x+y\|\le\|x\|+\|y\|.
∥
x
∥
≥
0
,
∥
x
∥
=
0
⟺
x
=
0
,
∥
αx
∥
=
∣
α
∣∥
x
∥
,
∥
x
+
y
∥
≤
∥
x
∥
+
∥
y
∥.
Последнее свойство — неравенство треугольника. Прямой путь от начала к
x
+
y
x+y
x
+
y
не длиннее маршрута сначала вдоль
x
x
x
, затем вдоль
y
y
y
. Без этих свойств произвольную функцию нельзя считать корректной длиной.
Три нормы, используемые в курсе:
∥
x
∥
1
=
∑
i
∣
x
i
∣
,
∥
x
∥
2
=
∑
i
x
i
2
,
∥
x
∥
∞
=
max
i
∣
x
i
∣
.
\|x\|_1=\sum_i|x_i|,
\qquad
\|x\|_2=\sqrt{\sum_i x_i^2},
\qquad
\|x\|_\infty=\max_i|x_i|.
∥
x
∥
1
=
i
∑
∣
x
i
∣
,
∥
x
∥
2
=
i
∑
x
i
2
,
∥
x
∥
∞
=
i
max
∣
x
i
∣.
Для
x
=
[
3
,
4
]
T
x=[3,4]^T
x
=
[
3
,
4
]
T
:
∥
x
∥
1
=
7
,
∥
x
∥
2
=
5
,
∥
x
∥
∞
=
4.
\|x\|_1=7,
\qquad \|x\|_2=5,
\qquad \|x\|_\infty=4.
∥
x
∥
1
=
7
,
∥
x
∥
2
=
5
,
∥
x
∥
∞
=
4.
Это не три приближения к одному обязательному числу, а три разных определения геометрии.
Единичный шар раскрывает выбранную геометрию
Единичный шар нормы — множество
{
x
:
∥
x
∥
≤
1
}
\{x:\|x\|\le1\}
{
x
:
∥
x
∥
≤
1
}
. На плоскости его граница имеет разную форму:
для
L
1
L_1
L
1
: ромб
∣
x
1
∣
+
∣
x
2
∣
=
1
|x_1|+|x_2|=1
∣
x
1
∣
+
∣
x
2
∣
=
1
;
для
L
2
L_2
L
2
: окружность
x
1
2
+
x
2
2
=
1
x_1^2+x_2^2=1
x
1
2
+
x
2
2
=
1
;
для
L
∞
L_\infty
L
∞
: квадрат
max
(
∣
x
1
∣
,
∣
x
2
∣
)
=
1
\max(|x_1|,|x_2|)=1
max
(
∣
x
1
∣
,
∣
x
2
∣
)
=
1
.
Нормирование ненулевого вектора делит его на выбранную норму. Точка
x
/
∥
x
∥
x/\|x\|
x
/∥
x
∥
лежит на соответствующей границе, но её координаты различны:
x
∥
x
∥
1
=
[
3
/
7
,
4
/
7
]
T
,
x
∥
x
∥
2
=
[
3
/
5
,
4
/
5
]
T
,
x
∥
x
∥
∞
=
[
3
/
4
,
1
]
T
.
\frac{x}{\|x\|_1}=[3/7,4/7]^T,
\quad
\frac{x}{\|x\|_2}=[3/5,4/5]^T,
\quad
\frac{x}{\|x\|_\infty}=[3/4,1]^T.
∥
x
∥
1
x
=
[
3/7
,
4/7
]
T
,
∥
x
∥
2
x
=
[
3/5
,
4/5
]
T
,
∥
x
∥
∞
x
=
[
3/4
,
1
]
T
.
Расстояние является нормой разности
Выбранная норма задаёт метрику
d
p
(
x
,
y
)
=
∥
x
−
y
∥
p
.
d_p(x,y)=\|x-y\|_p.
d
p
(
x
,
y
)
=
∥
x
−
y
∥
p
.
Для
x
=
[
3
,
4
]
T
x=[3,4]^T
x
=
[
3
,
4
]
T
,
y
=
[
1
,
0
]
T
y=[1,0]^T
y
=
[
1
,
0
]
T
разность равна
[
2
,
4
]
T
[2,4]^T
[
2
,
4
]
T
, поэтому
d
1
(
x
,
y
)
=
6
,
d
2
(
x
,
y
)
=
20
,
d
∞
(
x
,
y
)
=
4.
d_1(x,y)=6,
\qquad d_2(x,y)=\sqrt{20},
\qquad d_\infty(x,y)=4.
d
1
(
x
,
y
)
=
6
,
d
2
(
x
,
y
)
=
20
,
d
∞
(
x
,
y
)
=
4.
Число «расстояние равно 4» неполно без названия метрики. В
L
1
L_1
L
1
существует много кратчайших ступенчатых маршрутов длины 6. В
L
2
L_2
L
2
кратчайшим является прямой отрезок. В
L
∞
L_\infty
L
∞
стоимость определяется наибольшим координатным отклонением.
Квадрат евклидовой нормы часто используется в loss,
q
(
x
)
=
∥
x
∥
2
2
=
∑
i
x
i
2
,
q(x)=\|x\|_2^2=\sum_i x_i^2,
q
(
x
)
=
∥
x
∥
2
2
=
i
∑
x
i
2
,
но сам нормой не является:
q
(
2
x
)
=
4
q
(
x
)
q(2x)=4q(x)
q
(
2
x
)
=
4
q
(
x
)
, тогда как однородность нормы требует множитель 2. «
L
0
L_0
L
0
» как число ненулевых компонент тоже не норма: например, масштабирование ненулевого вектора не умножает это число на
∣
α
∣
|\alpha|
∣
α
∣
. Сумма координат без модулей не годится даже как длина, поскольку у
[
1
,
−
1
]
[1,-1]
[
1
,
−
1
]
она равна нулю.
Масштаб признаков меняет соседство
Если первая координата измерена в метрах, а затем записана в сантиметрах, её числовой вклад в расстояние увеличится в 100 раз. Объект, ближайший по исходным единицам, может перестать быть ближайшим после смены масштаба. Поэтому стандартизация признаков является частью модели данных, а не косметикой интерфейса.
Нормирование
x
/
∥
x
∥
2
x/\|x\|_2
x
/∥
x
∥
2
сохраняет направление ненулевого вектора и удаляет длину. Для embeddings это иногда полезно, когда сравниваются направления, но длина может нести обученный сигнал. Нормировать автоматически безопасно только после постановки вопроса: какую информацию разрешено отбросить?
from math import sqrt
x = [3, 4]
assert sum(abs(v) for v in x) == 7
assert sqrt(sum(v*v for v in x)) == 5
assert max(abs(v) for v in x) == 4
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Мы получили длину, а не новую координату. Перенос начала стрелки не меняет эту длину.
Что даёт сумма произведений. Как этот вопрос продолжает полученный результат?
Python-примеры главы 01
Академическая база →