Фаза 01 · урок 14

Нормы и расстояния

Цель урока: У вас есть два вектора. Возможно, это вложения слов. Возможно, профили пользователей. Возможно, массивы пикселей. Вам нужно знать: насколько они близки?

Текущий релиз AlexBred.com: первые 100 уроков русскоязычной программы.

Курс
AI Engineering from Scratch
Фаза
Математические основы
Чтение
19 мин.
Проверено
Содержание урока
  1. Цели обучения
  2. Проблема
  3. Концепция
  4. Нормы: измерение величины вектора
  5. Норма L1 (манхэттенское расстояние)
  6. Норма L2 (евклидово расстояние)
  7. Нормы Lp: общее семейство
  8. Норма L-бесконечность (расстояние Чебышёва)
  9. Косинусное сходство и косинусное расстояние
  10. Сходство по скалярному произведению и косинусное сходство
  11. Расстояние Махаланобиса
  12. Сходство Жаккара (для множеств)
  13. Редакционное расстояние (расстояние Левенштейна)
  14. KL-дивергенция (не расстояние, но используется как оно)
  15. Расстояние Вассерштейна (Earth Mover’s Distance)
  16. Почему разным задачам нужны разные расстояния
  17. Связь с функциями потерь
  18. Связь с регуляризацией
  19. Поиск ближайших соседей
  20. Соберите это
  21. Шаг 1: все функции норм и расстояний
  22. Шаг 2: одни данные, разные расстояния, разные соседи
  23. Шаг 3: поиск сходства вложений
  24. Используйте это
  25. Упражнения
  26. Ключевые термины
  27. Дополнительное чтение

Ваша функция расстояния определяет, что значит «похоже». Выберите неверную — и всё, что идёт дальше, сломается.

Тип: Сборка Язык: Python Предварительные требования: Фаза 1, уроки 01 (Интуиция линейной алгебры), 02 (Векторы, матрицы и операции) Время: ~90 минут

Цели обучения

  • Реализовать с нуля функции L1, L2, косинусного, махаланобисова, Жаккара и редакционного расстояния
  • Выбирать подходящую метрику расстояния для данной ML-задачи и объяснять, почему альтернативы не подходят
  • Связать нормы L1 и L2 с регуляризацией LASSO и Ridge и их геометрическими областями ограничений
  • Показать, как один и тот же набор данных даёт разных ближайших соседей при разных метриках

Проблема

У вас есть два вектора. Возможно, это вложения слов. Возможно, профили пользователей. Возможно, массивы пикселей. Вам нужно знать: насколько они близки?

Ответ полностью зависит от выбранной функции расстояния. Две точки данных могут быть ближайшими соседями при одной метрике и находиться далеко друг от друга при другой. От этого выбора зависят ваш классификатор KNN, рекомендательная система, векторная база данных, алгоритм кластеризации, функция потерь — все они. Ошибка означает, что модель оптимизирует не то, что нужно.

Не существует универсально лучшего расстояния. L2 работает для пространственных данных. Косинусное сходство доминирует в NLP. Жаккар работает с множествами. Редакционное расстояние — со строками. Махаланобис учитывает корреляции. Вассерштейн перемещает вероятностную массу. Каждая метрика кодирует собственное предположение о том, что значит «похоже».

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

Концепция

Нормы: измерение величины вектора

Норма измеряет «размер» вектора. Любую функцию расстояния между двумя векторами можно записать как норму их разности: d(a, b) = ||a - b||. Поэтому понять нормы — значит понять расстояния.

Норма L1 (манхэттенское расстояние)

Норма L1 суммирует абсолютные значения всех компонент.

||x||_1 = |x_1| + |x_2| + ... + |x_n|

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

Point A = (1, 1)
Point B = (4, 5)

L1 distance = |4-1| + |5-1| = 3 + 4 = 7

On a grid, you walk 3 blocks east and 4 blocks north.

Когда использовать L1:

  • Разреженные данные высокой размерности (текстовые признаки, one-hot-кодировки)
  • Когда нужна устойчивость к выбросам (одно огромное различие не доминирует)
  • Задачи отбора признаков (регуляризация L1 поощряет разреженность)

Связь с регуляризацией L1 (Lasso): добавление ||w||_1 к функции потерь штрафует сумму абсолютных значений весов. Это заставляет малые веса становиться ровно нулевыми и автоматически отбирает признаки. Штраф L1 создаёт ромбовидные области ограничений в пространстве весов, а углы ромбов лежат на осях, где некоторые веса равны нулю.

