2 puan yazan GN⁺ 2024-08-06 | 1 yorum | WhatsApp'ta paylaş
  • Kolmogorov-Arnold Networks (KANs), mevcut sinir ağlarından farklı bir yapıyla, küçük ölçeklerde bile daha yorumlanabilir ve daha doğru sonuçlar göstererek bilim insanlarının fizik verilerinden yeni hipotezler bulmasına yardımcı olabilecek bir araç olabilir
  • Geleneksel MLP'ler sinaps ağırlıkları ve nöron aktivasyon fonksiyonlarına dayanırken, KAN'da sinapslar giriş-çıkış fonksiyonlarını öğrenir ve nöronlar yalnızca sinaps çıktılarının toplamını hesaplar
  • Fizik yasası verileri ve topolojik düğüm deneylerinde KAN'ın performansı ölçek büyüdükçe daha hızlı iyileşti; kısmi diferansiyel denklemleri çözerken ise parametre sayısı 100 kat fazla olan bir MLP'den 100 kat daha doğru sonuç verdi
  • Araştırmacılar KAN içindeki fonksiyon biçimlerini ve bağlantı önemini görselleştirip zayıf bağlantıları budayarak, bazı durumlarda veri kümesini oluşturan fizik fonksiyonunu sezgisel, tek satırlık bir fonksiyon olarak yeniden kurdu
  • KAN'da parametre başına eğitim süresi daha uzun ve GPU kullanımı zor olsa da, gereken parametre sayısı az olduğu için fizik problemleri gibi küçük ölçekli alanlarda pratik değerini koruyor

KAN'ın önerdiği yeni sinir ağı yapısı

  • Modern yapay zekanın merkezindeki yapay sinir ağları, sohbet botlarını ve görüntü üreticilerini destekliyor; ancak çok sayıdaki nöron nedeniyle iç işleyişlerini yorumlamak zor olduğu için bir kara kutu haline gelebiliyor
  • Yeni yapı olan Kolmogorov-Arnold Networks (KANs), geleneksel sinir ağlarına göre daha yorumlanabilir ve deneylerde daha küçük olmasına rağmen daha doğru sonuçlar gösterdi
  • KAN geliştiricileri, bu yapının fizik verilerini özlü biçimde ifade edebildiğini ve bilim insanlarının doğa yasalarına dair yeni hipotezler keşfetmesine yardımcı olabileceğini düşünüyor
  • Johns Hopkins University'den Brice Ménard, son 10 yılı aşkın süredir sinir ağı tasarımının büyük ölçüde deneme-yanılma temelli ayarlara dayandığını, KAN gibi ilk prensiplerden tasarlanan yeni bir mimarinin ortaya çıkmasını ise olumlu değerlendirdi

Geleneksel MLP ile KAN arasındaki fark

  • Geleneksel sinir ağlarında sinaps, iki nöron arasındaki bağlantı gücünü temsil eden tek bir ağırlığı öğrenir
  • Nöronlar, önceki katmandaki nöronlardan gelen girdilerin ağırlıklı toplamını aldıktan sonra, bu toplama basit bir aktivasyon fonksiyonu uygular
  • Her nöronun bir sonraki katmandaki tüm nöronlarla bağlı olduğu bu yapı multi-layer perceptron (MLP) olarak adlandırılır
  • KAN'da roller değişir
    • Sinapslar, basit bir bağlantı gücü yerine girdiyi çıktıya eşleyen bir aktivasyon fonksiyonu öğrenir
    • Bu fonksiyon, birden çok fonksiyonun birleşimi olan bir spline olabilir ve her bağlantı için farklı olabilir
    • Nöronlar daha basit hale gelir ve yalnızca önceki sinaps çıktılarının toplamını alır
  • KAN adı, fonksiyonların birleştirilme biçimini inceleyen iki matematikçi Kolmogorov ve Arnold'dan gelir
  • Bu yapının amacı, daha az öğrenme parametresiyle veriyi ifade ederken daha yüksek esneklik sunmaktır

