paint-brush
Kolmogorov-Arnold Ağı (KAN) ve Çok Katmanlı Algılayıcıları (MLP'ler) Karşılaştırmaile@aibites
957 okumalar
957 okumalar

Kolmogorov-Arnold Ağı (KAN) ve Çok Katmanlı Algılayıcıları (MLP'ler) Karşılaştırma

ile Shrinivasan Sankar8m2024/06/29
Read on Terminal Reader

Çok uzun; Okumak

KAN'lar, günümüzün TÜM LLM'leri için temel olan Çok Katmanlı Algılayıcılara meydan okuyor. Ama hayatta kalıp teslim olabilecekler mi? Karşılaştırma ve karşılaştırma yapalım.
featured image - Kolmogorov-Arnold Ağı (KAN) ve Çok Katmanlı Algılayıcıları (MLP'ler) Karşılaştırma
Shrinivasan Sankar HackerNoon profile picture
0-item

Klasik Çok Katmanlı Algılayıcıları (MLP'ler) olduğu gibi aldık ve onun etrafında pek çok mimari inşa ettik. MLP'ler, chatGPT, LLAMA, DALLE ve CLIP gibi bugün gördüğümüz her bir LLM veya temel modelin bir parçasıdır. Veya YOLO-v* gibi basit tanıma modelleri bile.


Peki ya şimdi size MLP'ler için bir rakibimiz olduğunu söylesem? Kasabada “Kolmogorov-Arnold Ağı”, kısaca KAN adında, MLP'lere meydan okuyan yeni bir gazete var. Önerdikleri çözüm gerçekten ölçeklenirse, yeni nesil sinir ağlarına sahip olabiliriz ve bu da bizi Yapay Genel Zekaya (AGI) bir adım daha yaklaştıracaktır.


MLP'ler ReLU, sigmoid, tanh, GeLU vb. aktivasyon fonksiyonlarını içerirken KAN, bu aktivasyon fonksiyonlarını öğrenmemizi önermektedir. Peki KAN bunu nasıl yapıyor? Bunun arkasındaki matematik nedir? Nasıl uygulanır? Peki KAN'ları nasıl eğitebiliriz?

KAN makalesini burada özetlemek için elimden geleni yaptım. Bu ana fikri okumayı veya 48 sayfa uzunluğundaki makaleyi okumayı seçebilirsiniz!

Görsel Açıklama

Eğer siz de benim gibiyseniz ve olayları daha iyi anlamak için görselleştirmek istiyorsanız işte bu makalenin video formu:


MLP'ler — Sorun

Oldukça aşina olduğumuz MLP’lerle başlayalım. MLP'ler düğümlerden ve kenarlardan oluşur. Her düğümde, söz konusu düğüm için çıktı üretmek amacıyla girdiler toplanır ve ReLU, GeLU ve SeLU gibi aktivasyonlar uygulanır.

MLP'ler ve KAN'lar arasındaki farkı gösteren makaleden bir şekil


Bu aktivasyon fonksiyonları eğitim süreci boyunca asla değişmez. Başka bir deyişle herhangi bir parametreye sahip değillerdir. Kendilerini belirli bir eğitim veri setine göre ayarlayacak kadar akıllı değiller. Yani eğitim sırasında eğitilen veya güncellenen şey, bu düğümlerin her birinin ağırlığıdır.

Şimdi aktivasyon fonksiyonunun düzeltilmesi gerektiği varsayımını sorgulayıp eğitilebilir hale getirsek ne olur? İşte KAN ağının çözmeye çalıştığı zorluk da bu. KAN ağının aktivasyon fonksiyonları eğitim süreci sırasında güncellenir. Daha derine inmeden önce polinomlar ve eğri uydurmayla başlayalım.

Polinomlar ve Eğri Uydurma

Dolayısıyla KAN'ların temel fikri, herhangi bir çok değişkenli bileşik fonksiyonun, tek değişkenli çeşitli fonksiyonların toplamına bölünebilmesidir.

x^2 ve x^3 işlevlerini gösteren bir animasyon

Örneğin, yukarıdaki sarı eğriyle gösterildiği gibi y=x³ olan 3. derece bir denklemimiz olduğunu varsayalım. Ve yukarıdaki animasyonda mavi eğri ile gösterildiği gibi 2. derecenin başka bir denklemi, y=x². Bu görselleştirmede x² kullanmanın asla x³ ile elde edilen eğriliğe ulaşamayacağını görebiliriz.


Aşağıdaki kırmızı ve mavi noktalarla temsil edilen verilerin bize verildiğini ve iki sınıf arasındaki ikili sınıflandırma sınırını bulmak istediğimizi varsayalım.

X^3'ün x^2'den daha iyi uyduğu bir oyuncak problemi. Ama yine de iki x^2 eğrisi eklenerek x^2 ile çözülebilir!

İkinci dereceden bir polinom olan x²'yi kullanarak, x² eğrisi “U” şeklinde ancak veriler “S” şeklinde olduğundan ikisi arasındaki sınırı bulamayız. Her ne kadar kullanmak bu veriler için uygun olsa da, ekstra bir hesaplama maliyetiyle birlikte gelir. Farklı bir çözüm, x girişi negatif olduğunda kullanmak, x pozitif olduğunda - kullanmak olabilir (yukarıdaki şekilde elle çizilmiş mavi eğri).

Yaptığımız tek şey, daha yüksek serbestlik derecesine sahip bir eğri elde etmek için iki düşük dereceli polinom eklemek. KAN ağlarının arkasındaki fikir tam olarak budur.

Bir oyuncak sorunu

Şimdi verilerin basit bir denklemle oluşturulduğunu bildiğimiz, biraz daha karmaşık bir oyuncak problemini ele alalım: y=exp(sin(x1² + x2²) + sin(x3² + x4²)) . Yani 4 giriş değişkenimiz var ve üç işlemimiz var: üs, sinüs ve kare. Böylece aşağıda gösterildiği gibi her biri üç farklı işleme ayrılmış üç katmana sahip dört giriş düğümü seçebiliriz.

3 temel fonksiyon için 4 girişli, 3 katmanlı basit bir KAN ağı

Hesaplamalar için dört girişli ve üç temel işlevli (üs, sinüzoid ve kare) bir oyuncak problemi için KAN ağı

Eğitimden sonra düğümler, verilere uyacak şekilde kare, sinüzoidal ve üslü işlevlere yakınlaşacaktır.


Bu oyuncak bir problem olduğu için verilerin geldiği denklemi biliyoruz. Ancak pratikte gerçek dünya verilerinin dağılımını bilmiyoruz. Bu sorunu çözmenin bir yolu B-spline'ları kullanmaktır.

Spline'lar ve B-spline'lar

B-spline'ların temel fikri, herhangi bir fonksiyonun veya eğrinin daha basit fonksiyon veya eğrilerin bir kombinasyonu olarak temsil edilebilmesidir. Bu daha basit fonksiyonlara temel fonksiyonlar denir. Örneğin aşağıdaki şekildeki kırmızı eğriyi ele alalım. Basitlik adına bunu sadece iki temel fonksiyonla temsil etmeye çalışalım.


İki temel fonksiyonun toplamı ile temsil edeceğimiz için bunu 3 noktaya ayırabiliriz. Bu noktalara düğüm denir. Herhangi bir sayıda n tane temel fonksiyon olabilir. Bu temel fonksiyon kombinasyonlarının nasıl çalıştığını kontrol eden parametre c'dir. İki eğriyi birleştirdiğimizde düğümlerde süreksizlikler olabiliyor. Çözüm, düzgün bir eğri elde etmek için düğümlerdeki eğrilerin eğriliğini sınırlamaktır. Örneğin, aşağıdaki şekilde yeşil okla gösterildiği gibi, iki eğrinin eğimini düğümlerde aynı olacak şekilde sınırlayabiliriz.

B-spline'ları ve temel fonksiyonları göstermek için karalamalarım

Sinir ağına böyle bir kısıtlama getiremeyeceğimiz için, makaleye Artık Aktivasyon Fonksiyonlarını dahil ettiler. Bu daha çok bir düzenleme gibi davranır. Pratik olarak bu, aşağıdaki makalede görüldüğü gibi standart spline fonksiyonuna eklenen SeLU aktivasyonudur.

Spline Izgaraları ve KAN'ların İnce Tanelenmesi

KAN'lar ince taneli eğitim adı verilen yeni bir eğitim yöntemi sunar. Hepimizin aşina olduğu şey, modele daha fazla parametre eklediğimiz ince ayardır. Ancak ince taneli olması durumunda spline ızgaralarının yoğunluğunu arttırabiliriz. Buna ızgara uzantısı diyorlar.

Standart bir sinir ağında ince ayar yapılmasına eşdeğer olan ince taneliliği gösteren, makaledeki şeklin bir kısmı

Yukarıdaki şekilde kağıttan görebildiğimiz gibi, ince tanelileştirme, B-spline'ların ızgaralarını daha temsili ve dolayısıyla daha güçlü hale getirecek şekilde yoğunlaştırmaktır.

Hesaplamalı Karmaşıklık

Spline'ların dezavantajlarından biri özyinelemeli olmaları ve dolayısıyla hesaplama açısından pahalı olmalarıdır. Hesaplama karmaşıklıkları O(N²LG)'dir ve bu, MLP'ler için olağan O(N²L) karmaşıklığından daha yüksektir. Ek karmaşıklık G ızgara aralıklarından kaynaklanmaktadır.

Yazarlar bu doğal sorunu şunu göstererek savunuyorlar:

  • Aynı problem için KAN'ın ihtiyaç duyduğu parametre sayısı MLP'lere göre daha azdır
  • KAN'lar eğitim sırasında hızlı ve verimli bir şekilde birleşir, dolayısıyla daha az eğitim süresine ihtiyaç duyar.

Bu savunmaların grafiklerini sonuçlar bölümünde göreceğiz. Şimdilik KAN'ların başka bir uzmanlığına daha yakından bakalım.

Yorumlanabilirlik ve KAN Katmanlarının Seçimi

KAN'lar işlevleri öğrenirken, MLP'ler gibi, belirli bir veri veya sorun için MLP'nin derinliğini ve genişliğini seçerek onları basitçe tasarlayabildiğimiz basit bir kara kutu değildir. Bu nedenle, KAN'ları daha yorumlanabilir hale getirmek ve iyi bir KAN ağı tasarlamak için aşağıdaki adımları izlememiz gerekir:

  • Seyrekleşme. Beklenenden daha büyük bir KAN ağıyla başlıyoruz ve genellikle Makine Öğreniminde yaptığımız gibi girdiler yerine aktivasyon fonksiyonunun L1 normunu sunarak düzenlileştirmeyi tanıtıyoruz.
  • Budama. Seyrek ağ eğitildikten sonra, belirli bir kriter veya puanda belirli bir eşiğin altında olan gereksiz düğümleri kaldırabiliriz.
  • Sembolleştirme. Belirli bir veriyi hangi işlevin oluşturduğunu belli belirsiz bildiğimizde, bu işlevi alacak birkaç düğüm ayarlayabiliriz. Buna sembolleştirme denir. Örneğin ses dalgalarıyla çalışıyorsak verinin çoğu sinüzoidal olduğundan bazı düğümleri sinüzoidal olarak ayarlayarak hayatımızı kolaylaştırıyoruz. Çerçeve fix_symbolic(l,i,j,f) adı verilen bir arayüz işlevi sağlayarak bunu yapmamızı sağlar; burada l, i, j, düğüm katmanı ve konumlardır ve f sine, cosine, log, etc olabilen fonksiyondur, sine, cosine, log, etc

KAN modelini eğitmek için farklı adımlar

Eğitimli bir KAN ağına ulaşmak için makalede önerilen farklı adımların özeti

Yukarıdaki şekilde farklı adımlar özetlenmiştir. Büyük bir ağla başlıyoruz ve seyrekleştiriyoruz (adım 1), ortaya çıkan ağı budaıyoruz (adım 2), bazı sembolleştirmeler belirliyoruz (adım 3), ağı eğitiyoruz (adım 4) ve son olarak eğitilmiş modele ulaşıyoruz.

Deneyler ve Sonuçlar

Yukarıda belirtilen adımları kullanarak, KAN ağlarını beş farklı oyuncak problemi için eğiterek bunların etkinliğini gösterdiler ve bunları MLP'lerle karşılaştırdılar. Karşılaştırmadan elde edilen temel çıkarımlar şunlardır:

  • KAN, MLP'lerden çok daha hızlı eğitilir, böylece doğası gereği hesaplama karmaşıklığından ödün verilir.
  • MLP'lerin çok daha fazlasıyla yapabildiğini KAN daha az parametreyle yapabilir
  • KAN'lar, MLP'lere kıyasla hızlı azalan kayıpla çok düzgün bir şekilde birleşir

İlk nokta, 5 oyuncak problemi için yukarıdaki üst grafikteki beş parseldeki kalın mavi çizgiyle gösterilmiştir. Son iki nokta, herhangi bir problemi çözmek için kayıp eğrilerini ve parametre sayımlarını gösteren alttaki grafikle gösterilmektedir.

KAN'ların daha hızlı yakınsadığını ve hesaplama karmaşıklığı sorununun üstesinden gelmek için daha az parametreyle daha az sürede eğitilebileceğini gösteren makalenin sonuçları

Felaket Unutuş

Bir sonraki çıkarım, yıkıcı unutma probleminde KAN'ların MLP'lerden çok daha iyi olduğudur. Sürekli öğrenme için dizi verilerini beslersek, KAN'lar MLP'lere kıyasla geçmiş verileri çok daha iyi hatırlıyor gibi görünüyor. Bu, KAN'ın verilerdeki 5 aşamayı yeniden ürettiği ancak MLP'nin zorlandığı aşağıdaki şekilde gösterilmektedir.

KAN'ların felaketle sonuçlanan unutmanın üstesinden gelmede MLP'lerden daha iyi olduğunu gösteren makaledeki şekil

Diğer sonuçlar

Ayrıca KAN'ın kısmi diferansiyeller ve Fizik denklemlerini içeren problemlerde kullanılabileceğini göstermek için kapsamlı deneyler yaptılar. Bu ayrıntılara girmek yerine, ne zaman KAN'ları ve MLP'leri seçeceğimize bakalım.

KAN ve MLP arasında seçim yapma

MLP'ler yerine KAN'ları ne zaman seçeceğimiz konusunda bize rehberlik etmesi için aşağıdaki şekli verdiler. Öyleyse, aşağıdaki durumlarda KAN'ları seçin:

  • dalga formları veya grafikler gibi yapısal verilerle uğraşıyorsunuz
  • verilerden sürekli öğrenmeyi arzulamak
  • eğitim süresini pek umursamıyorum!
  • yüksek boyutlu veriler

Kağıttan KAN ve MLP figürü arasında seçim yapma

Aksi takdirde MLP'ler yine de kazanır.

Haykırmak

Bu makaleyi beğendiyseniz neden beni takip etmiyorsunuz? heyecan Haftanın her günü en iyi yapay zeka laboratuvarlarından araştırma güncellemelerini nerede paylaşıyorum?

Ayrıca lütfen bana abone olun Youtube kanalı AI kavramlarını ve makalelerini görsel olarak açıkladığım yer.

Tartışma ve sonuç

Bana göre KAN'lar, transformatörlerin NLP manzarasını nasıl temiz bir şekilde taradığı konusunda MLP'lerin yerini almak için burada değil. Aksine, KAN'lar matematik ve fizikteki özel problemler için kullanışlı olacaktır. O zaman bile, daha birçok iyileştirmeye ihtiyacımız olduğunu hissediyorum. Ancak temel modellerle çözülen büyük veri sorunları için KAN'ların, en azından mevcut durumlarıyla, kat etmesi gereken uzun bir yol var.

Ayrıca, eğitim yaklaşımı ve KAN mimarisinin tasarlanması, günümüzün sinir ağlarının tasarlanması ve eğitiminin standart yolundan sapma eğilimindedir. Yine de GitHub sayfasında halihazırda 13 bin yıldız ve 1,2 bin çatal var, bu da bir şeylerin yolunda gittiğini gösteriyor. Bekleyelim ve bu alanı izleyelim.