Normas e Métricas de distâncias

Como fazemos comparações? Como nós conseguimos identificar qual indivíduo é o mais alto ou o mais pesado? Quando desejamos medir ou comparar a altura ou o peso de alguém precisamos de um instrumento de medida como uma fita métrica ou um balança, respectivamente. De forma análoga ao caso humano, máquinas também precisam de “ferramentas” que possibilitem a realização de medições e comparações entre os dados. Em aprendizagem de máquina a tarefa de medir o comprimento de algum conjunto de características é normalmente realizada por uma norma. E a comparação entre o grau de semelhança ou dissemelhança entre duas amostras diferentes é normalmente realizada por uma distância. Normas e distâncias, na realidade, não são coisas distintas e estão fortemente relacionadas. Abaixo tratamos de normas e distâncias com mais detalhes.

Norma

Uma norma de um vetor (ex. em um subespaço $\mathbb{R}^n$ ou, genericamente, $\mathbb{X}$ ) é um tipo de medida de comprimento em $\mathbb{R}^1$. Matematicamente, uma norma de um vetor é uma função do tipo $p:\mathbb{X} \rightarrow \mathbb{R}^1$ que deve obedecer as seguintes propriedades básicas:

Não negativa

\[ \| \vec{a} \| \geq 0 \]

Positiva definida

\[ \| \vec{a} \| = 0 \iff \vec{a}=\vec{0} \]

Homogeneidade absoluta

\[ \|s \cdot \vec{a} \|=|s| \cdot \|\vec{a}\| \]

Subaditiva/Desigualdade triangular

\[ \| \vec{a}+\vec{b} \| \leq \| \vec{a} \|+ \| \vec{b}\| \]

Qualquer função que obedecer a estas quatro propriedades básicas pode ser considerada uma norma. E existem uma infinidade de funções que podem ser utilizadas como normas.

Uma família de normas muito conhecida são as normas-p, dadas pela seguinte expressão:

\[ {\| \vec{a} \|}_{p}= { \left ( \sum_{i=0}^{n} {|a_i|}^p \right ) }^{\frac{1}{p} } \]

O valor de $p$ na expressão acima precisa ser maior ou igual a 1 ($p \geq 1$) para que expressão da norma-p atenda as propriedades básicas de uma norma.

A norma-p para $p=1$ é a norma “taxicab” ou $L^1$:

\[ {\| \vec{a} \|}_{1}= \sum_{i=0}^{n} {|a_i|} \]

A norma-p para $p=2$ é a conhecida norma Euclidiana ou $L^2$:

\[ {\| \vec{a} \|}_{2}= { \left ( \sum_{i=0}^{n} {|a_i|}^2 \right ) }^{\frac{1}{2} } \]

Uma curiosidade sobre a norma Euclidiana em Aprendizagem de Máquina é que em 99% das vezes em que se diz que ela é utilizada, na realidade, é utilizado o quadrado dessa norma. Ou seja:

\[ {{\| \vec{a} \|}_{2}}^{2} = \left ( \sum_{i=0}^{n} {|a_i|}^2 \right ) \]

Isso se deve ao fato que a norma Euclidiana e a norma Euclidiana ao quadrado produzem exatamente os mesmos resultados quando aplicadas em procedimentos de classificação ou regressão. E a norma Euclidiana ao quadrado tem a grande vantagem de ser computacionalmente mais rápida por evitar a operação de radiciação.

A norma-p para $p=\infty$ é conhecida como norma infinita (“infinity norm” ou “maximum norm”) ou ou $L^{\infty}$:

\[ {\| \vec{a} \|}_{\infty}= { MAX_{i=0}^{n} {|a_i|} } \]

Essa é uma expressão um pouco diferente das anteriores. Entretanto, pode ser obtida facilmente fazendo a expressão de uma norma-p tender assintoticamente para o infinito. Na realidade, basicamente, qualquer norma-p com p>2 vai tender rapidamente para a expressão acima. Ou seja o maior componente do vetor $\vec{a}$ domina rapidamente o valor da norma. É por essa razão que praticamente ninguém utiliza normas-p diferentes com $p=3$, $p=4$, etc. Basicamente, todas as normas-p com p>2 produzem resultados muito semelhantes.

Uma curiosidade sobre o assunto, o “L” utilizado como notação para representar as normas-p é uma homenagem ao importante matemático Henri Lebesgue. A notação varia um pouco. Normalmente quando é utilizada se referindo a normas e espaços, o “$p$” é colocado como um expoente ($L^p$). Entretanto, em alguns casos é possível observer o $p$ como um índice ($L_p$). Esse ultima notação é mais conveniente quando se esta trabalhando com potências de normas.

Existem mais tipos de normas, mas podemos dizer que as normas $L^1$, $L^2$ e $L^{\infty}$ são as mais comuns em aprendizagem de máquina.

Distâncias

Uma distância, assim como uma norma, também deve obedecer algumas propriedades fundamentais, tais como:

Distância zero entre elementos iguais

\[ d(\vec{a},\vec{a})= 0 \]

Não negativa

\[ d(\vec{a},\vec{b}) \geq 0 \]

Comutatividade

\[ d(\vec{a},\vec{b})= d(\vec{b},\vec{a}) \]

Desigualdade triangular

\[ d(\vec{a},\vec{b})+d(\vec{b},\vec{c}) \geq d(\vec{a},\vec{c}) \]

Qualquer função que obedecer a estas quatro propriedades básicas pode ser considerada uma distância. Assim como no caso das normas, existem também uma infinidade de funções que podem ser utilizadas como distâncias.

Uma distância também pode ser definida como uma norma de uma diferença entre dois vetores, ou seja:

\[ d(\vec{a},\vec{b})=\| \vec{a} – \vec{b} \| \]

Utilizando a definição acima, podemos dizer que, essencialmente, para cada norma existe uma correspondente distância associada. Assim, temos:

  1. Distância Manhattan – Quando utilizamos a norma-p $L^1$, $d(\vec{a},\vec{b})=\| \vec{a} – \vec{b} \|_1$.
  2. Distância Euclidiana – Quando utilizamos a norma-p $L^2$, $d(\vec{a},\vec{b})=\| \vec{a} – \vec{b} \|_2$.
  3. Distância Euclidiana ao quadrado – Quando utilizamos $(L^2)^2$, $d(\vec{a},\vec{b})=(\| \vec{a} – \vec{b} \|_2)^2$.
  4. Distância Maxima de Chebyshev – Quando utilizamos a norma-p $L^\infty$, $d(\vec{a},\vec{b})=\| \vec{a} – \vec{b} \|_\infty$.

Em aprendizagem de máquina, a distância Euclidiana ao quadrado é, de longe, a métrica de distância mais comum e normalmente a que produz melhores resultados de regressão e classificação. Entretanto, as distâncias Manhattan e Maxima são muito empregadas em aplicações onde o tempo de processamento é crítico, por serem métricas de baixo custo computacional.

Para exemplos de aplicação destas métricas e mais detalhes de como elas são utilizadas em aprendizagem de máquina recomendo a leitura dos seguintes posts:

  1. Classificador de distância mínima
  2. Classificador KNN

That’s all folks!


Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *