paint-brush
Comparando Rede Kolmogorov-Arnold (KAN) e Perceptrons Multicamadas (MLPs)por@aibites
924 leituras
924 leituras

Comparando Rede Kolmogorov-Arnold (KAN) e Perceptrons Multicamadas (MLPs)

por Shrinivasan Sankar8m2024/06/29
Read on Terminal Reader

Muito longo; Para ler

Os KANs desafiam os Perceptrons Multicamadas que são fundamentais para TODOS os LLMs hoje. Mas eles sobreviverão e entregarão? Vamos comparar e contrastar.
featured image - Comparando Rede Kolmogorov-Arnold (KAN) e Perceptrons Multicamadas (MLPs)
Shrinivasan Sankar HackerNoon profile picture
0-item

Consideramos os clássicos Multi-Layer Perceptrons (MLPs) como garantidos e construímos muitas arquiteturas em torno deles. MLPs são parte integrante de cada LLM ou modelo básico que vemos hoje, como chatGPT, LLAMA, DALLE e CLIP. Ou mesmo modelos de reconhecimento simples como YOLO-v*.


E se eu te disser agora que temos um concorrente para os próprios MLPs? Há um novo jornal na cidade chamado “Rede Kolmogorov-Arnold”, ou KAN, em resumo, que desafia as MLPs. Se a solução que eles propõem realmente for escalável, então poderemos ter a próxima geração de redes neurais, o que nos levará mais um passo em direção à Inteligência Geral Artificial (AGI).


Embora os MLPs incluam funções de ativação como ReLU, sigmóide, tanh, GeLU, etc., KAN propõe que aprendamos essas funções de ativação. Então, como o KAN faz isso? Qual é a matemática por trás disso? Como isso é implementado? E como treinamos KANs?

Tentei o meu melhor para resumir o artigo KAN aqui. Você pode optar por ler esta essência ou ler o artigo, que tem 48 páginas!

Explicação visual

Se você é como eu e gostaria de visualizar as coisas para entender melhor, aqui está um vídeo deste artigo:


MLPs – O problema

Vamos começar com os MLPs, com os quais estamos bastante familiarizados. Os MLPs são compostos de nós e arestas. Em cada nó, temos as entradas sendo somadas e ativações como ReLU, GeLU e SeLU aplicadas para produzir a saída para aquele nó específico.

Uma figura do artigo que ilustra a diferença entre MLPs e KANs


Estas funções de ativação nunca mudam durante o processo de treinamento. Em outras palavras, eles não possuem nenhum parâmetro. Eles não são inteligentes o suficiente para se ajustarem a um determinado conjunto de dados de treinamento. Então, o que é treinado ou atualizado durante o treinamento são os pesos de cada um desses nós.

Agora, e se questionarmos a suposição de que a função de ativação precisa ser corrigida e torná-la treinável? Então, esse é o desafio que a rede KAN tentou enfrentar. As funções de ativação da rede KAN são atualizadas durante o processo de treinamento. Antes de nos aprofundarmos, vamos começar com polinômios e ajuste de curvas.

Polinômios e ajuste de curva

Portanto, a ideia fundamental dos KANs é que qualquer função composta multivariada pode ser dividida em uma soma de várias funções que são variáveis únicas.

Uma animação ilustrando as funções x^2 e x^3

Por exemplo, digamos que temos uma equação de grau 3 onde y=x³ conforme traçado pela curva amarela acima. E outra equação de grau 2, y=x², conforme mostra a curva azul na animação acima. Podemos ver nesta visualização que usar x² nunca pode atingir a curvatura alcançada por x³.


Vamos supor que recebemos os dados representados pelos pontos vermelho e azul abaixo e desejamos encontrar o limite de classificação binária entre as duas classes.

Um problema de brinquedo onde x^3 se ajusta melhor que x^2. Mas ainda pode ser resolvido com x^2 adicionando duas curvas x^2!

Usando um polinômio de segunda ordem, , não seremos capazes de encontrar o limite entre os dois porque a curva x² tem formato de “U”, mas os dados têm formato de “S”. Embora o uso de seja adequado para esses dados, ele acarreta um custo computacional extra. Uma solução diferente poderia ser usar quando a entrada x for negativa, mas usar - quando x for positivo (curva azul desenhada à mão na figura acima).

