Produto Interno e Normas

intermediario algebra-linear machine-learning, computacao-grafica

Produto Interno e Normas

Produto interno e norma acrescentam geometria ao espaço vetorial: comprimento, ângulo, distância e ortogonalidade. Sem eles, um espaço vetorial não sabe o que é "perto".

Produto interno

Em $\mathbb{R}^n$:

$$\langle u, v \rangle = u^Tv = \sum_{i=1}^{n} u_iv_i$$

Propriedades: simetria, linearidade em cada argumento e positividade ($\langle v,v\rangle > 0$ para $v \ne 0$).

A relação com ângulo é o que dá significado geométrico:

$$\langle u, v \rangle = |u||v|\cos\theta$$

Daí: $\langle u,v\rangle = 0$ significa ortogonalidade; positivo significa ângulo agudo; negativo, obtuso.

Normas vetoriais

NormaFórmulaNomeUso
$|x|_1$$\sum \lvert x_i \rvert$ManhattanRegularização esparsa
$|x|_2$$\sqrt{\sum x_i^2}$EuclidianaDistância usual
$|x|_\infty$$\max \lvert x_i \rvert$MáximoErro de pior caso
$|x|_p$$(\sum \lvert x_i \rvert^p)^{1/p}$GeralInterpolação entre as anteriores

Toda norma satisfaz positividade, homogeneidade ($|cx| = |c||x|$) e desigualdade triangular ($|x+y| \le |x| + |y|$).

Em dimensão finita todas as normas são equivalentes — cada uma limita a outra por constantes. Isso significa que convergência não depende da norma escolhida; o que depende é a geometria da bola unitária, e é aí que a escolha importa na prática.

A bola unitária de $\ell_1$ é um losango com vértices sobre os eixos; a de $\ell_2$ é uma esfera. Quando um problema de otimização é resolvido dentro dessas bolas, a de $\ell_1$ tende a produzir soluções nos vértices — isto é, com coordenadas exatamente nulas. É essa a razão geométrica de a regularização $L_1$ (LASSO) produzir modelos esparsos, e a $L_2$ (Ridge) apenas encolher os coeficientes sem zerá-los.

Desigualdade de Cauchy-Schwarz

$$|\langle u,v\rangle| \le |u|,|v|$$

com igualdade se e somente se $u$ e $v$ são paralelos. É a desigualdade mais usada da matemática aplicada, e o que garante que $\cos\theta$ definido acima fique entre $-1$ e $1$.

Similaridade do cosseno

$$\text{sim}(u,v) = \frac{\langle u,v\rangle}{|u||v|} \in [-1,1]$$

Mede alinhamento ignorando magnitude. É a métrica padrão para comparar embeddings de texto, documentos em modelo vetorial e vetores de recomendação — em todos esses casos, o que importa é a direção, não o tamanho.

import numpy as np

def cosseno(u, v):
    return np.dot(u, v) / (np.linalg.norm(u) * np.linalg.norm(v))

Se os vetores forem previamente normalizados, a similaridade do cosseno vira simples produto interno — o que permite usar produto matricial e busca por vizinho mais próximo com aceleração de hardware. É o truque usado por todo banco de dados vetorial.

Normas matriciais

Norma de Frobenius, análoga à euclidiana:

$$|A|F = \sqrt{\sum{i,j} a_{ij}^2} = \sqrt{\operatorname{tr}(A^TA)}$$

Normas induzidas, que medem o fator máximo de ampliação:

$$|A|p = \max{x \ne 0} \frac{|Ax|_p}{|x|_p}$$

  • $|A|_1$: maior soma absoluta de coluna.
  • $|A|_\infty$: maior soma absoluta de linha.
  • $|A|_2$: maior valor singular.

Normas induzidas são submultiplicativas: $|AB| \le |A||B|$. É essa propriedade que permite estimar propagação de erro em cadeias de operações, e é a base da definição do número de condição $\kappa(A) = |A||A^{-1}|$.

Projeção ortogonal

A projeção de $v$ sobre $u$:

$$\operatorname{proj}_u(v) = \frac{\langle v,u\rangle}{\langle u,u\rangle}u$$

Projeção sobre um subespaço com base ortonormal ${q_1,\dots,q_k}$:

$$\operatorname{proj}(v) = \sum_{i=1}^{k} \langle v,q_i\rangle q_i$$

Essa fórmula é o coração de mínimos quadrados (projetar $b$ no espaço coluna de $A$), de Gram-Schmidt e de toda análise em bases ortonormais, incluindo Fourier.

Exemplo trabalhado

Para $u = (3,4)$ e $v = (1,0)$:

$$|u|_2 = 5, \quad |u|1 = 7, \quad |u|\infty = 4$$

$$\langle u,v\rangle = 3, \quad \cos\theta = \frac{3}{5 \cdot 1} = 0{,}6$$

Cauchy-Schwarz confere: $|3| \le 5 \cdot 1$.

Aplicações em computação

Busca vetorial. Bancos como FAISS e pgvector indexam por distância euclidiana ou cosseno; a escolha muda os resultados e precisa ser consistente com o modelo de embedding usado.

Regularização. $L_1$ para esparsidade, $L_2$ para estabilidade; a escolha é uma decisão de modelagem, não de gosto.

Análise de erro. Normas matriciais quantificam como o erro se propaga em cadeias de operações numéricas.

Gráficos. Normalizar vetores normais é obrigatório para iluminação correta; a norma euclidiana aparece em toda medida de distância.

Erros comuns

  • Comparar distâncias euclidianas entre atributos de escalas diferentes, sem padronizar.
  • Confundir similaridade do cosseno com distância. Similaridade maior é melhor; distância menor é melhor.
  • Esquecer a normalização antes de calcular cosseno.
  • Usar norma errada no índice vetorial em relação à usada no treino do modelo.
  • Calcular $|A|_2$ pela definição. É o maior valor singular; obtenha-o da SVD.

Leituras recomendadas

  • Trefethen e Bau, lições 1 a 3 — normas e condicionamento apresentados com clareza exemplar.
  • Boyd e Vandenberghe, capítulo sobre normas — a conexão com otimização convexa; o livro é gratuito no site de Stanford.
  • Documentação do FAISS e do pgvector — como a escolha de métrica afeta índice e resultado.

Lloyd N. Trefethen and David Bau III (1997). Numerical Linear Algebra. SIAM. DOI: 10.1137/1.9780898719574. Stephen Boyd and Lieven Vandenberghe (2004). Convex Optimization. Cambridge University Press. DOI: 10.1017/cbo9780511804441.

Referências

  1. Lloyd N. Trefethen; David Bau III (1997). Numerical Linear Algebra. SIAM.
  2. Stephen Boyd; Lieven Vandenberghe (2004). Convex Optimization. Cambridge University Press.