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!
Se você é como eu e gostaria de visualizar as coisas para entender melhor, aqui está um vídeo deste artigo:
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.
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.
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.
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.
Usando um polinômio de segunda ordem, x² , 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 x³ seja adequado para esses dados, ele acarreta um custo computacional extra. Uma solução diferente poderia ser usar x² quando a entrada x for negativa, mas usar - x² 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.
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.
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.
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.
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.
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.
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.
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:
Veremos os gráficos dessas defesas na seção de resultados. Por enquanto, vamos examinar mais uma especialidade dos KANs.
À 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:
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
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.
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 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.
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.
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.
Eles forneceram a figura abaixo para nos orientar sobre quando escolher KANs em vez de MLPs. Então, escolha KANs se,
Caso contrário, os MLPs ainda ganham.
Se você gostou deste artigo, por que não me seguir no
Também por favor assine meu
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.