Tam metin 2021 Kelimeler, tahmini öğrenme süresi 6 dakika
Kaynak: Pexels
Teknolojinin hızla gelişmesiyle birlikte, yapay zeka programlama giderek daha olgun hale geliyor. Gelişimi, insanların daha akıllı makineler yapmasına yardımcı olabilir mi?
Program sentezi, spesifikasyonlara göre otomatik olarak program oluşturma kavramını ifade eder. Program doğrulamasından farklıdır. Program doğrulama, programın resmi şartnamelere uygun olarak çalıştığını doğrulamak için resmi sertifikaya dayanır.
1957'de, Cornell Üniversitesi İşaret Mantığı Derneği'nin Yaz Konferansı sırasında Alonzo Church, matematiksel gereksinimlere dayalı programları sentezlemeye çalıştı. 1960'larda, yapay zeka ile ilgili araştırmacılar program sentezi kavramını detaylandırdılar ve bunu tipik yapay zeka araştırmalarına uyguladılar.
Son yıllarda, derin öğrenme, yapay zekanın görevleri tamamlama şeklini değiştirdi. Bu ilerleme, araştırmacıları yapay zekaya insanların neyin iyi olduğunu öğretmeye teşvik etti. Önemli alanlardan biri, yapay zekanın insanların iyi olduğu çeşitli görevleri öğrenmesine izin veren bir meta-öğrenme sistemi oluşturmaktır. Nöral program sentezi ve robotik üzerine ilgili araştırmalar başlangıçta robotlara görevleri doğru bir şekilde gerçekleştirmeyi öğretmek için program sentezini kullanma yeteneğini göstermiştir.
Program sentezi en yaygın olarak bilgisayar programlamanın uygulanmasını kolaylaştırmak için kullanılır. AutoProf, FlashFill ve Storyboard programlama araçları gibi uygulamalar, öğrencilerin kod yazmadan belirli kavramları doğrudan çalıştırarak daha sezgisel bir şekilde program yazmalarına olanak tanır.
Yapay zeka araştırmacısı François Choletin "Intelligence Testing" adlı makalesinde, ARC'nin zeka testi problemlerini modelleme görevini çözmek için bir teknik olarak program sentezini kullandı.
Verge web sitesiyle makalesi hakkında yaptığı röportajda Qiaolai şunları söyledi: Kilit nokta, herhangi bir görevde yüksek beceriler elde etmenin bir zeka performansı olmamasıdır. Görev daha önce bilinmeyen çok sayıda sorunu içeren bir meta-görev olmadığı sürece. Yeni beceriler kazanmak. Bence zekanın ölçütü bu. "
Esasen, Qiaolai'nin dediği gibi, sistem zekası şu şekilde test edilmelidir: "Bu, yalnızca sistemin daha önce bilmediği yeni görevlerin kullanılması, sistemin başlangıçta görevle ilgili önceki bilgisinin ölçülmesi ve sistemin örnekleme verimliliğinin ölçülmesi anlamına gelir ( Yani, görevi tamamlamak için ne kadar veriye ihtiyaç var). Belli bir beceri seviyesine ulaşmak için ne kadar az bilgi (önceki bilgi ve deneyim) gerekiyorsa o kadar akıllıdır. Günümüzün yapay zeka sistemleri hiç akıllı değil. "
@alinnnaaa unsplash.com
Daha sonra ARC görevini Kaggle'ın soyutlama ve akıl yürütme sorununu çözmek için bir problem olarak yayınladı. Bu problemi çözmek, önceden bilinmeyen ARC görevlerini öğrenmek için programlama sentezinin gücünü kullanmayı içerecektir.
Görünüşte imkansız olan her problem için, önce problemi küçük problemlere ayırabilirsiniz. Programlama sentezini hiç öğrenmediyseniz, çalışmaya başlamadan önce sorunun ne olduğunu ve nasıl çözüleceğini anlayın.
1. Program alanı sorunları
Her programlama sentezi problemi, sonunda tüm program alanında aranacaktır. Arama yöntemi geçerli olmalıdır. Ağaç algoritması kullanılıyorsa, bu ağacın dallarını kesmenin bir yolu olması gerektiğini, aksi takdirde büyüdükçe sınırsız büyüme potansiyeline sahip olduğunu hayal edin.
2. Kullanıcı niyet sorusu
Kullanıcı amacını test etmenin mantığı arasında genellikle belirsizlikler vardır. Kullanıcı çevre ile etkileşime geçtiğinde insanlar bir keşif yaşar, yeni veriler kullanıcı gözünde sorunu yepyeni bir soruna dönüştürebilir.
Kaggle sorununu başarılı bir şekilde çözmek için bu iki sorunu çözmeyi içermesi gerekir.
Kaynak: dy.163
Python'da Z3, program sentezi için bir Python paketidir. İşte Adrian Sampson tarafından Z3 için sağlanan mükemmel bir öğretici.
Makaledeki örnek aşağıdaki gibidir:
Aşağıdaki gibi genel bir çözücü oluşturun:
Kod, Adrian Sampson'ın blogundan alınmıştır.
Ardından, çalıştırılacak formülü tanımlayın.
Kod, Adrian Sampson'ın blogundan alınmıştır.
Çalıştır: herhangi bir sorunu çözmek için yazdır (çöz (formül)). Daha fazla ayrıntı ve örnek için eğitimini okuyabilirsiniz.
Aşağıda program senteziyle ilgili birkaç öğrenme kaynağı bulunmaktadır.
1. Program Sentezi için Derin Öğrenme https://sunblaze-ucb.github.io/program-synthesis/index.html
2. Derin Kodlayıcı: Program Yazmayı Öğrenme (Derin Kodlayıcı: Program Yazmayı Öğrenme)
https://openreview.net/pdf?id=ByldLrqlx
3. Derin Öğrenme Programı Sentezi Microsoft Research
https://www.microsoft.com/en-us/research/blog/deep-learning-program-synthesis/
François Cholet tarafından sunulan Kaggle yarışması üzerinde çalışıyorsanız, bu makale size yardımcı olacaktır.
Kaynak: Pexels
"Onu yaratan aynı bilinç düzeyinden hiçbir sorun çözülemez." - Einstein
Her "imkansız" zorluk, sorunu çözmekten vazgeçmeyen insanlar tarafından adım adım çözülür.
Hadi, sen en iyisisin!
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun