2 pontos por GN⁺ 2023-07-31 | 1 comentários | Compartilhar no WhatsApp
  • 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

1 comentários

 
GN⁺ 2023-07-31
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

    • A primeira coisa que me veio à mente foi como isso é conceitualmente surpreendentemente parecido com a transformada de Fourier. É realmente interessante, e pretendo investigar mais
    • Sou muito grato pelo conteúdo do Steve Brunton. Se eu tivesse tido acesso a materiais assim há 10 anos, durante o mestrado, talvez tivesse seguido até o doutorado, graças ao entusiasmo dele pela área e ao nível das explicações.
      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-...

    • Para fazer análise funcional, não acho que precise necessariamente ser um espaço vetorial; o que realmente é necessário é um produto interno. Dito isso, reconheço que, como o produto interno precisa ser linear, no fim ele tem de estar dentro de um espaço vetorial
    • Não estou dizendo que a parte de espaço vetorial não seja legal, mas o motivo de se chamar análise funcional é que ela consegue tratar várias formas de limites, semicontinuidade, completamento de espaços etc., e porque essas coisas têm boas propriedades.
      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

    • Givental também usa essa perspectiva em suas notas de aula sobre equações diferenciais. Pode ajudar estudantes que sentem uma desconexão entre a independência linear de funções e a independência linear de vetores
  • 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

    • É exatamente isso que mais me incomoda neste texto. É útil para a intuição, mas o "..." depois da soma não tem significado matemático
      É 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
    • Este texto é quase um resumo de um livro em vários capítulos. Em certo ponto, ele restringe o espaço a um subespaço de funções periódicas e troca a base de deltas de Dirac por funções seno de frequência 2pi*k/(b-a), com k natural
      Todas as funções desse subespaço têm transformada de Fourier
    • Para ser uma base, cada elemento precisa ser expresso como combinação linear finita. Claro que, em outros tipos de escolha de base, também há conceitos que permitem combinações lineares contáveis
      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
    • Um truque estranho que matemáticos odeiam: como construir uma base para o espaço vetorial das funções reais sem o axioma da escolha
  • 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

    • Funções também não conseguem lidar com valores indefinidos. Uma função f é um mapeamento de um conjunto para outro, e cada elemento do conjunto de partida deve corresponder a um único elemento do conjunto de chegada
      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 está mais perto de uma função bijetiva do que da definição de função. Um exemplo simples de algo que não é bijetivo e pode ir para dois valores diferentes é sqrt(x)
  • Isso só é verdadeiro quando o contradomínio tem a estrutura necessária para operações vetoriais. Funções são mais gerais que vetores

    • Certo. Mais especificamente, o contradomínio precisa ser um grupo abeliano. E isso por si só ainda não basta; o corpo dos escalares também precisa agir sobre esse contradomínio com propriedades adequadas
  • 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

    • Não é nem a entrada nem a saída, mas a correspondência que envia a entrada para a saída, isto é, a própria função
  • É 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

    • É possível. Você pode aplicar uma transformada de Fourier ao vetor, descartar alguns termos de baixa contribuição, isto é, frequências, e armazenar apenas os coeficientes restantes
      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
    • Talvez você esteja pensando no vetor aqui como uma coleção de valores concretos, como [x y z] em R^3
      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