Novo tipo de rede neural, Kolmogorov-Arnold Networks (KANs), oferece maior interpretabilidade
(spectrum.ieee.org)- 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
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/
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
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
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
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
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
“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
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
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
output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias), enquanto uma camada KAN é mais próxima deoutput = sum(fancy_functions(many_inputs)). Posso estar errado; só passou um diaf(x, y). A saída de uma KAN é uma fórmula bonita comoexp(0.3sin(x) + 4cos(y)), e é isso que significa ser interpretávelFico 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
ifem 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 excelenteAlgumas 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