Tudo o que fizemos foi adicionar dois polinômios de grau inferior para obter uma curva com maior grau de liberdade. Esta é exatamente a ideia por trás das redes KAN.

Um problema de brinquedo

Vamos agora pegar um problema de brinquedo um pouco mais complexo, onde sabemos que os dados são gerados por uma equação simples, y=exp(sin(x1² + x2²) + sin(x3² + x4²)) . Portanto, temos 4 variáveis de entrada e três operações, a saber, expoente, seno e quadrado. Assim, podemos escolher quatro nós de entrada com três camadas, cada uma dedicada às três operações diferentes, conforme mostrado abaixo.

Uma rede KAN simples com 4 entradas, 3 camadas para 3 funções básicas

Rede KAN para um problema de brinquedo com quatro entradas e três funções básicas para cálculos - expoente, senoidal e quadrado

Após o treinamento, os nós convergirão para funções quadradas, senoidais e expoentes para ajustar os dados.


Como se trata de um problema de brinquedo, conhecemos a equação de onde vieram os dados. Mas, na prática, não conhecemos a distribuição dos dados do mundo real. Uma maneira de resolver esse problema é usando B-splines.

Splines e B-splines

A ideia fundamental dos B-splines é que qualquer função ou curva pode ser representada como uma combinação de funções ou curvas mais simples. Essas funções mais simples são chamadas de funções básicas. Por exemplo, vamos pegar a curva vermelha na figura abaixo. Para simplificar, vamos tentar representar isso com apenas duas funções básicas.


Podemos dividi-lo em 3 pontos, pois vamos representá-lo com a soma de duas funções básicas. Esses pontos são chamados de nós. Pode haver qualquer número n de funções básicas. O parâmetro que controla como esta base funciona as combinações é c. Pode haver descontinuidades nos nós quando “juntamos” duas curvas. A solução é restringir a curvatura das curvas nos nós para obtermos uma curva suave. Por exemplo, podemos restringir a inclinação das duas curvas para que sejam iguais nos nós, conforme mostrado pela seta verde na figura abaixo.

Meus rabiscos para ilustrar B-splines e funções básicas

Como não podemos impor tal restrição na rede neural, eles introduziram Funções de Ativação Residual no artigo. Isso funciona mais como uma regularização. Praticamente, esta é a ativação do SeLU que é adicionada à função spline padrão, conforme visto no artigo abaixo.

Grades spline e granulação fina de KANs

Os KANs introduzem uma nova forma de treinamento chamada granulação fina . O que todos conhecemos é o ajuste fino, onde adicionamos mais parâmetros ao modelo. Porém, no caso de granulação fina, podemos melhorar a densidade das grades spline. Isto é o que eles chamam de extensão da rede.

Parte da figura do artigo mostrando granulação fina que equivale ao ajuste fino de uma rede neural padrão

Como podemos ver na figura acima do artigo, a granulação fina é simplesmente tornar as grades de splines B densas para que se tornem mais representativas e, portanto, mais poderosas.

Complexidade computacional

Uma das desvantagens dos splines é que eles são recursivos e, portanto, computacionalmente caros. Sua complexidade computacional é O(N²LG), que é maior que a complexidade usual de O(N²L) para MLPs. A complexidade adicional vem dos intervalos da grade G.

Os autores defendem esse problema inerente mostrando que:

  • O número de parâmetros necessários para KAN é menor em comparação com MLPs para o mesmo problema
  • Os KANs convergem de forma rápida e eficiente durante o treinamento, necessitando assim de menos tempo de treinamento.

Veremos os gráficos dessas defesas na seção de resultados. Por enquanto, vamos examinar mais uma especialidade dos KANs.

Interpretabilidade e escolha de camadas KAN

