A Beleza da Álgebra Linear
Introdução
A Álgebra Linear é frequentemente chamada de "o cavalo de batalha" da ciência de dados. Sem ela, não teríamos redes neurais, processamento de imagem ou até mesmo este website.
A ideia central é simples e poderosa: quando organizamos números em vetores e matrizes, ganhamos uma linguagem capaz de descrever transformações geométricas, sistemas de equações e modelos estatísticos de forma compacta, e, principalmente, eficiente para um computador calcular.
Neste artigo vamos partir do conceito mais básico, o vetor, e construir progressivamente até entender por que toda rede neural moderna é, no fundo, uma sequência de multiplicações de matrizes.
O Conceito de Vetor
Um vetor não é apenas uma seta no espaço. Em computação, é uma lista ordenada de números:
Cada número é uma componente, e a quantidade de componentes define a dimensão do vetor. O vetor acima vive em (o espaço tridimensional).
Em Machine Learning, um vetor costuma representar um único exemplo de dado. Imagine descrever uma casa por três atributos: área, número de quartos e idade:
Cada feature (característica) vira uma componente. É assim que transformamos o mundo real em algo que um algoritmo consegue processar.
Código em Python
Podemos representar isso facilmente com NumPy:
import numpy as np
v = np.array([1, 2, 3])
print(f"O meu vetor: {v}")
print(f"Dimensão: {v.shape}")
Operações Fundamentais
Duas operações sustentam quase tudo na área: a soma de vetores e a multiplicação por escalar.
Quando multiplicamos um vetor por um número (escalar), estamos esticando ou encolhendo a seta sem mudar sua direção:
u = np.array([1, 0, 2])
v = np.array([3, 1, 1])
print("Soma: ", u + v)
print("Escalar 2*v: ", 2 * v)
O Produto Escalar
O produto escalar (dot product) combina dois vetores em um único número e é a peça mais reutilizada de toda a Álgebra Linear aplicada:
Ele responde a uma pergunta geométrica fundamental: o quão alinhados dois vetores estão, porque se relaciona com o ângulo entre eles:
É exatamente esse cálculo que mede a similaridade entre um texto e uma busca, ou entre dois usuários num sistema de recomendação.
u = np.array([1, 0, 2])
v = np.array([3, 1, 1])
print("Produto escalar:", np.dot(u, v)) # 1*3 + 0*1 + 2*1 = 5
Matrizes: Vários Vetores de Uma Vez
Uma matriz é uma grade retangular de números ou, de forma mais útil, uma coleção de vetores empilhados. Um conjunto de dados (dataset) inteiro é uma matriz: cada linha é um exemplo, cada coluna é uma feature.
Aqui temos três casas (linhas) descritas por três features (colunas).
A Multiplicação de Matrizes
A operação mais importante é o produto de matrizes. Para multiplicar (de tamanho ) por (de tamanho ), cada elemento do resultado é um produto escalar entre uma linha de e uma coluna de :
O detalhe que todo iniciante precisa memorizar: o número de colunas da primeira matriz deve ser igual ao número de linhas da segunda. O resultado terá o formato .
A = np.array([[1, 2],
[3, 4]])
B = np.array([[5, 6],
[7, 8]])
# Em NumPy, o operador @ faz a multiplicação de matrizes
print(A @ B)
# [[19 22]
# [43 50]]
A Ponte com o Machine Learning
Agora a recompensa. Considere um modelo de regressão linear, que prevê um valor a partir de features. Para um único exemplo, a previsão é:
Repare: a previsão é um produto escalar entre os pesos (o que o modelo aprende) e as features (o dado de entrada).
E quando queremos prever todos os exemplos do dataset de uma só vez, basta uma multiplicação de matrizes:
Não há laço de repetição percorrendo casa por casa. Uma única operação matricial calcula tudo. É por isso que GPUs, otimizadas para multiplicar matrizes gigantescas, revolucionaram a área.
# Dataset: 3 casas, 2 features (área, nº de quartos)
X = np.array([[120, 3],
[85, 2],
[200, 4]])
# Pesos aprendidos pelo modelo e o viés (bias)
w = np.array([1000, 50000])
b = 20000
# Uma linha calcula a previsão para TODAS as casas
y_hat = X @ w + b
print("Preços previstos:", y_hat)
E as Redes Neurais?
Uma rede neural é, essencialmente, várias camadas dessas multiplicações encadeadas, com uma função de ativação não-linear entre elas:
Empilhe dezenas dessas camadas e você terá os modelos que reconhecem imagens, traduzem idiomas e geram texto. Por baixo de toda essa complexidade, continua sendo Álgebra Linear.
Conclusão
Começamos com uma simples lista de números e chegamos ao coração das redes neurais. A beleza da Álgebra Linear está justamente nisso: poucos conceitos como vetor, produto escalar e multiplicação de matrizes, combinam-se para descrever desde a geometria do espaço até os modelos de IA mais avançados.
Da próxima vez que treinar um modelo, lembre-se: você não está apenas ajustando parâmetros, está dançando com vetores e matrizes em espaços de dimensão altíssima.
Próximo passo: explore autovalores e autovetores a base de técnicas como o PCA (Análise de Componentes Principais), usadas para reduzir a dimensionalidade dos dados sem perder o que importa.
Gostou? Continue acompanhando o blog para mais conexões entre matemática e tecnologia.
Gostou deste artigo? Inscreva-se na newsletter.