Связь с функциями потерь: средняя абсолютная ошибка (MAE) — это среднее расстояние L1 между предсказаниями и целями. Она линейно штрафует все ошибки, поэтому по сравнению с MSE устойчива к выбросам.

Норма L2 (евклидово расстояние)

Норма L2 — это расстояние по прямой. Квадратный корень из суммы квадратов компонент.

||x||_2 = sqrt(x_1^2 + x_2^2 + ... + x_n^2)

Это расстояние, которое вы изучали на геометрии. Теорема Пифагора в n измерениях.

Point A = (1, 1)
Point B = (4, 5)

L2 distance = sqrt((4-1)^2 + (5-1)^2) = sqrt(9 + 16) = sqrt(25) = 5.0

The straight line, cutting diagonally through the grid.

Когда использовать L2:

  • Непрерывные данные малой и средней размерности
  • Когда масштабы признаков сопоставимы
  • Физические расстояния (пространственные данные, показания датчиков)
  • Сходство изображений на уровне пикселей

Связь с регуляризацией L2 (Ridge): добавление ||w||_2^2 к функции потерь штрафует большие веса. В отличие от L1, она не делает веса нулевыми. Она пропорционально сжимает все веса к нулю. Штраф L2 создаёт круглые области ограничений, поэтому на осях нет углов. Веса становятся малыми, но почти никогда не равны нулю в точности.

Связь с функциями потерь: среднеквадратичная ошибка (MSE) — это среднее квадратов расстояний L2. Возведение в квадрат штрафует большие ошибки сильнее малых.

MAE (L1 loss):  |y - y_hat|         Linear penalty. Robust to outliers.
MSE (L2 loss):  (y - y_hat)^2       Quadratic penalty. Sensitive to outliers.

Нормы Lp: общее семейство

L1 и L2 — частные случаи нормы Lp:

||x||_p = (|x_1|^p + |x_2|^p + ... + |x_n|^p)^(1/p)

Разные значения p дают «единичные шары» разной формы (множество всех точек на расстоянии 1 от начала координат):

p=1:    Diamond shape      (corners on axes)
p=2:    Circle/sphere      (the usual round ball)
p=3:    Superellipse       (rounded square)
p=inf:  Square/hypercube   (flat sides along axes)

Норма L-бесконечность (расстояние Чебышёва)

Когда p стремится к бесконечности, норма Lp сходится к максимальной абсолютной компоненте.

||x||_inf = max(|x_1|, |x_2|, ..., |x_n|)

Расстояние между двумя точками определяется единственным измерением, в котором они различаются сильнее всего. Все остальные измерения игнорируются.

Point A = (1, 1)
Point B = (4, 5)

L-inf distance = max(|4-1|, |5-1|) = max(3, 4) = 4

Когда использовать L-бесконечность:

  • Когда важно наихудшее отклонение в любом отдельном измерении
  • Игровые доски (король в шахматах ходит по L-бесконечности: один ход в любом направлении стоит 1)
  • Производственные допуски (каждое измерение должно укладываться в спецификацию)

Косинусное сходство и косинусное расстояние

Косинусное сходство измеряет угол между двумя векторами, игнорируя их величины.

cos_sim(a, b) = (a . b) / (||a||_2 * ||b||_2)

Оно принимает значения от -1 (противоположные направления) до +1 (одно направление). У перпендикулярных векторов косинусное сходство равно 0.

Косинусное расстояние преобразует его в расстояние: cosine_distance = 1 - cosine_similarity. Оно лежит в диапазоне от 0 (одинаковое направление) до 2 (противоположные направления).

a = (1, 0)    b = (1, 1)

cos_sim = (1*1 + 0*1) / (1 * sqrt(2)) = 1/sqrt(2) = 0.707
cos_dist = 1 - 0.707 = 0.293

Почему косинус доминирует в NLP и вложениях: в текстах длина документа не должна влиять на сходство. Документ о кошках, который вдвое длиннее другого документа о кошках, всё равно должен быть «похожим». Косинусное сходство игнорирует величину (длину) и учитывает только направление. Два документа с одинаковым распределением слов, но разной длиной, указывают в одном направлении и получают косинусное сходство 1.0.