À medida que os KANs aprendem funções, não são simplesmente uma caixa preta como os MLPs, onde podemos simplesmente projetá-los escolhendo a profundidade e a largura do MLP para um determinado dado ou problema. Portanto, para tornar os KANs mais interpretáveis e projetar uma boa rede KAN, precisamos seguir as etapas abaixo:

  • Esparsificação. Começamos com uma rede KAN maior do que o previsto e introduzimos a regularização introduzindo a norma L1 da função de ativação em vez das entradas, como geralmente fazemos com o aprendizado de máquina.
  • Poda. Depois que a rede esparsa for treinada, podemos remover nós desnecessários que estão abaixo de um determinado limite em um critério ou pontuação definido.
  • Simbolização. Quando sabemos vagamente qual função constitui um determinado dado, podemos definir alguns nós para assumir essa função. Isso é chamado de simbolização. Por exemplo, se trabalharmos com ondas sonoras, a maior parte dos dados é sinusoidal, por isso facilitamos a nossa vida definindo alguns dos nós como sinusóides. A estrutura nos permite fazer isso fornecendo uma função de interface chamada fix_symbolic(l,i,j,f) onde l, i, j são camadas e localizações de nós, e f é a função que pode ser sine, cosine, log, etc

Diferentes etapas para treinar um modelo KAN

Um resumo das diferentes etapas sugeridas no artigo para chegar a uma rede KAN treinada

As diferentes etapas foram resumidas na figura acima. Começamos com uma rede grande e esparsificamos (etapa 1), podamos a rede resultante (etapa 2), definimos alguma simbolização (etapa 3), treinamos a rede (etapa 4) e finalmente chegamos ao modelo treinado.

Experimentos e Resultados

Usando as etapas mencionadas acima, eles treinaram redes KAN para cinco problemas de brinquedos diferentes para ilustrar sua eficácia e compará-los com MLPs. As principais conclusões da comparação são:

  • O KAN treina muito mais rápido que os MLPs, comprometendo assim a complexidade computacional inerente a ele.
  • KAN pode fazer com menos parâmetros o que MLPs podem fazer com muito mais
  • KANs convergem muito suavemente com perda rápida e decrescente em comparação com MLPs

O primeiro ponto é representado pela linha azul grossa nos cinco gráficos do gráfico superior acima para os 5 problemas de brinquedo. Os dois últimos pontos são ilustrados pelo gráfico na parte inferior mostrando as curvas de perda e as contagens de parâmetros para resolver qualquer problema.

Resultados do artigo indicando que KANs convergem mais rapidamente e podem ser treinados com menos parâmetros por menos tempo para superar o problema de complexidade computacional

Esquecimento catastrófico

A próxima conclusão é que os KANs são muito melhores que os MLPs no problema do esquecimento catastrófico. Se alimentarmos dados sequenciais para aprendizagem contínua, os KANs parecem lembrar-se dos dados passados muito melhor em comparação com os MLPs. Isso é mostrado na figura abaixo, onde o KAN reproduz as 5 fases nos dados, mas o MLP tem dificuldades.

Figura do artigo mostrando que KANs são bons em superar o esquecimento catastrófico do que MLPs

Outros resultados

Eles também fizeram extensos experimentos para mostrar que o KAN pode ser usado para problemas envolvendo diferenciais parciais e equações físicas. Em vez de entrar nesses detalhes, vamos ver quando escolher KANs em vez de MLPs.

Escolhendo entre KAN e MLP

Eles forneceram a figura abaixo para nos orientar sobre quando escolher KANs em vez de MLPs. Então, escolha KANs se,

  • você está lidando com dados estruturais como formas de onda ou gráficos
  • desejam ter aprendizado contínuo com dados
  • não me importo muito com o tempo de treino!
  • dados de alta dimensão

Escolhendo entre a figura KAN e MLP do papel

Caso contrário, os MLPs ainda ganham.

Gritar

Se você gostou deste artigo, por que não me seguir no Twitter onde compartilho atualizações de pesquisas dos principais laboratórios de IA todos os dias da semana?

Também por favor assine meu Canal do Youtube onde explico conceitos e artigos de IA visualmente.

Discussão e conclusão

Na minha opinião, os KANs não estão aqui para substituir os MLPs no que diz respeito à forma como os transformadores varreram de forma limpa o cenário da PNL. Em vez disso, os KANs serão úteis para problemas de nicho em matemática e física. Mesmo assim, sinto que precisamos de muito mais melhorias. Mas para problemas de big data que são resolvidos com modelos básicos, os KANs têm um longo caminho a percorrer, pelo menos no seu estado atual.

Além disso, a abordagem de treinamento e o projeto da arquitetura KAN tendem a se desviar da forma padrão de projetar e treinar redes neurais modernas. No entanto, a página do GitHub já tem 13 mil estrelas e 1,2 mil garfos, indicando que está pronta para alguma coisa. Vamos esperar e observar este espaço.