Cálculo de normas P vectoriales – Álgebra lineal para ciencia de datos -IV
Principios matemáticos que sustentan los métodos de regularización en Machine Learning
Harshit Tyagi
5 de septiembre de 2020·6 min de lectura
En la Serie de Álgebra Lineal, para darle un resumen rápido, hemos aprendido qué son los vectores, matrices y tensores, cómo calcular el producto escalar para resolver sistemas de ecuaciones lineales y qué son las matrices de identidad e inversas.
Continuando con la serie, el siguiente tema muy importante es Normas vectoriales.
Entonces,
¿Qué son las normas vectoriales?
Las normas vectoriales son funciones que asignan un vector a un valor positivo que es la magnitud del vector o la longitud del vector. Ahora bien, existen diferentes funciones que nos ofrecen diferentes formas de calcular las longitudes de los vectores.
Eso esta bien pero por qué ¿Estamos estudiando esto y qué representa esta longitud de vector…?
¿Por qué conocer las Normas?
Las normas son un concepto muy importante en machine learning y deep learning que generalmente se utiliza para calcular el error en las predicciones de un modelo ML / DL.
La longitud del vector generalmente representa el error entre la predicción y la observación real (etiqueta).
A menudo necesitamos calcular la longitud o la magnitud de los vectores para usarlos directamente como método de regularización en ML o como parte de operaciones de vectores o matrices más amplias.
Entonces, ¿qué tipo de funciones son estas?
Características de las funciones Norm
Las normas son funciones que se caracterizan por las siguientes propiedades:
- Las normas devuelven valores no negativos porque es la magnitud o la longitud de un vector que no puede ser negativo.
- Las normas son 0 si y solo si el vector es un vector cero.
- Las normas siguen la desigualdad del triángulo, es decir, la norma de la suma de dos (o más) vectores es menor o igual que la suma de las normas de los vectores individuales. Simplemente establece que geométricamente, el camino más corto entre dos puntos es una línea.
Representado por la ecuación:
∥a + b∥≤∥a∥ + ∥b∥
donde ayb son dos vectores y las barras verticales ∥ generalmente denotan la norma. - La norma de un vector multiplicada por un escalar es igual al valor absoluto de este escalar multiplicado por la norma del vector.
Representando la ecuación: ∥k⋅X∥ = | k | ⋅∥X∥
Pasos para calcular las normas P
El cálculo de una norma P se basa en la fórmula central:
∥X∥ₚ= (∑ᵢ |Xᵢ | ᵖ) ¹ / ᵖ
Aquí hay un proceso rápido de 4 pasos para obtener la p-norma de un vector
- Obtén el valor absoluto de cada elemento del vector.
- Eleva estos valores absolutos a una potencia pag.
- Calcule la suma de todos estos valores absolutos elevados.
- Consigue el pagₜₕ arraigue o aumente la potencia a 1 / p sobre el resultado del paso anterior.
Ahora, basado en el valor de PAG en la formula, obtenemos diferentes tipos de normas. Analicemos estos uno por uno:
Norma L⁰
Poniendo p = 0 en la fórmula nos dará la norma L⁰.
Cualquier cosa elevada a la potencia 0 devolverá 1 excepto 0. L⁰ no es realmente una norma porque no exhibe la característica # 4(descrito arriba). Multiplicar una constante nos dará ese número en sí.
Norma L¹
Poniendo p = 1 nos da la norma L¹. Básicamente, la fórmula estaría calculando la suma de los valores absolutos del vector.
Fórmula: | x | ₁ = (∑ᵢ | xᵢ |)
Se utiliza para calcular el error absoluto medio.
Código Python
Podemos obtener la norma L¹ usando el módulo de álgebra lineal del paquete Numpy que ofrece un método norm (). De forma predeterminada, la función de norma está configurada para calcular la norma L2, pero podemos pasar el valor de p como argumento. Entonces, para la norma L¹, le pasaremos 1:
from numpy import linalg#creating a vector
a = np.array([1,2,3])#calculating L¹ norm
linalg.norm(a, 1)##output: 6.0
Norma L²
Poniendo p = 2 nos consigue la norma L². La fórmula sería calcular la raíz cuadrada de la suma de los cuadrados de los valores del vector.
También conocida como norma euclidiana. Esta es una norma ampliamente utilizada en el aprendizaje automático que se utiliza para calcular el error cuadrático medio de la raíz.
∥x∥₂ = (∑ᵢ xᵢ²) ¹ / ²
Entonces, para un vector u, L² Norm se convertiría en:
Código Python
Nuevamente, usando la misma función de norma, podemos calcular la Norma L²:
norm(a) # or you can pass 2 like this: norm(a,2)## output: 3.7416573867739413
Norma L² al cuadrado
∑ᵢ | xᵢ | ²
La norma L2 al cuadrado es simplemente la norma L2 pero sin la raíz cuadrada. Al elevar al cuadrado la norma L2 calculada anteriormente, obtendremos la norma L2.
Es conveniente porque elimina la raíz cuadrada y terminamos con la suma simple de cada valor al cuadrado del vector.
La norma euclidiana al cuadrado se usa ampliamente en el aprendizaje automático en parte porque se puede calcular con la operación vectorial XᵀX.
Código Python
Verifiquemos esto en el código de Python:
x = np.array([[1], [3], [5], [7]])
euclideanNorm = x.T.dot(x)## output: array([[84]])np.linalg.norm(x)**2
##ouput: 84.0
La norma máxima
Esta es la norma L∞ que simplemente devuelve el valor absoluto del elemento más grande del vector.
La fórmula se convierte en:
‖X‖∞ = maxᵢ | xᵢ |
Código Python
Verifiquemos esto en el código de Python, simplemente necesitaremos pasar infinito a la función de norma:
x = np.array([[1], [3], [5], [7]])
norm(x, np.inf)##output: 7.0
Puedes jugar con todos los códigos de Python aquí:
Colaboratorio de Google
Calcular normas
colab.research.google.com
Visualizaciones gráficas
Intentemos analizar las gráficas gráficamente. He usado la misma fórmula en 2 dimensiones (x, y) y la 3ª dimensión representa la norma en sí.
Puede ver este trazador de superficie que utilicé para obtener estos gráficos.
Norma L¹
Más bien planos unidos entre sí. X e Y son los parámetros aquí.
Norma L²
Norma L² al cuadrado
La norma L2 al cuadrado y la norma L2 parecen similares, pero hay una diferencia importante aquí con respecto a la inclinación de la parcela cerca de la marca cero (en la región azul central). La norma cuadrada L2 no diferencia bien entre cero y otros valores más pequeños. Por tanto, esto descubre un problema con su uso.
Resumen
En este tutorial, analizamos diferentes formas de calcular longitudes o magnitudes vectoriales, llamadas normas vectoriales.
Específicamente, aprendimos cómo:
- Calcule la norma L1 que se calcula como la suma de los valores absolutos del vector.
- calcule la norma L2 que se calcula como la raíz cuadrada de la suma de los valores del vector al cuadrado.
- Calcule la norma máxima que se calcula como los valores máximos del vector.