Когда использовать косинусное сходство:

  • Сходство текстов (векторы TF-IDF, вложения слов, вложения предложений)
  • Любая область, где величина — шум, а направление — сигнал
  • Рекомендательные системы (векторы предпочтений пользователей)
  • Поиск по вложениям (векторные базы данных почти всегда используют косинус или скалярное произведение)

Сходство по скалярному произведению и косинусное сходство

Скалярное произведение двух векторов:

a . b = a_1*b_1 + a_2*b_2 + ... + a_n*b_n
      = ||a|| * ||b|| * cos(angle)

Косинусное сходство — это скалярное произведение, нормализованное по обеим величинам. Когда оба вектора уже нормированы до единицы (величина = 1), скалярное произведение и косинусное сходство совпадают.

If ||a|| = 1 and ||b|| = 1:
    a . b = cos(angle between a and b)

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

a = (3, 0)    b = (1, 0)    c = (0, 1)

dot(a, b) = 3     dot(a, c) = 0
cos(a, b) = 1.0   cos(a, c) = 0.0

Both agree on direction, but dot product also reflects magnitude.

На практике:

  • Используйте косинусное сходство, когда нужно чистое сходство направлений
  • Используйте скалярное произведение, когда величины несут значимую информацию
  • Многие векторные базы данных (Pinecone, Weaviate, Qdrant) позволяют выбрать между ними
  • Если ваши вложения нормированы по L2, выбор не имеет значения

Расстояние Махаланобиса

Евклидово расстояние одинаково относится ко всем измерениям. Но если признаки коррелированы или имеют разные масштабы, L2 даёт вводящий в заблуждение результат.

Расстояние Махаланобиса учитывает ковариационную структуру данных.

d_M(x, y) = sqrt((x - y)^T * S^(-1) * (x - y))

где S — ковариационная матрица данных.

Интуитивно: расстояние Махаланобиса сначала декоррелирует и нормализует данные (whitening), а затем вычисляет L2-расстояние в преобразованном пространстве. Если S — единичная матрица (некоррелированные признаки с единичной дисперсией), расстояние Махаланобиса сводится к евклидову.

Example: height and weight are correlated.
Someone 6'2" and 180 lbs is not unusual.
Someone 5'0" and 180 lbs is unusual.

Euclidean distance might say they are equally far from the mean.
Mahalanobis distance correctly identifies the second as an outlier
because it accounts for the height-weight correlation.

Когда использовать расстояние Махаланобиса:

  • Обнаружение выбросов (точки с большим расстоянием Махаланобиса от среднего являются выбросами)
  • Классификация, когда признаки имеют разные масштабы и корреляции
  • Когда данных достаточно, чтобы надёжно оценить ковариационную матрицу
  • Контроль качества на производстве (многомерный мониторинг процесса)

Сходство Жаккара (для множеств)

Сходство Жаккара измеряет пересечение двух множеств.

J(A, B) = |A intersect B| / |A union B|

Оно принимает значения от 0 (нет пересечения) до 1 (множества совпадают). Расстояние Жаккара = 1 - сходство Жаккара.

A = {cat, dog, fish}
B = {cat, bird, fish, snake}

Intersection = {cat, fish}         size = 2
Union = {cat, dog, fish, bird, snake}  size = 5

Jaccard similarity = 2/5 = 0.4
Jaccard distance = 0.6

Когда использовать Жаккара:

  • Сравнение множеств тегов, категорий или признаков
  • Сходство документов по наличию слов (не их частоте)
  • Обнаружение почти дубликатов (приближение Жаккара MinHash)
  • Сравнение бинарных векторов признаков (данные присутствия/отсутствия)
  • Оценка моделей сегментации (Intersection over Union = Жаккар)

Редакционное расстояние (расстояние Левенштейна)

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

"kitten" -> "sitting"

kitten -> sitten  (substitute k -> s)
sitten -> sittin  (substitute e -> i)
sittin -> sitting (insert g)

Edit distance = 3

Вычисляется динамическим программированием. Заполните матрицу, где элемент (i, j) — редакционное расстояние между первыми i символами строки A и первыми j символами строки B.

        ""  s  i  t  t  i  n  g
    ""   0  1  2  3  4  5  6  7
    k    1  1  2  3  4  5  6  7
    i    2  2  1  2  3  4  5  6
    t    3  3  2  1  2  3  4  5
    t    4  4  3  2  1  2  3  4
    e    5  5  4  3  2  2  3  4
    n    6  6  5  4  3  3  2  3

