"Yapay zeka sistemi ilk kez gerçek otonom programlamayı gerçekleştirir" Genetik algoritmayı kullanarak, ilk seviye programcıdır

Xinzhiyuan Raporu

Yapay zekanın otomatik olarak programlanmasına izin vermek her zaman bilgisayar bilimcilerinin hayali olmuştur. Şu anda, yapay zekanın programlama dilini otomatik olarak tamamlamasına izin vermek veya basit ekleme prosedürlerini yürütmek gibi bu alandaki sonuçlar hala çok sınırlıdır. Bugün tanıtacağımız çalışma, otomatik olarak eksiksiz bir yazılım programı oluşturabilen ilk makine öğrenimi sistemi "AI Programcısı" olarak biliniyor.

Araştırmacılar, bu sistemi, tamamen işlevsel bir programın gerçekten otomatik olarak oluşturulabileceğine dair uzun süredir devam eden varsayımı kanıtlamak için kullandıklarını söylediler. Bu çalışmaya özgü AI Programmer, karmaşık talimatları simüle etmek için makine öğreniminde genetik algoritmalar kullanır. AI Programmer tarafından oluşturulan program artık bir insan acemi programcı tarafından yazılan sonuçla aynı karmaşıklığa sahip olsa da. Ancak araştırmacılar, AI Programcısı tarafından yazılan programların geleneksel kategorileri tamamen aşabileceğine ve insan zamanı ve bilgeliğiyle sınırlı olmadığına inanıyor.

AI tarafından yazılan programlar, yalnızca test karmaşıklığı ve bilgi işlem kaynakları arasındaki en uygun noktayı bulur. Başka bir deyişle, olasılıklar sonsuzdur.

Araştırmacılar ayrıca yeni makine odaklı programlama dillerini yeniden düşünmemiz ve tasarlamamız gerektiğini, çünkü mevcut programlama dillerinin insan odaklı olduğunu ve ML tabanlı programlamaya uygun olmadığını söyledi. "Makine öğrenimi sürücüsü üretiminin geleceğini düşünürken, tipik programlama dilleri oluşturma yöntemini terk etmemiz ve yeniden gözden geçirmemiz gerekiyor."

Araştırmacılar, ancak bu şekilde, yapay zeka sistemleri tarafından yönlendirilen ve insan yaratıcılığı ve tasarımı tarafından yönlendirilen yeni bir bilgisayar yazılımı geliştirme geleceğini öngörmeye başlayabileceğimizi yazıyorlar.

AI Programmer'ın yazılım mimarisi. İnsan tarafından tahrik edilen çok az parça olduğu şekilden görülebilmektedir.Sadece başlangıçta komut girmeniz ve sonunda belirli bir göreve uygun fonksiyonları almanız yeterlidir.Geri kalanı makineler tarafından yapılır.

AI Programcısı: Teorik olarak her tür görevi tamamlayabilen programları otomatik olarak oluşturmak için genetik algoritmaları kullanma

Makaleye göre, araştırmacılar, AI Programmer'ı yazılım oluşturmaya yönlendirmek için yalnızca 8 talimat içeren, tipsiz bir programlama dili seçtiler.

AI Programmer tarafından kullanılan programlama dili Turing tamamlandı , Tablo 1'de gösterildiği gibi. Teorik olarak, Turing tam programlama dili, herhangi bir programlama görevini sınırsız zaman ve bellekle gerçekleştirebilir. Aslında, bu özelliğe sahip herhangi bir programlama dili, büyük programlama problemlerini çözebilir. Benzer şekilde, AI Programmer tarafından oluşturulan yazılım tüm görevleri tamamlayabilir.

Bu garanti ile, AI Programcı genetik algoritmasının özüne bakalım.

Yazılım programları oluşturmak için genetik algoritmaları kullanmak için önce bir genom oluşturmalısınız. Bir genom, tek bir birim olarak gruplanmış bir gen grubudur. AI Programmer'ın genom kodu bir kayan nokta dizisidir ve her benzersiz talimatın sabit değer aralığı, yukarıdaki Tablo 1'deki gen aralığı sütununda gösterildiği gibi 0 ile 1 arasındadır.