Bilimsel görevlerde görülen performans

  • Araştırma ekibi KAN'ı görece basit bilimsel görevlerde test etti
  • Bazı deneylerde, göreli hızlarda hareket eden iki cismin birbirini geçerken sahip olduğu hız gibi basit fizik yasaları kullanıldı
    • Denklemlerden giriş-çıkış veri noktaları üretildi
    • Her fizik fonksiyonu için ağ, verinin bir kısmıyla eğitildi ve kalan kısmıyla test edildi
  • KAN'ın performansı, ölçek büyüdükçe MLP'ye kıyasla daha hızlı iyileşti
  • Kısmi diferansiyel denklemleri çözerken bir KAN, parametre sayısı 100 kat fazla olan bir MLP'den 100 kat daha doğruydu
  • Başka bir deneyde ise topolojik düğümlerin farklı özelliklerinden yola çıkarak, düğümün signature adlı bir özelliği tahmin edilmek üzere eğitim verildi
    • MLP, yaklaşık 300.000 parametreyle testte %78 doğruluk elde etti
    • KAN, yaklaşık 200 parametreyle testte %81,6 doğruluk elde etti

Yorumlanabilirlik ve fonksiyonun yeniden kurulması

  • Araştırmacılar KAN'ı görsel olarak açarak aktivasyon fonksiyonlarının biçimini ve her bağlantının önemini görebildi
  • Zayıf bağlantılar manuel ya da otomatik olarak budanabildi
  • Bazı aktivasyon fonksiyonları, sine fonksiyonu veya exponential fonksiyonu gibi daha basit fonksiyonlarla değiştirilebildi
  • Sonuçta tüm KAN, onu oluşturan aktivasyon fonksiyonları da dahil olacak şekilde sezgisel tek satırlık bir fonksiyon olarak özetlenebildi
  • Bazı durumlarda, veri kümesini oluşturan fizik fonksiyonu kusursuz biçimde yeniden kuruldu
  • MIT ve NSF AI Institute for Artificial Intelligence and Fundamental Interactions'tan Ziming Liu, yorumlaması zor veri kümelerinin KAN'a verilerek hipotez üretilebileceğini, ardından KAN diyagramına bakılarak gerektiğinde yapının ayarlanabileceğini düşünüyor

CNN ve transformer ile birleşim

  • KAN ön baskı makalesi şimdiden onlarca çalışmada atıf aldı
  • University of San Andrés'ten Alexander Bodner ve ekip arkadaşları, KAN'ı görüntü işlemede yaygın kullanılan CNN ile birleştirerek Convolutional KANs geliştirdi
  • El yazısı rakam ve kıyafet görüntüsü sınıflandırma görevlerinde Convolutional KANs, geleneksel CNN ile neredeyse aynı doğruluğu gösterdi
    • Rakam sınıflandırmada her iki ağ da %99 doğruluk sağladı
    • Kıyafet sınıflandırmada her iki ağ da %90 doğruluk sağladı
    • KAN birleşimli model, yaklaşık %40 daha az parametre kullandı
  • Bodner, kullanılan veri kümelerinin basit olduğunu ancak daha fazla hesaplama kaynağına sahip başka ekiplerin ağı ölçeklendirmeye başladığını söyledi
  • Diğer araştırmacılar da KAN'ı, büyük dil modellerinde yaygın olarak kullanılan transformer ile birleştiriyor

Yavaş eğitim ve uygulanabilirlik alanı

  • KAN'ın dezavantajı, parametre başına eğitim süresinin daha uzun olması
  • Eğitimin yavaş olmasının nedenlerinden biri, GPU'ları verimli kullanmanın zor olması
  • Buna karşın KAN'ın ihtiyaç duyduğu parametre sayısı az
  • Ziming Liu, KAN görüntü ve dil işleme için dev CNN ya da transformer'ların yerini almasa bile, birçok fizik probleminin küçük ölçekli sürümlerinde eğitim süresinin sorun olmayabileceğini düşünüyor
  • Liu, uzmanların ön bilgisini KAN'a nasıl yerleştirebileceğini araştırıyor
    • Örneğin aktivasyon fonksiyonları insanlar tarafından doğrudan seçilebilir
    • Basit bir arayüzle KAN'dan bilginin kolayca çıkarılmasına yönelik yöntemler de inceleniyor
  • Uzun vadede KAN, yüksek sıcaklıklı süperiletkenlerin keşfine veya nükleer füzyonun nasıl kontrol edileceğini bulmaya yardımcı olabilir

1 yorum

 
GN⁺ 2024-08-06
Hacker News yorumları
  • Küçük ölçekli modellemede KAN’ı doğrudan deneyip yazıya döktüm ve normal sinir ağlarıyla karşılaştırdım: https://news.ycombinator.com/item?id=40855028
    Temel sonuç şu: KAN’ı eğitmek normal sinir ağlarına göre çok daha zahmetli. Parametre başına kayıp genelde benzer seviyeye getirilebiliyor, ancak çok sayıda hiperparametre ayarı ve KAN yapısına özgü ek teknikler gerekiyordu. Buna karşılık temel sinir ağları çok daha kolay eğitildi ve daha geniş koşullarda iyi çalıştı
    Sinir ağı eğitimi için zaten muazzam bir emek birikmiş durumda; Adam gibi optimize ediciler de sinir ağlarına göre tasarlanıp optimize edilmiş yönlere sahip olduğundan bunun tamamen adil bir karşılaştırma olmadığını düşünüyorum. KAN’ın potansiyeli var ama her derde deva değil; ayrıca yaygın kullanılan spline’ların alt katman nöron çıktısını analiz etmekten çok daha yorumlanabilir olduğu iddiası da biraz şüpheli
    https://cprimozic.net/blog/trying-out-kans/

    • KAN hakkındaki hem abartıların hem de eleştirilerin oldukça zayıf temellere dayandığı konusunda genel olarak katılıyorum. Potansiyeli büyük, ancak şu ana kadarki sonuçlar her derde deva değil; Transformer gibi büyük etki de yaratabilir, küçük bir nişte de kalabilir
      Araştırma nihayetinde hangi iyileştirmenin kullanışlılığı değiştirdiğini bulma süreci ve https://github.com/mintisan/awesome-kan üzerindeki ilerlemeyi takip edip farklı denemeleri görmek keyifli. KAN ile sabit aktivasyon fonksiyonlu sinir ağları arasında, aktivasyon fonksiyonu ayarlaması denen sürekli bir araştırma alanı var
      Örneğin xsigmoid(mx) gibi basit parametreleştirilmiş aktivasyon fonksiyonu aileleri, m büyük olduğunda ReLU, m=1.7 olduğunda GeLU, m=1 olduğunda SiLU gibi davranabilir. Nöron başına tekil aktivasyon fonksiyonu, birden çok parametreye sahip aktivasyon fonksiyonu, fonksiyon yaklaştırıcı, ağırlıksız tam bir KAN gibi çeşitli noktalar var; ek parametreleri nereye koymanın en büyük etkiyi yarattığını birleşik bir formülle hesaplayabilen biri büyük takdir görecek gibi
    • Yalnızca optimize ediciler değil, sinir ağlarının başlatma yöntemi de geleneksel aktivasyon fonksiyonları kullanan sinir ağlarının kararlı şekilde eğitilmesi için açıkça ayarlanageldi. KAN başlatmasına bu kadar çok çalışma yapılıp yapılmadığını bilmiyorum
      KAN’ın daha yorumlanabilir olmayacağına %100 katılıyorum. Tekil bir nöronsa anlaşılır, ama bunları bileştirmeye başladığınızda yorumlanabilirlik hemen kaybolur diye düşünüyorum
    • Ayrıntılı bir çalışma. Blogda ele alınan kod tabanını doğrudan görmek isteyenler için bağlantı burada: https://github.com/Ameobea/kan
    • Başka birinin herkesin bildiği şeyi sessizce dışa vurmasına sevindim. Herkes sinir ağları yorumlanamaz diyor, ama benim deneyimim hiç öyle değildi; hatta tam tersiydi
  • KAN, normal bir çok katmanlı algılayıcı içindeki başka bir aktivasyon yapısı olarak modellenebilir; esnekliği yüksek olduğu için şaşırtıcı değil. Çeşitli yapı türlerini özetleyen bir grafik hazırladım: https://x.com/thomasahle/status/1796902311765434694
    İlginç şekilde KAN, PyTorch’un normal matris çarpımıyla uygulanınca verimli değil; ancak özel CUDA kernel’leri veya torch.compile kullanıldığında çok hızlanabiliyor: https://x.com/thomasahle/status/1798408687981297844

    • Yan soru: Bu alanı derinlemesine bilen insanların böyle formüllerle dolu görselleştirmelere bakınca gerçekten ne olup bittiğini hemen anlayıp anlamadığını merak ediyorum. Ortalama matematik altyapısına sahip birine göre ne kadar geride olduğumu ölçmek istiyorum
    • İlginç, paylaşım için teşekkürler. Derlemenin bazı yapılarda neden daha yavaşlattığına dair bir açıklama veya fikriniz var mı merak ediyorum
  • Kolmogorov-Arnold ağları hakkındaki önceki tartışma: https://news.ycombinator.com/item?id=40219205

  • “KAN’ın dezavantajı, parametre başına eğitim süresinin daha uzun olması; bunun bir nedeni de GPU’dan yararlanamaması. Ama daha az parametre gerektiriyor. Liu, KAN görüntü ve dil işleme için dev CNN’lerin veya Transformer’ların yerini alamasa bile, birçok fizik probleminin küçük ölçeğinde eğitim süresinin sorun olmayacağını söylüyor.”
    İleride GPU’dan yararlanılabileceğine dair bir ifade bile olmadığı için, bu temel bir sınır gibi okunuyor

    • KAN deposuna bakınca hâlihazırda GPU desteği var gibi görünüyor: https://github.com/KindXiaoming/pykan/blob/master/tutorials/API_10_device.ipynb
    • Bu kesinlikle ilginç görünüyor: “ReLU-KAN: New Kolmogorov-Arnold Networks that Only Need Matrix Addition, Dot Multiplication, and ReLU” https://arxiv.org/abs/2406.02075#
    • Sinir ağlarını karar ağaçları ile birleştiren örnekler gördüm ve bu tür hibritler için birkaç yöntem var. Bir yöntemde, doğru ve GPU’da eğitilmiş bir ağ kullanılarak yorumlanabilir ağın doğruluğu artırılıyor
      KAN’a da böyle bir yaklaşımın maliyet etkin şekilde uygulanıp uygulanamayacağını merak ediyorum. Özellikle LlaMa-3 gibi önceden eğitilmiş dil modelleriyle yorumlanabilir bir modeli eğitmenin mümkün olup olmayacağını merak ediyorum
    • GPU çok karmaşık işleri de yapabiliyor; engelin ne olduğunu merak ediyorum
  • “Ardından tüm KAN’ı sezgisel, tek satırlık bir fonksiyon olarak özetleyebildik ve bazı durumlarda veri kümesini oluşturan fizik fonksiyonunu kusursuz biçimde yeniden kurduk.”
    KAN fikri gerçekten ilginç, ama kesin konuşmak gerekirse geleneksel sinir ağları da herhangi bir kapalı biçimli tek satırlık ifade olarak yazılabilir. Sadece o satır çok uzun olur. Aynı karar sınırını daha az nöronla oluşturabilseniz bile, ağırlıklar yerine spline kullanmanın ifadenin kendisini daha az karmaşık yapıp yapmadığından emin değilim

    • Orijinal KAN makalesinde bunu ele almak için iki şey yapılıyor. Önce seyrekliği teşvik eden düzenlileştirme kullanılıyor, ardından seyrek bir spline hesaplama grafiği öğrenildikten sonra ideal olarak sıkıştırılmış bir sembolik model bulmaya yönelik bir sembolleştirme aşaması konuyor
      İlke olarak çok katmanlı algılayıcılara da benzer bir şey yapılabilir, ancak çok katmanlı algılayıcı temsili biraz dağınık olduğu için seyreltme ve sembolleştirme daha zor olabilir
  • Bunu beş yaşındaki bir çocuğa anlatır gibi açıklayabilir misin? Sinir ağlarının kayıp fonksiyonunu azaltarak daha iyi sonuçlar elde etmeye çalıştığını anlıyorum, ama KAN pratikte neyi farklı yapıyor, merak ediyorum

    • Makine öğrenimi uzmanı değilim ve bu yazıyla öğreniyorum, ama özü diyagramdaki dipnottan anladım
      Sıradan bir sinir ağında, yani çok katmanlı algılayıcıda, ağırlık rolünü üstlenen kayan noktalı sayılarla dolu matrisler bulunur. Ağırlıklar y=wx gibi doğrusal fonksiyonlardır; bu yüzden girdi x ile çıktı y’yi koordinat düzlemine çizerseniz düz bir çizgi elde edersiniz. Girdiyi artırır ya da azaltırsanız çıktı da sabit bir oranla artar ya da azalır; etkisi birden büyüyüp küçülmez veya ters yöne dönmez
      Bu nedenle ağ, birden çok katmandaki ağırlıkları öğrenir ve öğrenilen değil tasarıma dahil edilmiş bir tür sihirli yapıştırıcı gibi fonksiyonlarla bunları birbirine bağlar. Sonuçta girdi ile çıktı arasındaki karmaşık ilişki, birçok katmandan geçerken oluşur
      Buna karşılık KAN’da, ağırlıklar yani doğrusal fonksiyonlar yerine ağın başka tür fonksiyonları öğrenmesi sağlanır. Bu fonksiyonlar doğrusal değildir; girdi artırıldığında çıktı ivmelenerek yükselebilir ya da yön değiştirip azalabilir. Girdi ile çıktı arasındaki çok daha karmaşık ilişkileri öğrenebilir, ancak devasa matris işlemleri için optimize edilmiş GPU verimliliğinin bir kısmını kaybedip keyfi matematik hesaplamaları için CPU’ya ihtiyaç duyabilir
      Bu yüzden KAN’da daha az ama daha karmaşık “nöron” vardır ve her nöron karmaşık bir fonksiyondan oluşur. Cazibesi, tek bir nöronun içine baktığınızda ne yaptığını açıklayan net bir formül elde edebilmeniz gibi görünüyor. Çok katmanlı algılayıcıda ise birçok katmandaki ağırlıkları takip etmeniz gerekir; tüm davranışı anlamak daha fazla iş ister
      Yine de KAN’dan çıkan fonksiyonların Isaac Newton’ın notlarında çıkacak türden sezgisel formüllerden ziyade, garip sabitler ve birbirini götüren sezgisel olmayan terimlerle dolu olacağını sanıyorum
    • Beş yaş açıklaması sayılır mı bilmiyorum ama çok kabaca basitleştirirsek, bir algılayıcı katmanı output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias) iken KAN katmanı daha çok output = sum(fancy_functions(many_inputs)) gibidir. Yanılıyor olabilirim; daha üzerinden sadece bir gün geçti
    • Çok katmanlı algılayıcının çıktısı bir kara kutu fonksiyon olan f(x, y)’dir. KAN’ın çıktısı ise exp(0.3sin(x) + 4cos(y)) gibi hoş görünen bir formüldür; yorumlanabilir denmesi de bu anlama gelir
    • KAN bir bakıma ağların ağı gibi; her kenar kendi küçük ağını temsil ediyormuş hissi veriyor. Ben de yazıyı hâlâ sindiriyorum, yanlış olabilir, ama dışarıdan izlenimi böyle
  • Öğrenilen fonksiyonlar kümesinin birinci dereceden mantığın doğruluk tablosunu yeniden üretebilip üretemeyeceğini merak ediyorum. Kontrol etmesi kolay olur gibi
    Her hâlükârda türevlenebilirlik açısından iyi haber. Şu anda JAX’te if koşulunu ifade etmek zahmetli ve en azından benim için fiilen bir optimizasyon engeli; koşullar öğrenilebilir olup zaten ağın içinde yer alıyorsa bunun harika olduğunu düşünüyorum

    • Temel mantık fonksiyonlarını uygulayan çok katmanlı bir algılayıcı yapmak kolaydır, ancak XOR için en az bir gizli katman gerekir
  • Birkaç hafta önce London Machine Learning Meetup’ta Ziming Liu’yu davet ettik. Bu ilginç çalışma hakkında harika bir sunum yaptı; kayıt burada: https://youtu.be/FYYZZVV5vlY?si=ReoygVJMgY9oje3p

  • Biraz şüpheliyim. 80’ler ve 90’larda da f(x*w+b) için alternatif olan çeşitli yapay sinir ağı mimarileri üzerine pek çok makale ve deney vardı. Ama bugün pratikte en yüksek performanslı modeller hâlâ çarpma-biriktirme-eşik tabanlı. Sonuçta sebep hız ve basitlik

  • “KAN’ın dezavantajı, parametre başına eğitim süresinin daha uzun olması; bunun bir nedeni GPU’dan yararlanamamasıdır.”
    Bu büyük bir fark gibi görünüyor. Bunun temel bir mimari uyumsuzluk olup olmadığını, yoksa sadece gerekli CUDA kernel’larını henüz kimsenin yazmamış olmasından mı kaynaklandığını bilen var mı, merak ediyorum