Funções são vetores
(thenumb.at)- Ao tratar funções como vetores de dimensão infinita, é possível descrever problemas como processamento de imagens e geometria, ajuste de curvas e machine learning na linguagem da álgebra linear
- O espaço de funções reais satisfaz os axiomas de espaço vetorial ao somar valores entre funções e escalar suas saídas; polinômios podem ser representados por bases como (1,x,x^2,\dots)
- Como a derivação preserva combinações lineares, ela se torna um operador linear e, na base dos polinômios, pode ser vista como uma matriz infinita agindo sobre um vetor de coeficientes
- Ao definir o produto interno por integração, também é possível tratar comprimento, ortogonalidade e bases ortonormais em espaços de funções, e operadores autoadjuntos se conectam ao teorema espectral
- A perspectiva de diagonalizar o Laplaciano unifica a explicação de mudança de base e compressão em Fourier series, compressão de imagens 2D, spherical harmonics e processamento geométrico baseado no Laplaciano de malha
Como ver funções como vetores
- Vetores geralmente começam como listas de números reais, mas espaços vetoriais também podem incluir outros objetos, como listas de números complexos, ciclos em grafos e quadrados mágicos
- Um vetor de dimensão (N) é uma lista de comprimento (N), mas também pode ser interpretado como um mapeamento de índices para valores
- Em domínios contavelmente infinitos, como os números naturais, uma função pode ser representada como uma lista infinitamente longa
- Ex.: (\mathbf{v}_i=i) pode representar (f(x)=x) para (x\in\mathbb{N})
- Em domínios infinitos não enumeráveis, como os números reais, não é possível atribuir um índice inteiro a cada elemento, então a representação em lista deixa de funcionar
- Nesse caso, um vetor passa a se parecer com uma função arbitrária
- A análise funcional trata das definições precisas para representar funções como vetores de dimensão infinita
- O objetivo aqui não é provar rigorosamente resultados de dimensão infinita, mas construir intuição por analogia com a álgebra linear de dimensão finita
Como um espaço de funções vira um espaço vetorial
- No espaço de funções reais, o corpo escalar é (\mathbb{R}), o conjunto de vetores são funções (\mathbb{R}\to\mathbb{R}), e o vetor nulo é a função que retorna 0 para toda entrada
- A soma de funções adiciona os valores das duas funções para a mesma entrada
- ((f+g)[x]=f[x]+g[x])
- Isso generaliza a soma elemento a elemento dos vetores sob a perspectiva de índices de função
- A multiplicação por escalar redimensiona a saída da função
- ((\alpha f)[x]=\alpha f[x])
- Corresponde à operação vetorial de escalar o valor em cada índice
- Com essas definições, é possível provar comutatividade e associatividade da soma, vetor nulo, inverso aditivo e identidade, associatividade e distributividade da multiplicação por escalar
- A base padrão para funções pode ser pensada como as funções de base (\mathbf{e}_\alpha), que valem 1 apenas no índice (\alpha) e 0 em todos os outros
- Como os números reais têm uma quantidade não enumerável dessas funções de base, é difícil escrevê-las como uma soma simples, mas isso dá a intuição de que, para uma entrada específica (x), apenas (\mathbf{e}_x) permanece
Operadores lineares e derivação
- Matrizes codificam transformações lineares que preservam combinações lineares, e seus vetores-coluna podem ser interpretados como definindo uma nova base
- Se também virmos funções como vetores, podemos imaginar um objeto de dimensão infinita correspondente a uma matriz, denotado por um operador linear (\mathcal{L})
- Na prática, não é possível escrever todos os operadores de dimensão infinita não enumerável como matrizes
- Ainda assim, a estrutura em que cada “coluna” representa uma nova função de base é útil
- A derivação satisfaz linearidade
- (\frac{\partial}{\partial x}(\alpha f[x]+\beta g[x])=\alpha\frac{\partial f}{\partial x}+\beta\frac{\partial g}{\partial x})
- No espaço dos polinômios (\mathcal{P}), (1,x,x^2,x^3,\dots) formam uma base contavelmente infinita
- (p[x]=a+bx+cx^2+dx^3+\cdots) pode ser escrito como o vetor de coeficientes ([a,b,c,d,\dots]^T)
- A derivação é representada por uma matriz infinita que transforma o vetor de coeficientes em ([b,2c,3d,\dots]^T)
- Funções analíticas podem ser representadas por uma Taylor series em torno de 0, portanto podem ser escritas como combinação linear da base de polinômios
- A Taylor expansion corresponde a uma mudança de base para a base de potências
Diagonalização e autofunções
- Em dimensão finita, uma matriz (\mathbf{A}) pode ser diagonalizada se tiver autovetores linearmente independentes suficientes e autovalores reais
- (\mathbf{A}=\mathbf{U\Lambda U^{-1}})
- O processo consiste em mudar para a autobase, escalar pelos autovalores e voltar à base padrão
- Em espaços de funções, também podemos considerar autofunções que satisfazem (\mathcal{L}f=\psi f) para um operador linear (\mathcal{L})
- As autofunções do operador derivada têm a forma (p_0e^{\psi x})
- A série da função exponencial aparece a partir da condição dos coeficientes (p_i=\frac{\psi^i}{i!}p_0)
- Mas não é possível diagonalizar a derivação em todo o espaço de funções analíticas reais usando uma base de exponenciais
- Se assumirmos que (f[x]=x) pode ser representada como combinação linear de exponenciais, surge uma contradição ao diferenciar a expressão duas vezes
- Problemas semelhantes aparecem com funções não constantes cuja derivada de ordem (n) é 0, ou com funções periódicas como sine e cosine
- Ao estender para o espaço de funções complexas, mais operadores podem ser diagonalizados
- A derivação pode ser diagonalizada no espaço de funções (\mathbb{C}\to\mathbb{C}) via Laplace transform
- A Laplace transform é útil para resolver equações diferenciais, mas a transformada inversa não é simples, então não será tratada aqui
Produto interno de funções e teorema espectral
- O produto interno euclidiano mede quanto um vetor aponta na direção de outro, e o produto interno com ele mesmo dá o quadrado do comprimento
- Em espaços de funções, o produto interno é definido trocando a soma finita por sua contraparte contínua, a integral
- Funções reais: (\langle f,g\rangle=\int_a^b f[x]g[x],dx)
- Funções complexas: (\langle f,g\rangle=\int_a^b f[x]\overline{g[x]},dx)
- Nem toda função é integrável, então o espaço com produto interno é restringido às funções quadrado-integráveis no intervalo ([a,b])
- ([a,b]) também pode ser ([-\infty,\infty])
- O produto interno em funções complexas deve satisfazer simetria conjugada, linearidade no primeiro argumento e definição positiva
- Para tratar rigorosamente a definição positiva, usam-se classes de equivalência de funções que são 0 “quase em toda parte”
- O teorema espectral se generaliza para espaços de funções, e operadores autoadjuntos têm autovalores reais e uma autobase ortonormal
- Em dimensão finita, matrizes simétricas têm uma autobase ortonormal, e a recíproca também vale
- Em dimensão infinita, as condições e provas rigorosas são mais complexas
Diagonalização do Laplaciano
- Em funções unidimensionais, o Laplaciano é a segunda derivada
- (\Delta f=\frac{\partial^2 f}{\partial x^2})
- Usando integração por partes duas vezes, é possível verificar que o Laplaciano tem uma propriedade próxima da autoadjunta
- O termo de fronteira ((f^\prime[x]g[x]-f[x]g^\prime[x])|_a^b) deve ser 0
- Para isso, restringe-se o domínio a funções periódicas com período (b-a)
- Para simplificar, o intervalo é tomado como ([0,1])
- As autofunções periódicas do Laplaciano são da forma (e^{2\pi \xi i x}), com (\xi) inteiro
- Pela fórmula de Euler, a perspectiva em termos de sine e cosine corresponde à perspectiva em exponenciais complexas
- Os autovalores são (-(2\pi\xi)^2)
- Essas autofunções são mutuamente ortogonais em ([0,1]) e têm norma 1
- Quando (\xi_1-\xi_2) é um inteiro não nulo, o produto interno é 0
- O produto interno de uma função com ela mesma é 1
- Transformar para a autobase ortonormal do Laplaciano equivale a calcular coeficientes de Fourier
- (\hat{f}[\xi]=\int_0^1 f[x]e^{-2\pi\xi i x},dx)
- A transformada inversa é (f[x]=\sum_{\xi=-\infty}^{\infty}\hat{f}[\xi]e^{2\pi\xi i x})
- O Laplaciano completo mapeia funções reais em funções reais, mas a representação intermediária pode assumir valores complexos
Fourier series e aplicações em processamento de sinais
- A Fourier transform é uma mudança de base para a autobase do Laplaciano
- (\hat{f}[\xi]) mede quanto da função (f) é expresso por uma onda de frequência inteira (\xi)
- Essa representação leva a função para o domínio da frequência
- Como se trata de uma base ortonormal, a Fourier series pode ser invertida facilmente recombinando os coeficientes com as ondas
- Ao descartar coeficientes de Fourier abaixo ou acima de certo limiar, é possível produzir uma reconstrução suave da função
- Essa técnica é chamada de filtro passa-baixa (low-pass filter)
- Como alguns poucos coeficientes de Fourier bastam para reconstruir aproximadamente a função, isso é útil computacionalmente para compressão
Compressão de imagens e harmônicos esféricos
- Onde for possível definir o Laplaciano, também é possível encontrar a Fourier transform correspondente
- Em 2D, o Laplaciano é a soma das segundas derivadas parciais
- (\Delta f[x,y]=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2})
- Em ([0,1]\times[0,1]), as autofunções têm a forma (e^{2\pi i(nx+my)}), com (n,m) inteiros
- Assim como funções 1D são decompostas em um conjunto de ondas 1D, imagens 2D são decompostas em um conjunto de ondas 2D
- Uma variação da 2D Fourier transform está no núcleo de muitos algoritmos de compressão de imagem, incluindo JPEG
- Também é possível definir o Laplaciano na esfera unitária, e sua autobase ortonormal é formada pelos spherical harmonics
- (Y_\ell^m[\theta,\phi]=N_\ell^mP_\ell^m[\cos[\theta]]e^{im\phi})
- (\ell\ge0), (m\in[-\ell,\ell])
- Em game engines, eles são usados com frequência para comprimir diffuse environment maps e probes de global illumination
- Spherical harmonics também podem ser vistos como orbitais eletrônicos, e a mecânica quântica lida em grande parte com autofunções de operadores lineares
Processamento geométrico e exploração adicional
- Representar funções como vetores fundamenta não só compressão de imagens, mas também algoritmos modernos de processamento geométrico
- A discrete differential geometry usa essa perspectiva para construir algoritmos de processamento de geometria 3D
- Em computação gráfica, funções sobre uma malha podem representar texturas, unwrapping, deslocamentos e parâmetros de simulação
- É possível codificar uma função como vetor associando um valor a cada vertex da malha
- Como o Laplaciano de malha é uma matriz de dimensão finita, suas autofunções podem ser encontradas com álgebra linear numérica
- Elas funcionam como uma generalização, para novos domínios, das funções contínuas como sine e cosine
- A autobase de uma malha é útil para transformar e comprimir funções sobre a malha
- Se as posições dos vertex forem interpretadas como uma função, também é possível suavizar ou tornar mais afiada a própria geometria
- Entre os temas para explorar mais estão geometry, simulation, light transport, machine learning e splines
- Geometry: Distances, Parallel Transport, Flattening, Non-manifold Meshes, Polygonal Meshes
- Simulation: Finite Element Method, Monte Carlo PDEs, Minimal Surfaces, Fluid Cohomology
- Light Transport: Radiosity, Operator Formulation, Low-Rank Approximation, Inverse Rendering
- Machine Learning: DiffusionNet, MeshCNN, Kinematics, Fourier Features, Inverse Geometry
- Splines: C2 Interpolation, Quadratic Approximation, Simplification
1 comentários
Opiniões no Hacker News
A ponto de eu querer dar upvote duas vezes neste texto: é a melhor introdução aos conceitos básicos de análise funcional que já vi até agora.
Como uma boa visão geral que aprofunda mais matematicamente, há também https://arxiv.org/abs/1904.02539
Uma ótima aplicação que o site não mencionou são os operadores de Koopman. Na teoria de controle, sistemas reais como drones autônomos, carros e braços robóticos são, em sua maioria, descritos por dinâmicas não lineares difíceis de tratar; os operadores de Koopman fornecem uma aproximação linear globalmente útil para sistemas não lineares.
Ou seja, permitem tratar um sistema não linear como se fosse um sistema linear, com precisão bastante alta, o que simplifica muito controle e estimação do ponto de vista computacional. Esse tipo de linearização também pode ser aprendido a partir de dados.
Os materiais de Steve Brunton sobre a teoria de Koopman são bons: https://youtube.com/playlist?list=PLMrJAkhIeNNSVXUvppZTYNHKQ..., https://arxiv.org/abs/2102.12086; e há também aplicações como controle de robôs flexíveis https://arxiv.org/abs/1902.02827
Na época, eu estava cansado de procurar financiamento para pesquisa e acabei me desiludindo com a academia depois de, mais uma vez, ficar lendo sozinho livros áridos, então fui embora.
Bons educadores no YouTube estão criando oportunidades futuras enormes, e no fim todos vão se beneficiar disso. A teoria de controle mostra pontos de conexão entre várias áreas, então pode ser uma grande alegria para quem gosta de ver padrões e estruturas por toda parte. Lembro que o Steve também publicou recentemente um vídeo de teoria de controle para modelos sociais
A percepção de que funções podem ser tratadas como elementos de um espaço vetorial abstrato de dimensão infinita foi um ponto de virada na história da matemática, levando ao surgimento da subárea chamada análise funcional.
O significado dessa mudança de perspectiva está em ter permitido aplicar a intuição geométrica obtida no estudo de espaços de dimensão finita, como o espaço euclidiano tridimensional, a problemas difíceis relacionados a funções, como a existência de soluções para certas equações diferenciais.
A história dessa transformação remonta ao fim do século XIX e ao início do século XX, e é muito interessante. Na época, o trabalho sobre fundamentos axiomáticos da matemática estava criando uma tendência de sistematização que capturava a estrutura dos objetos matemáticos em listas concisas de axiomas.
Por exemplo, o conceito de espaço vetorial abstrato também nasceu assim, passando a abranger não apenas espaços euclidianos, mas também espaços de funções de dimensão infinita.
Um material que já mostra, ainda que em forma inicial, essa mudança de perspectiva é a memória de Vito Volterra de 1889 https://projecteuclid.org/journals/acta-mathematica/volume-1...
A tese de doutorado de Maurice Fréchet, de 1906, https://zenodo.org/record/1428464/files/article.pdf pode ser vista como o trabalho mais influente que cristalizou esse novo paradigma e o apresentou em forma moderna, tornando-se uma referência central da primeira metade do século XX.
Claro que esses são apenas dois entre inúmeros trabalhos da época; olhando para os desenvolvimentos posteriores, também é difícil deixar de fora o livro de Stefan Banach, de 1932 http://kielich.amu.edu.pl/Stefan_Banach/pdf/teoria-operacji-...
Por isso, acho que o ponto central é que esses espaços vetoriais são, de fato, topológicos
Sempre gostei muito dessa perspectiva. Estou lendo com prazer as aulas sobre equações diferenciais e integro-diferenciais que Vito Volterra deu em Madrid, e ele também contribuiu para a criação da análise funcional.
Aqui, funcionais são o conceito correspondente aos vetores duais. Volterra usa continuamente o método de analogia ao passar de construções com um número finito de variáveis para infinitas variáveis, e até variáveis não enumeráveis.
Há até trechos em que ele parece constrangido por talvez estar repetindo demais a mesma ideia. Para quem ensina, vale a pena dar uma olhada junto.
https://searchworks.stanford.edu/view/526111
Nunca vi essas funções índice serem usadas como uma base transfinita de um espaço vetorial. A função em questão parece mais uma soma transfinita estranha de termos quase todos zero do que um ponto-limite de uma sequência finita de funções de base
Também não parece plausível que toda função possa ter uma transformada de Fourier. Acho que seria fácil refutar, por diagonalização, que não há nenhum resultado útil aí
Até espaços de Hilbert normalmente são indexados apenas por inteiros. Uma base assim não fornece nenhuma condição de continuidade ou diferenciabilidade
Toda a análise funcional que já vi usava alguma condição de continuidade e uma base contável. Fora isso, é uma perspectiva muito útil para olhar funções e, de fato, é quase um ponto de partida para entender o formalismo da mecânica quântica
É um problema comum até em mecânica quântica ensinada em nível introdutório. Dito isso, este texto também parece focado, como uma aula introdutória de mecânica quântica, em motivar conceitos de análise funcional; mesmo sem rigor, é útil como explicação
Todas as funções desse subespaço têm transformada de Fourier
Este texto provavelmente ignora por completo, por bons motivos, a escolha geralmente bastante difícil em análise funcional de “qual espaço vetorial usar”
Um espaço vetorial de funções definidas ponto a ponto, como aqui, é quase sempre a escolha menos útil. Ainda assim, se a intenção era ensinar o panorama geral do assunto, isso por si só tem bastante valor
Quanto à afirmação de que “não pode ser verdade que toda função tenha transformada de Fourier”, em um espaço desses é difícil até obter uma noção útil de distância
Isso encosta na definição real de função. Uma função é um mapeamento entre conjuntos no qual todo elemento do primeiro conjunto vai para exatamente um elemento do segundo
O problema de usar vetores é que vetores não são tão gerais quanto conjuntos, então há funções que não podem ser representadas por vetores
Por exemplo, vetores não conseguem lidar com valores indefinidos ou elementos que não sejam números
Por definição, todo valor do conjunto de partida deve corresponder a algo no conjunto de chegada, portanto não existem valores indefinidos nesse sentido
O motivo pelo qual um espaço de funções nem sempre pode ser visto como um espaço vetorial é que pode não haver uma noção de soma de funções ou de multiplicação por escalar; e, mesmo que haja, ela pode não combinar bem com a estrutura aditiva satisfeita pelas funções
Isso só é verdadeiro quando o contradomínio tem a estrutura necessária para operações vetoriais. Funções são mais gerais que vetores
Parece realmente excelente, e quero ler com mais atenção depois. Em um curso típico de graduação em física, a maior parte disso deve ser abordada
Ainda assim, como um bom filme ou livro, o conceito em si é interessante o bastante para valer a pena revisitar mais de uma vez
Do ponto de vista de um programador, algumas dessas técnicas parecem bastante hacks. No começo você parte de índices inteiros muito razoáveis, depois percebe que pode generalizar os índices e enfia neles muito mais informação do que se pretendia originalmente
O realmente surpreendente é que essas ideias aparentemente idiotas e abusivas, no fim, sempre levam a algo perspicaz e útil. É meio mágico
Quero apresentar a biblioteca Funsor, que criei com Eli Bingham para uso nas linguagens de programação probabilística Pyro e NumPyro
Trouxemos a perspectiva de que “funções são tensores” e tentamos criar uma biblioteca ao estilo NumPy para funções, principalmente funções de log-densidade de distribuições de probabilidade
Artigo: "Functional Tensors for Probabilistic Programming" (2019) https://arxiv.org/abs/1910.10775
Código: https://github.com/pyro-ppl/funsor
Acho que este texto dá uma intuição ruim porque segue na direção oposta. O que faz funções formarem um espaço vetorial não é a entrada, mas a saída
Funções de um conjunto X para um corpo F podem formar um espaço vetorial mesmo que X não tenha ordem
É uma perspectiva muito interessante até onde consigo acompanhar, mas infelizmente não consigo acompanhar muito
Fico curioso se esse tipo de lógica formal ajuda a derivar funções que descrevem vetores
Na análise de big data, por exemplo no treinamento de redes neurais, as maiores ineficiências e gargalos ainda parecem se reduzir a como encontrar uma função que aproxime uma saída parecida com o vetor esperado
Seja por regressão simbólica, seja por várias camadas de transformação, é a mesma coisa. Seria “mágico” se pudéssemos operar apenas sobre vetores como funções, sem extrair ou comprimir de algum modo a relação entre entrada e saída
Essa é, essencialmente, a ideia básica por trás da compressão MP3 e JPEG. Claro que é uma troca entre espaço e tempo: para obter uma aproximação do vetor original, primeiro é preciso aplicar a transformada inversa de Fourier
O texto trata de espaços vetoriais abstratos, de suas propriedades como soma de vetores e multiplicação por escalar, e em particular do fato de que funções satisfazem essa definição e formam um espaço vetorial de funções, isto é, um espaço de funções
Por exemplo, dadas duas funções f, g e um escalar b, podemos tratá-las assim
f + g = g + f
b(f + g) = bf + bg
Além disso, existe (-f) tal que f + (-f) = 0, onde 0 é a função nula, e essa função nula também deve existir no espaço de funções