2 pontos por GN⁺ 2024-08-06 | 1 comentários | Compartilhar no WhatsApp
  • Kolmogorov-Arnold Networks (KANs) têm uma estrutura diferente das redes neurais tradicionais e, mesmo em pequena escala, mostraram resultados mais interpretáveis e precisos, podendo se tornar uma ferramenta para cientistas encontrarem novas hipóteses em dados físicos
  • Enquanto o MLP tradicional depende dos pesos das sinapses e das funções de ativação dos neurônios, no KAN as sinapses aprendem funções de entrada-saída e os neurônios apenas calculam a soma das saídas das sinapses
  • Em dados de leis físicas e em experimentos com nós topológicos, o desempenho do KAN melhorou mais rapidamente à medida que a escala aumentou e, na solução de equações diferenciais parciais, foi 100 vezes mais preciso que um MLP com 100 vezes mais parâmetros
  • Os pesquisadores visualizaram a forma das funções internas do KAN e a importância das conexões, podando ligações fracas e, em alguns casos, reconstruindo a função física que gerou o conjunto de dados como uma função intuitiva de uma única linha
  • O KAN leva mais tempo para treinar por parâmetro e é difícil de aproveitar em GPUs, mas como exige poucos parâmetros, ainda pode ser prático em problemas pequenos, como os de física

A nova arquitetura de rede neural proposta pelo KAN

  • As redes neurais artificiais, no centro da IA moderna, sustentam chatbots e geradores de imagem, mas podem se tornar uma caixa-preta difícil de interpretar internamente por causa do grande número de neurônios
  • A nova arquitetura, Kolmogorov-Arnold Networks (KANs), é mais interpretável do que redes neurais tradicionais e, nos experimentos, mostrou resultados mais precisos mesmo sendo menor
  • Os criadores do KAN acreditam que essa estrutura pode representar dados físicos de forma concisa, ajudando cientistas a descobrir novas hipóteses sobre as leis da natureza
  • Brice Ménard, da Johns Hopkins University, avaliou positivamente o surgimento de uma nova arquitetura projetada a partir de primeiros princípios, como o KAN, dizendo que o design de redes neurais nos últimos mais de 10 anos tem dependido em grande parte de ajustes por tentativa e erro

Diferenças entre MLP tradicional e KAN

  • Em redes neurais tradicionais, cada sinapse aprende um único peso que representa a força da conexão entre dois neurônios
  • Os neurônios fazem a soma ponderada das entradas vindas dos neurônios da camada anterior e depois aplicam a essa soma uma função de ativação simples
  • Quando todos os neurônios estão conectados a todos os neurônios da próxima camada, isso é chamado de multi-layer perceptron (MLP)
  • No KAN, os papéis se invertem
    • Em vez de apenas representar a força da conexão, as sinapses aprendem uma função de ativação que mapeia entrada em saída
    • Essa função pode ser uma spline, isto é, uma combinação de várias funções, e pode ser diferente em cada conexão
    • Os neurônios ficam mais simples e apenas somam as saídas das sinapses anteriores
  • O nome KAN vem dos matemáticos Kolmogorov e Arnold, que estudaram essa forma de composição de funções
  • O objetivo dessa arquitetura é oferecer maior flexibilidade ao representar dados com menos parâmetros treináveis

Desempenho em tarefas científicas

  • Os pesquisadores testaram o KAN em tarefas científicas relativamente simples
  • Alguns experimentos usaram leis físicas simples, como a velocidade com que dois corpos que se movem a velocidades relativísticas passam um pelo outro
    • Foram gerados pontos de dados de entrada e saída a partir das equações
    • Para cada função física, a rede foi treinada com parte dos dados e testada com o restante
  • À medida que seu tamanho aumentava, o KAN melhorava de desempenho mais rapidamente que o MLP
  • Na solução de equações diferenciais parciais, um KAN foi 100 vezes mais preciso que um MLP com 100 vezes mais parâmetros
  • Em outro experimento, a rede foi treinada para prever uma propriedade do nó chamada signature com base em outras propriedades de nós topológicos
    • O MLP alcançou 78% de acurácia de teste com cerca de 300.000 parâmetros
    • O KAN alcançou 81,6% de acurácia de teste com cerca de 200 parâmetros

Interpretabilidade e reconstrução de funções

  • Os pesquisadores conseguiram expandir visualmente o KAN para observar o formato das funções de ativação e a importância de cada conexão
  • Conexões fracas puderam ser podadas manual ou automaticamente
  • Algumas funções de ativação puderam ser substituídas por funções mais simples, como seno ou exponencial
  • Como resultado, foi possível resumir todo o KAN, incluindo suas funções de ativação constituintes, em uma função intuitiva de uma única linha
  • Em alguns casos, a função física que gerou o conjunto de dados foi reconstruída perfeitamente
  • Ziming Liu, do MIT e do NSF AI Institute for Artificial Intelligence and Fundamental Interactions, acredita que, ao inserir no KAN um conjunto de dados difícil de interpretar, é possível gerar hipóteses e, olhando para o diagrama do KAN, ajustar a estrutura quando necessário

Combinação com CNNs e transformers

  • O preprint sobre KAN já foi citado em dezenas de artigos
  • Alexander Bodner, da University of San Andrés, e colegas combinaram KAN com CNNs, amplamente usadas em processamento de imagem, criando as Convolutional KANs
  • Em tarefas de classificação de dígitos manuscritos e imagens de roupas, as Convolutional KANs mostraram quase a mesma acurácia das CNNs tradicionais
    • Na classificação de dígitos, ambas as redes alcançaram 99% de acurácia
    • Na classificação de roupas, ambas alcançaram 90% de acurácia
    • O modelo combinado com KAN usou cerca de 40% menos parâmetros
  • Bodner afirmou que os conjuntos de dados usados eram simples, mas que outras equipes com mais recursos computacionais já começaram a ampliar essas redes
  • Outros pesquisadores também estão combinando KAN com transformers, amplamente usados em modelos de linguagem de grande porte

Treinamento lento e faixa de aplicação

  • A desvantagem do KAN é que o tempo de treinamento por parâmetro é maior
  • Um dos motivos para a lentidão no treinamento é a dificuldade de aproveitar GPUs
  • Ainda assim, o KAN requer poucos parâmetros
  • Ziming Liu avalia que, mesmo que o KAN não substitua enormes CNNs ou transformers para processamento de imagem e linguagem, o tempo de treinamento pode não ser um problema em problemas físicos de pequena escala
  • Liu está pesquisando formas de inserir conhecimento prévio de especialistas no KAN
    • Por exemplo, é possível escolher manualmente as funções de ativação
    • Também está sendo estudada uma forma de extrair conhecimento do KAN com facilidade por meio de uma interface simples
  • No longo prazo, o KAN pode ajudar na descoberta de supercondutores de alta temperatura ou na busca por métodos de controle da fusão nuclear

1 comentários

 
GN⁺ 2024-08-06
Comentários do Hacker News
  • Experimentei KAN diretamente em modelagem de pequena escala e escrevi sobre isso, comparando com redes neurais comuns: https://news.ycombinator.com/item?id=40855028
    A principal conclusão é que KAN é muito mais difícil de treinar do que redes neurais comuns. A perda por parâmetro geralmente pode ser ajustada de forma parecida, mas exigiu muito ajuste de hiperparâmetros e técnicas adicionais específicas da estrutura de KAN. Em contrapartida, redes neurais básicas foram muito mais fáceis de treinar e funcionaram bem em uma gama mais ampla de condições
    Já existe um esforço enorme acumulado em treinamento de redes neurais, e otimizadores como Adam também foram projetados e otimizados levando redes neurais em conta, então acho que não é uma comparação totalmente justa. KAN tem potencial, mas não é uma solução universal, e também me parece um tanto duvidosa a afirmação de que os splines normalmente usados são muito mais interpretáveis do que analisar as saídas dos neurônios das camadas inferiores
    https://cprimozic.net/blog/trying-out-kans/

    • No geral concordo que tanto o hype quanto as críticas sobre KAN parecem ter uma base bem fraca. O potencial é grande, mas os resultados até agora não são uma panaceia; pode ter um impacto grande como os Transformers ou ficar restrito a um pequeno nicho
      Pesquisa, no fim, é o processo de descobrir quais melhorias mudam a utilidade, e é interessante acompanhar o progresso em https://github.com/mintisan/awesome-kan e ver várias tentativas. Entre KAN e redes neurais com funções de ativação fixas existe um espaço contínuo de pesquisa em ajuste de funções de ativação
      Por exemplo, um conjunto simples de funções de ativação parametrizadas como xsigmoid(mx) pode se comportar como ReLU quando m é grande, como GeLU quando m=1.7 e como SiLU quando m=1. Há vários pontos possíveis: uma única função de ativação por neurônio, funções de ativação com vários parâmetros, aproximadores de função e até uma KAN completa sem pesos. Acho que alguém capaz de calcular, com uma formulação unificada, onde posicionar os parâmetros adicionais para obter o maior efeito receberia grande reconhecimento
    • Não apenas os otimizadores, mas também os métodos de inicialização das redes neurais foram ajustados explicitamente para que redes com funções de ativação tradicionais treinem de forma estável. Não sei se foi dedicado tanto trabalho assim à inicialização de KAN
      Concordo 100% que KAN não será mais interpretável. Para um único neurônio, dá para entender, mas quando se começa a compor essas coisas, a interpretabilidade logo desaparece
    • É um trabalho detalhado. Para quem quiser ir direto ao codebase tratado no blog, o link é este: https://github.com/Ameobea/kan
    • Fico feliz que outra pessoa tenha dito em voz alta o que todo mundo sabe discretamente. Todo mundo diz que redes neurais são impossíveis de interpretar, mas minha experiência não foi nada disso; na verdade, foi o oposto
  • KAN pode ser modelada como outro tipo de estrutura de ativação dentro de um perceptron multicamadas comum, e isso não surpreende, já que ela é bastante flexível. Fiz um gráfico organizando vários tipos de estruturas: https://x.com/thomasahle/status/1796902311765434694
    Curiosamente, KAN não é eficiente quando implementada com multiplicação de matrizes comum no PyTorch, mas pode ficar muito rápida usando kernels CUDA customizados ou torch.compile: https://x.com/thomasahle/status/1798408687981297844

    • Uma pergunta lateral: fico curioso se pessoas que conhecem profundamente essa área conseguem olhar para esse tipo de visualização cheia de fórmulas e entender de imediato o que está acontecendo. Quero ter uma noção de quanto estou atrás de alguém com formação média em matemática
    • Interessante, obrigado por compartilhar. Fico curioso se há alguma explicação ou ideia de por que a compilação torna algumas estruturas mais lentas
  • Discussão anterior sobre redes Kolmogorov-Arnold: https://news.ycombinator.com/item?id=40219205

  • “A desvantagem das KANs é que o tempo de treinamento por parâmetro é maior, em parte porque elas não conseguem aproveitar GPUs. Mas elas precisam de menos parâmetros. Liu diz que, mesmo que KANs não substituam CNNs ou Transformers enormes para processamento de imagens e linguagem, em pequena escala, para muitos problemas de física, o tempo de treinamento não será um problema.”
    Como nem sequer menciona que talvez seja possível aproveitar GPUs no futuro, soa como uma limitação fundamental

    • Olhando para o próprio repositório de KAN, parece que já há suporte a GPU: https://github.com/KindXiaoming/pykan/blob/master/tutorials/API_10_device.ipynb
    • Isto com certeza parece interessante: “ReLU-KAN: New Kolmogorov-Arnold Networks that Only Need Matrix Addition, Dot Multiplication, and ReLU” https://arxiv.org/abs/2406.02075#
    • Já vi casos de combinação de redes neurais com árvores de decisão, e há algumas formas de fazer esses híbridos. Uma delas usa uma rede precisa, treinada em GPU, para elevar a precisão de uma rede interpretável
      Fico curioso se esse tipo de abordagem poderia ser aplicado a KAN de forma custo-eficiente. Em especial, se seria possível treinar um modelo interpretável usando um modelo de linguagem pré-treinado como o LlaMa-3
    • GPUs conseguem fazer coisas muito complexas; fico curioso sobre qual é o obstáculo
  • “Em seguida, foi possível resumir toda a KAN em uma função intuitiva de uma linha e, em alguns casos, reconstruir perfeitamente a função física que gerou o dataset.”
    A ideia das KANs é realmente interessante, mas, a rigor, redes neurais tradicionais também podem ser escritas como alguma expressão de forma fechada em uma linha. Só que essa linha fica extremamente longa. Mesmo que seja possível criar a mesma fronteira de decisão com menos neurônios, não sei se usar splines em vez de pesos torna a expressão em si menos complexa

    • No artigo original sobre KAN, eles fazem duas coisas para lidar com isso. Primeiro, usam regularização que induz esparsidade; depois, após treinar um grafo computacional esparso de splines, incluem uma etapa de simbolização que, idealmente, encontra um modelo simbólico comprimido
      Em princípio, seria possível fazer algo parecido com perceptrons multicamadas, mas a representação deles é um tanto distribuída, o que pode tornar a esparsificação e a simbolização mais difíceis
  • Você poderia explicar isso como se eu tivesse cinco anos? Eu entendo que redes neurais tentam reduzir a função de perda para obter resultados melhores, mas fico curioso sobre o que, na prática, é diferente nas KANs

    • Não sou especialista em machine learning e estou aprendendo com este texto, mas entendi o ponto principal a partir da legenda do diagrama
      Em uma rede neural comum, ou seja, um perceptron multicamadas, há matrizes cheias de números de ponto flutuante que funcionam como pesos. Os pesos são uma função linear, como y=wx, então, se você desenhar a entrada x e a saída y em coordenadas, isso vira uma reta. Se você aumenta ou diminui a entrada, a saída também aumenta ou diminui em uma proporção constante; o efeito não fica subitamente maior ou menor nem muda para a direção oposta
      Por isso, a rede aprende pesos em várias camadas e os conecta por meio de funções que não são aprendidas, mas fazem parte do projeto, como uma espécie de cola mágica. Como resultado, uma relação complexa entre entrada e saída é construída ao passar por várias camadas
      Já nas KANs, em vez de pesos, ou seja, funções lineares, a rede é feita para aprender outro tipo de função. Essas funções são não lineares, então, quando a entrada aumenta, a saída pode subir de forma acelerada ou mudar de direção e diminuir. É possível aprender relações muito mais complexas entre entrada e saída, mas perde-se parte da eficiência das GPUs otimizadas para operações com matrizes enormes, e cálculos matemáticos arbitrários podem passar a exigir CPU
      Portanto, as KANs têm “neurônios” em menor número, porém mais complexos, e cada neurônio é composto por uma função complexa. O atrativo parece ser que, ao olhar para um único desses neurônios, você obtém uma fórmula clara que explica o que ele faz. Em um perceptron multicamadas, é preciso seguir os pesos por várias camadas, então entender o comportamento geral exige mais trabalho
      Dito isso, as funções produzidas por uma KAN também provavelmente não serão fórmulas intuitivas dignas do caderno de Isaac Newton, mas algo cheio de constantes estranhas e termos pouco intuitivos que se cancelam entre si
    • Não sei se isso conta como uma explicação para uma criança de cinco anos, mas, simplificando muito grosseiramente, uma camada de perceptron é algo como output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias), enquanto uma camada KAN é mais próxima de output = sum(fancy_functions(many_inputs)). Posso estar errado; só passou um dia
    • A saída de um perceptron multicamadas é uma função caixa-preta f(x, y). A saída de uma KAN é uma fórmula bonita como exp(0.3sin(x) + 4cos(y)), e é isso que significa ser interpretável
    • Em certo sentido, uma KAN parece uma rede de redes, como se cada aresta representasse sua própria pequena rede. Ainda estou digerindo o texto e posso estar errado, mas essa é a impressão superficial
  • Fico curioso se o conjunto de funções aprendidas consegue reproduzir tabelas-verdade de lógica de primeira ordem. Parece algo fácil de verificar
    De qualquer forma, em termos de diferenciabilidade, é uma boa notícia. Hoje é complicado expressar condições if em JAX e, pelo menos para mim, isso é praticamente uma barreira de otimização; se as condições puderem ser aprendidas e já estiverem dentro da rede, acho excelente

    • É fácil criar um perceptron multicamadas que implemente funções lógicas básicas, mas XOR exige pelo menos uma camada oculta
  • Algumas semanas atrás, convidamos Ziming Liu para o London Machine Learning Meetup. Ele fez uma ótima apresentação sobre este trabalho interessante, e a gravação está aqui: https://youtu.be/FYYZZVV5vlY?si=ReoygVJMgY9oje3p

  • Estou um pouco cético. Nos anos 80 e 90, também houve muitos artigos e experimentos com várias arquiteturas de redes neurais artificiais alternativas a f(x*w+b). Mas os modelos práticos de melhor desempenho hoje ainda se baseiam em multiplicação-acumulação-limiar. No fim, é uma questão de velocidade e simplicidade

  • “A desvantagem das KANs é que o tempo de treinamento por parâmetro é maior, em parte porque elas não conseguem aproveitar GPUs.”
    Isso parece uma grande lacuna. Fico curioso se alguém sabe se é uma incompatibilidade estrutural fundamental ou se é apenas que ninguém ainda escreveu os kernels CUDA necessários