Genom oluşturulduktan sonra, AI Programcısı onu karşılık gelen bir programa dönüştürür, çalıştırır ve programın çıktısına bağlı olarak ortaya çıkan program için uygunluk atar. Oluşturulan program, sağlanan görevi çözmeye ne kadar yakınsa, uyarlanabilirliği o kadar yüksek olur ve sonraki nesil evrime devam etme olasılığı o kadar yüksektir. Her nesilde, AI Programmer, hafif rastgele tedirginlikler içeren ve hedef görevi çözmek için ebeveynlerinden daha iyi bir genoma sahip olabilecek alt rutinler oluşturmak için rastgele seçim, geçiş ve mutasyon kullanır.

Şekil 3, bir kayan nokta dizisinden bir genom oluşturmanın bir örneğini göstermektedir. Her bir değer aralığı, programlama dilinde belirli bir talimatla eşleşir. Başlangıçta bu değerler rastgele olup, oluşturulan programın düzgün çalışmamasına neden olur. Bununla birlikte, bir veya iki tanesi bazı etkili komutları çalıştırabilir ve yürütebilir. Bir program ne kadar başarılı olursa, kodu kullanmaya devam etme ve daha başarılı yavrular elde etme olasılığı o kadar artar.

Ebeveynler yavru yaratmak için genlerinin bir kısmını çocuklarına verirler Bu süreç Şekil 4'te gösterilmiştir. Ebeveynlerinden programlama talimatlarını devralmanın yanı sıra, her çocuk mutasyonlarla da karşılaşabilir, yani belirli genlere kontrollü ancak rastgele rahatsızlıklar ekleyebilir. Bu, belirli bir genin değerinin değiştirilmesine, sonuçta ortaya çıkan programlama talimatlarının değiştirilmesine ve tüm programın değiştirilmesine neden olur.

Yürütülebilir programlar, Şekil 5'te gösterildiği gibi yürütülmelerine göre sıralanır. Bunların arasında, belirli programlar genom havuzundan derhal silinecek ve yeni yavrular üretmek için başarılı programlar geliştirilecektir.

AI Programcısı sonuçları kullanır: "Merhaba Dünya" çıktısı, dizgiyi ters çevir, toplama, çıkarma, çarpma, Fibonacci dizisi çıktısı ...

AI Programmer, C # .NET tarafından tasarlanan modüler bir çerçeveden oluşur. Genetik algoritmaları çalıştırmak için bir motor, bir genom kodlayıcı ve kod çözücü, simülasyon programlarını yürütmek için bir sanal alan okuyucu ve kodu ikili yürütülebilir dosyalara dönüştürmek için bir derleyici içerir. AI Programcısı orijinal olarak tasarlandığında C # kullanılmış olsa da, tasarım ilkelerinin C # kullanımıyla sınırlı olmadığı unutulmamalıdır.

Araştırmacılar, AI Programmer'ın uyarlanabilir test yazılımı çerçevesinin şekillendirilebilir olduğunu ve geliştirildiğini belirtti. Kullanıcılar sayısız özelleştirilmiş yazılımı kendileri tasarlayabilir ve nihayetinde sistemin genetik algoritma (GA) üretimi ve yazılım programı gelişimine rehberlik edebilir.

Hedef program "Merhaba Dünya" gibi bir dizi oluşturmayı hedefliyorsa (yukarıya bakın), test puanı dizedeki bir sayı olabilir. Ancak, AI Programmer bayt seviyesinde kod ürettiğinden, test puanı çıktı karakterlerinin artan farkını hesaba katmalıdır.

Araştırmacılar, AI Programmer ile birçok yazılım programı oluşturabileceklerini söylediler. Tablo 2, oluşturulan programların bir listesidir.

