Основы машинного обучения - нормы
Норма определяется как функция, с помощью которой мы можем измерить величину вектора. Используя норму, мы можем измерить, насколько «велик» вектор. Норма отображает вектор в неотрицательное значение. Норма вектора x фактически является мерой расстояния от начала координат до точки x.
Более строго, норма - это любая функция со следующими свойствами:
- Нормы - это неотрицательные значения. Нормы - это на самом деле длина или расстояние. Таким образом, это не может быть отрицательное число. Но если вектор равен нулю, тогда норма может быть равна нулю.
- Нормы учитывают неравенство треугольника. Это просто означает, что норма суммы некоторых векторов меньше или равна сумме норм этих векторов: || x + y || ≤ || x || + || y ||
- || a⋅ x || = || a || ⋅ || x ||. Здесь a - скаляр, а x - вектор. Норма вектора, умноженная на скаляр, равна абсолютному значению этого скаляра, умноженному на норму вектора.
Применение норм
- Всякий раз, когда нам нужно вычислить функцию потерь, нам нужно знать величину расстояния между предполагаемыми и фактическими значениями.
- При регуляризации нам нужно знать величину весов.
- В машине опорных векторов мы должны найти гиперплоскость, которая имеет наибольшее перпендикулярное расстояние между гиперплоскостью и ближайшими образцами с каждой стороны. Здесь мы используем норму для вычисления этих расстояний.
Что касается машинного обучения, Нормы можно классифицировать следующим образом:
- Lᵖ Norm
- L¹ Norm (Манхэттен / расстояние такси)
- Евклидова норма (норма L²)
- Макс Норм
- Норма Фробениуса
Lᵖ Norm
Для p∈ℝ, p≥1, p-норма - это норма на подходящих вещественных векторных пространствах, заданная корнем p-й степени суммы (или интеграла) p-й степени абсолютных значений компонент вектора.
Используя следующий код Lᵖ Norm, можно реализовать:
# Import Numpy package and the norm function import numpy as np from numpy.linalg import norm # Define a vector v = np.array([2,3,1,0]) # Take the q-norm which p=2 p = 2 v_norm = norm(v, ord=p) # Print values print('The vector: ', v) print('The vector norm: ', v_norm)
Результат будет выглядеть так:
The vector: [2 3 1 0] The vector norm: 3.7416573867739413
L¹ Norm
Если p = 1, у нас просто сумма абсолютных значений. Это то, что мы интуитивно использовали в начале этого урока:
Евклидова норма (норма L²)
Норма L² рассчитывается как квадратный корень из суммы квадратов векторных значений. Норма L¹ более устойчива, чем норма L². Это означает, что норма L² более чувствительна к выбросам, так как значительные значения ошибок приведут к огромным квадратам ошибок.
Максимальная норма
L ∞ норма соответствует модулю наибольшего элемента вектора.
Это код Python Max Normal-
# max norm of a vector from numpy import inf from numpy import array from numpy.linalg import norm v = array([1, 2, 3]) print(v) maxnorm = norm(v, inf) print(maxnorm)
Запустив этот код, вы должны получить следующий вывод:
[1, 2, 3] 3.00
Норма Фробениуса
Это эквивалентно принятию L² нормы матрицы после выравнивания. Норма L² предназначена для векторов, а Фробениус - для матриц.
max norm of a vector
from numpy import inf
from numpy import array
from numpy.linalg import norm
v = array([1, 2, 3])
print(v)
np.linalg.norm(v)
вы должны получить следующий вывод:
8.3666002653407556
Спасибо!
На сегодня все. Не забудьте рассказать эту историю своим друзьям и подарите нам свой 👏!