Produto Interno e Normas
intermediario algebra-linear machine-learning, computacao-graficaProduto 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
| Norma | Fórmula | Nome | Uso |
|---|---|---|---|
| $|x|_1$ | $\sum \lvert x_i \rvert$ | Manhattan | Regularização esparsa |
| $|x|_2$ | $\sqrt{\sum x_i^2}$ | Euclidiana | Distância usual |
| $|x|_\infty$ | $\max \lvert x_i \rvert$ | Máximo | Erro de pior caso |
| $|x|_p$ | $(\sum \lvert x_i \rvert^p)^{1/p}$ | Geral | Interpolaçã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
- Lloyd N. Trefethen; David Bau III (1997). Numerical Linear Algebra. SIAM.
- Stephen Boyd; Lieven Vandenberghe (2004). Convex Optimization. Cambridge University Press.