Когда использовать редакционное расстояние:

  • Проверка и исправление орфографии
  • Выравнивание последовательностей ДНК (со взвешенными операциями)
  • Нечёткое сопоставление строк
  • Удаление дубликатов из неаккуратных текстовых данных

KL-дивергенция (не расстояние, но используется как оно)

KL-дивергенция измеряет, чем одно вероятностное распределение отличается от другого. Она разобрана в уроке 09, но относится к этому обсуждению, потому что её используют как «расстояние», хотя она им не является.

D_KL(P || Q) = sum(p(x) * log(p(x) / q(x)))

Критическое свойство: KL-дивергенция НЕ симметрична.

D_KL(P || Q) != D_KL(Q || P)

Значит, она не удовлетворяет базовому требованию метрики расстояния. Также она не удовлетворяет неравенству треугольника. Это дивергенция, а не расстояние.

Прямая KL (D_KL(P || Q)) «ищет среднее»: Q пытается покрыть все моды P. Обратная KL (D_KL(Q || P)) «ищет моду»: Q фокусируется на одной моде P.

Когда вы видите KL-дивергенцию:

  • VAE (член KL в ELBO подталкивает латентное распределение к априору)
  • Дистилляция знаний (ученик пытается совпасть с распределением учителя)
  • RLHF (штраф KL удерживает дообученную модель близко к базовой)
  • Методы policy gradient (ограничение обновлений политики)

Расстояние Вассерштейна (Earth Mover’s Distance)

Расстояние Вассерштейна измеряет минимальную «работу», нужную для преобразования одного вероятностного распределения в другое. Представьте, что одно распределение — куча земли, а другое — яма: сколько земли нужно переместить и на какое расстояние?

W(P, Q) = inf over all transport plans gamma of E[d(x, y)]

Для одномерных распределений оно упрощается до интеграла абсолютной разности функций распределения:

W_1(P, Q) = integral |CDF_P(x) - CDF_Q(x)| dx

Почему Вассерштейн важен:

  • Это настоящая метрика (симметрична, удовлетворяет неравенству треугольника)
  • Она даёт градиенты, даже когда распределения не перекрываются (KL-дивергенция уходит в бесконечность)
  • Это свойство сделало её центральной для Wasserstein GAN (WGAN), решившей нестабильность обучения исходных GAN
Distributions with no overlap:

P: [1, 0, 0, 0, 0]    Q: [0, 0, 0, 0, 1]

KL divergence: infinity (log of zero)
Wasserstein: 4 (move all mass 4 bins)

Wasserstein gives a meaningful gradient. KL does not.

Когда использовать Вассерштейн:

  • Обучение GAN (WGAN, WGAN-GP)
  • Сравнение распределений, которые могут не перекрываться
  • Задачи оптимального транспорта
  • Поиск изображений (сравнение цветовых гистограмм)

Почему разным задачам нужны разные расстояния

Задача Лучшее расстояние Почему
Сходство текстов Косинус Величина — шум, направление — смысл
Сравнение пикселей изображения L2 Пространственные отношения важны, признаки имеют сопоставимый масштаб
Разреженные признаки высокой размерности L1 Устойчиво, не усиливает редкие большие различия
Пересечение множеств (теги, категории) Жаккар Данные естественно заданы множествами, а не векторами
Сопоставление строк Редакционное расстояние Операции соответствуют человеческой интуиции редактирования
Обнаружение выбросов Махаланобис Учитывает корреляции и масштабы признаков
Сравнение распределений KL-дивергенция Измеряет потерю информации при использовании Q вместо P
Обучение GAN Вассерштейн Даёт градиенты, даже когда распределения не перекрываются
Вложения (векторная БД) Косинус или скалярное произведение Вложения обучены кодировать смысл направлением
Рекомендации Скалярное произведение Величина может кодировать популярность или уверенность
Последовательности ДНК Взвешенное редакционное расстояние Стоимости замен различаются для пар нуклеотидов
Контроль качества производства L-бесконечность Важно наихудшее отклонение в любом измерении

Связь с функциями потерь

Функции потерь — это функции расстояния, применённые к предсказаниям и целям.

Loss function       Distance it uses       Behavior
MSE                 L2 squared             Penalizes large errors heavily
MAE                 L1                     Penalizes all errors equally
Huber loss          L1 for large errors,   Best of both: robust to outliers,
                    L2 for small errors    smooth gradient near zero
