Sinir-sembolik programlama dili Scallop
(scallop-lang.org)- Scallop, AI uygulamalarına mantık kuralı tabanlı sembolik çıkarım eklemek için kullanılan bildirime dayalı bir dildir ve ilişkisel veritabanı sorgu dili Datalog temel alınarak geliştirilmiştir
- Çözücü, ayrık, olasılıksal ve türevlenebilir çıkarımı destekler; böylece uygulama gereksinimlerine göre çıkarım yöntemi seçilebilir
- Python bağları aracılığıyla program içine mantıksal çıkarım modülleri yerleştirilebilir ve mevcut PyTorch makine öğrenimi iş akışlarıyla entegre edilebilir
- Görü, NLP görevlerinde CNN ya da Transformer tarafından üretilen sinirsel bileşenlerle mantık kuralı bileşenleri birlikte kurgulanır
- CLEVR görsel çıkarımı, Pathfinder bağlantılılık tespiti ve el yazısı denklem değerlendirmesi gibi, sinirsel bileşenler ile kuralların birlikte öğrenildiği uçtan uca (end-to-end) örnekler sunar
Scallop'un temel bileşenleri
-
Language
- Scallop, AI uygulamalarında sembolik çıkarımı ele almak için kullanılan bildirime dayalı bir dildir
- Temeli, ilişkisel veritabanları için mantık kuralı tabanlı sorgu dili olan Datalog'dur
-
Solver
- Scallop, genişletilebilir bir Datalog çözücüsüdür
- Ayrık çıkarım, olasılıksal çıkarım ve türevlenebilir çıkarım modlarını destekler
- Her çıkarım modu, farklı AI uygulaması gereksinimlerine göre ayarlanabilir
-
Framework
- Python programları içinde mantıksal çıkarım modüllerini kullanmaya olanak veren bağlar sağlar
- Mevcut PyTorch makine öğrenimi iş akışlarıyla derinlemesine entegre olabilir
Örnek uygulamalar
- CLEVR, görüntüdeki basit 3D nesneler hakkında “mavi nesnelerden kaç tane var?” gibi sorulara yanıt veren bir görsel çıkarım görevidir
- Sinirsel bileşen, görüntünün sahne grafiğini (scene graph) ve soruyu temsil eden programatik sorguyu (programmatic query) üretir
- Çıkarım bileşeni, belirtilen özniteliklere göre nesneleri seçme, karşılaştırma ve sayma işlemlerini mantık kurallarıyla tanımlar
- Scallop, bu bileşenleri ortak bir çerçevede birleştirir ve uçtan uca eğitimi mümkün kılar
- Pathfinder, iki nokta ve kesik çizgiler içeren siyah-beyaz bir görüntüde, iki noktanın kesik çizgilerle bağlı olup olmadığını belirleyen bir uzun menzilli bağlantılılık çıkarımı görevidir
- Noktaları ve çizgi parçalarını algılayan basit bir sinirsel mimari ile birkaç satır Scallop mantık kuralından oluşturulabilir
- Sunulan kurallar,
dash(x, y)ifadesini yol olarak alır ve özyinelemeli biçimdepath(x, z), dash(z, y)bağlantısını kurarakis_connected()sonucunu belirler - Bu yapı, en güncel Transformer'lardan daha yüksek performans gösterir
- El yazısı denklem değerlendirmesi, 0'dan 9'a kadar sayılar ve basit aritmetik işlemlerden oluşan el yazısı sembol dizisini tanıyıp ifadeyi hesaplama görevidir
- Örnekte giriş olarak
1 + 3 / 5alınır ve sonuç değeri1.6hesaplanır - Scallop ile olasılıksal girdileri ayrıştırabilen tam bir bağlamdan bağımsız dilbilgisi ayrıştırıcısı oluşturulabilir
- Ayrıştırıcı ve değerlendirici, 5 satır Scallop koduyla yazılabilir
- Bu program, tek tek sembolleri tanıyan sinirsel modelle birlikte uçtan uca eğitilebilir ve eğitimden sonra en olası ifadeyi bulup değerlendirme sonucunu döndürür
- Örnekte giriş olarak
Henüz yorum yok.