Başlangıçta, araştırmacılar AI Programcısından "merhaba" çıktısı verecek çok basit bir program oluşturmasını istedi. 5700 nesilden sonra test başarılı oldu. Oluşturulan kod Şekil 9'da gösterilmektedir.

580.900 nesilden sonra, Şekil 10'da gösterildiği gibi "merhaba dünya" oluşturulur.

6,057,200 nesil sonra, AI Programmer Şekil 11'de gösterildiği gibi "Tüm insanları seviyorum" u başarıyla oluşturdu.

AI Programmer, karakter dizilerini tersine çevirmek için programlar üretir. Üretilen kod Şekil 13'te gösterilmektedir.

AI Programmer, Şekil 15'te gösterildiği gibi 92.400 nesil sonra toplama programları oluşturabilir; 177.900 nesil sonra çıkarma programları.

Şekil 16'da gösterilen oluşturma programı, Fibonacci dizilerini iki başlangıç giriş değerinden çıkarabilir.

Kağıt: Yapay Zeka Programcısı, yazılım programlarını otomatik olarak oluşturmak için genetik algoritmalar kullanıyor

Özet

Bu makalede, süreç boyunca minimum insan katılımıyla otomatik olarak eksiksiz bir yazılım programı oluşturabilen ilk makine öğrenimi (ML) sistemini tanıttık. Bu sistem, makine öğrenimi arama alanının ek yükünü en aza indirmek için sıkı bir şekilde kısıtlanmış bir programlama dili ile birleştirilmiş, çekirdek olarak genetik algoritma (GA) olan "AI Programcısı" olarak adlandırılır. Yapay Zeka Programlayıcısının yeni kısmı, (i) verimlilik ve güvenlik için el yapımı yerleşik bir tercüman dahil olmak üzere benzersiz sistem tasarımından ve (ii) talimat genlerini içeren genetik algoritmalara yapılan geliştirmelerden ( yönerge-gen) rasgele bağlanma ve programlama diline özgü genom yapımı ve eliminasyon teknolojisi. AI Programmer'ın sistem tasarımını ayrıntılı olarak tanıttık, sistemin çalışma prensibini ayrıntılı olarak tanıttık ve yazılım oluşturma işlevi ve performansının deneysel verilerini göstermek için ana CPU kullandık.

Kağıt adresi: https://arxiv.org/pdf/1709.05703.pdf

İş ayrıntılarını görüntülemek için orijinal metni okumak için tıklayın ve katılmanızı dört gözle bekleyin ~

mucize! Kadının kalbi 72 saat boyunca atmayı bıraktı ve sağlık personeli "dirildi"!
önceki
Xiamen'e kışın seyahat edin, sadece zaman harcayın
Sonraki
Guo Jing ve Huang Rong değil, bu çiftler gerçek kahramanlar!
Bağımsız askıya alma ile bağımsız olmayan askıya alma arasındaki fark nedir? Hangisi bir araba satın almak daha iyidir?
Renminbi aniden kozunu oynayabilir, Fed'in reddetme, altın standardına dönme veya büyük bir adım atma hakkı yoktur.
Highlander'a ek olarak, bu orta büyüklükteki SUV'ler fena değil, onları 200.000'den daha düşük bir fiyata alabilirsiniz.
Bu peri lezzetlerini yemediyseniz değersiz olacaksınız!
Yetkili sürüm 2018'de ulusal araç sahipliği ilk kez 200 milyonu aştı!
Santorini'den ayrılan Yunanistan, kendine mavi bir ülke demeye cesaret edemiyor ...
Beş yıldızlı kırmızı bayrak, seninle gurur duyuyorum!
Herkes günde 8 saat uyumaları gerektiğini bilir, ancak gerçek neden herkes tarafından bilinmeyebilir.
Geely, Great Wall ve BYD, Mart ayında satışlarını artırdı! Yerli otomobiller için bahar geliyor mu?
1.000 ölümcül hayran alın, dünyayı kazanın
Yıl sonunda faturaları ödemenin ardındaki gerçek: harcadığınız para hayatınızı ifşa ediyor
To Top