Cross-entropy       KL divergence          Measures distribution mismatch
Hinge loss          max(0, margin - d)     Only penalizes below margin
Triplet loss        L2 (typically)         Pulls positives close, pushes
                                           negatives away
Contrastive loss    L2                     Similar pairs close, dissimilar
                                           pairs beyond margin

Связь с регуляризацией

Регуляризация добавляет к функции потерь штраф в виде нормы весов.

L1 regularization (Lasso):   loss + lambda * ||w||_1
  -> Sparse weights. Some weights become exactly zero.
  -> Automatic feature selection.
  -> Solution has corners (non-differentiable at zero).

L2 regularization (Ridge):   loss + lambda * ||w||_2^2
  -> Small weights. All weights shrink toward zero.
  -> No feature selection (nothing goes to exactly zero).
  -> Smooth solution everywhere.

Elastic Net:                  loss + lambda_1 * ||w||_1 + lambda_2 * ||w||_2^2
  -> Combines sparsity of L1 with stability of L2.
  -> Groups of correlated features are kept or dropped together.

Почему L1 порождает разреженность, а L2 — нет: представьте область ограничений в двумерном пространстве весов. L1 — ромб, L2 — круг. Контуры функции потерь (эллипсы) с наибольшей вероятностью касаются ромба в углу, где один вес равен нулю. Они касаются круга в гладкой точке, где оба веса ненулевые.

Поиск ближайших соседей

Каждая функция расстояния задаёт задачу поиска ближайших соседей: для точки запроса найти ближайшие точки в наборе данных.

Точный поиск ближайшего соседа имеет сложность O(n * d) на запрос в наборе из n точек размерности d. Для больших наборов данных это слишком медленно.

Алгоритмы приближённого поиска ближайших соседей (ANN) обменивают небольшую потерю точности на огромный выигрыш в скорости:

Algorithm         Approach                      Used by
KD-trees          Axis-aligned space partition   scikit-learn (low-dim)
Ball trees        Nested hyperspheres            scikit-learn (medium-dim)
LSH               Random hash projections        Near-duplicate detection
HNSW              Hierarchical navigable         FAISS, Qdrant, Weaviate
                  small-world graph
IVF               Inverted file index with       FAISS (billion-scale)
                  cluster-based search
Product quant.    Compress vectors, search       FAISS (memory-constrained)
                  in compressed space

HNSW (Hierarchical Navigable Small World) — доминирующий алгоритм современных векторных баз данных. Он строит многослойный граф, в котором каждый узел соединён со своими приблизительными ближайшими соседями. Поиск начинается на верхнем слое (разреженном, с длинными скачками) и спускается к нижнему слою (плотному, с короткими скачками).

norm-unit-balls

Соберите это

Шаг 1: все функции норм и расстояний

Полную реализацию смотрите в code/distances.py. Каждая функция построена с нуля, используя только базовую математику Python.

Шаг 2: одни данные, разные расстояния, разные соседи

Демонстрация в distances.py создаёт набор данных, выбирает точку запроса и показывает, как ближайший сосед меняется в зависимости от метрики расстояния. Точка, которая «ближе всего» по L1, может не быть ближе всего по L2 или косинусу.

Шаг 3: поиск сходства вложений

Код включает имитацию поиска сходства вложений: он находит наиболее похожие на запрос «документы» с помощью косинусного сходства и L2-расстояния, показывая, что ранжирования могут различаться.

Используйте это

Наиболее частое практическое применение — поиск похожих объектов в векторной базе данных.

import numpy as np

def cosine_similarity_matrix(X):
    norms = np.linalg.norm(X, axis=1, keepdims=True)
    norms = np.where(norms == 0, 1, norms)
    X_normalized = X / norms
    return X_normalized @ X_normalized.T

embeddings = np.random.randn(1000, 768)

sim_matrix = cosine_similarity_matrix(embeddings)

query_idx = 0
similarities = sim_matrix[query_idx]
top_k = np.argsort(similarities)[::-1][1:6]
print(f"Top 5 most similar to item 0: {top_k}")
print(f"Similarities: {similarities[top_k]}")

Когда вы вызываете model.encode(text), а затем ищете по векторной базе данных, именно это и происходит под капотом. Модель вложений отображает текст в векторы. Векторная база вычисляет косинусное сходство (или скалярное произведение) между вектором запроса и каждым сохранённым вектором, используя алгоритмы ANN, чтобы не проверять их все.

Упражнения

  1. Вычислите расстояния L1, L2 и L-бесконечность между (1, 2, 3) и (4, 0, 6). Проверьте, что для любой пары точек всегда выполняется L-inf <= L2 <= L1. Докажите, почему такой порядок гарантирован.

  2. Создайте два вектора, у которых косинусное сходство высоко (> 0.9), но L2-расстояние велико (> 10). Геометрически объясните происходящее. Затем создайте два вектора, у которых косинусное сходство низко (< 0.3), но L2-расстояние мало (< 0.5).

  3. Реализуйте функцию, которая принимает набор данных и точку запроса и возвращает ближайшего соседа по расстояниям L1, L2, косинусному и Махаланобиса. Найдите набор данных, в котором все четыре метрики не согласны с тем, какая точка ближайшая.

  4. Вычислите вручную расстояние Вассерштейна между [0.5, 0.5, 0, 0] и [0, 0, 0.5, 0.5] методом CDF. Затем вычислите его между [0.25, 0.25, 0.25, 0.25] и [0, 0, 0.5, 0.5]. Какое больше и почему?

  5. Реализуйте MinHash для приближённого сходства Жаккара. Сгенерируйте 100 случайных множеств, вычислите точный Жаккар для всех пар и сравните с приближением MinHash, использующим 50, 100 и 200 хеш-функций. Постройте график ошибки приближения.

Ключевые термины

Термин Что обычно говорят Что это в действительности означает
Норма «Размер вектора» Функция, отображающая вектор в неотрицательный скаляр и удовлетворяющая неравенству треугольника, абсолютной однородности и условию нуля только для нулевого вектора
Норма L1 «Манхэттенское расстояние» Сумма абсолютных значений компонент. Даёт разреженность в оптимизации. Устойчива к выбросам
Норма L2 «Евклидово расстояние» Квадратный корень из суммы квадратов компонент. Расстояние по прямой в евклидовом пространстве
Норма Lp «Обобщённая норма» Корень степени p из суммы p-х степеней абсолютных компонент. L1 и L2 — частные случаи
Норма L-бесконечность «Максимальная норма» или «расстояние Чебышёва» Максимальное абсолютное значение компоненты. Предел Lp при p, стремящемся к бесконечности
Косинусное сходство «Угол между векторами» Скалярное произведение, нормализованное по обеим величинам. От -1 до +1. Игнорирует длину вектора
Косинусное расстояние «1 минус косинусное сходство» Преобразует косинусное сходство в расстояние. От 0 до 2
Скалярное произведение «Ненормированный косинус» Сумма покомпонентных произведений. Равна косинусному сходству, умноженному на обе величины
Расстояние Махаланобиса «Расстояние с учётом корреляций» L2-расстояние в пространстве, отбелённом (декоррелированном и нормализованном) с помощью ковариации данных
Сходство Жаккара «Пересечение множеств» Размер пересечения, делённый на размер объединения. Для множеств, а не векторов
Редакционное расстояние «Расстояние Левенштейна» Минимум вставок, удалений и замен, чтобы преобразовать одну строку в другую
KL-дивергенция «Расстояние между распределениями» Не настоящая метрика (не симметрична). Измеряет дополнительные биты при использовании Q для кодирования P
Расстояние Вассерштейна «Расстояние перемещения земли» Минимальная работа по переносу массы из одного распределения в другое. Настоящая метрика
Приближённый ближайший сосед «Поиск ANN» Алгоритмы (HNSW, LSH, IVF), находящие приблизительно ближайшие точки намного быстрее точного поиска
HNSW «Алгоритм векторной БД» Граф Hierarchical Navigable Small World. Многослойный граф для быстрого приближённого поиска ближайших соседей
Регуляризация L1 «Lasso» Добавление нормы L1 весов к потере. Делает веса нулевыми (разреженность)
Регуляризация L2 «Ridge» или «weight decay» Добавление квадрата нормы L2 весов к потере. Сжимает веса к нулю без разреженности
Elastic Net «L1 + L2» Сочетает регуляризацию L1 и L2. Обрабатывает группы коррелированных признаков лучше, чем каждая по отдельности

Дополнительное чтение


Источник: оригинальная статья

01.13 — Численная устойчивость · Фаза 1 — Математические основы · Полный каталог · 01.15 — Статистика для машинного обучения