Yapay zeka sistemi ALICE, basit bir dilde insan gibi konuşabilen, cihazları kontrol edebilen ve aynı zamanda öğrenebilen bir yazılımdır. Bu programı kullanarak bir bilgisayarla iletişim kurabileceğiniz gibi fiziksel dünyayla da etkileşime girebilirsiniz. Program ayrıca akıllı ev sistemleri, otomasyon sistemleri vb. oluşturmak için Arduino bağlantısını kullanıyor.

Yapay zeka programı ALICE'ı indirin

Tanım:

Yapay zeka programı ALICE - Elektronik Mantıksal Akıllı Sistem. Yapay zeka sistemi ELIS bir programdır. Bu, basit bir dilde bir insan gibi konuşabilen, kontrol edebilen bir yazılımdır. cihazlar ve ayrıca öğrenin. Bu sistem bir asistan değildir, çünkü bir çocuk gibi öğrenebilen ve bilinçli bir diyalog yürütebilen insansı bir sistemin geliştirilmesine vurgu yapılmaktadır.

Bu programı kullanarak iletişim kurabilirsiniz bilgisayar ve ayrıca fiziksel dünyayla etkileşime girer. Program ayrıca akıllı ev sistemleri, otomasyon sistemleri vb. oluşturmak için Arduino bağlantısını kullanıyor.

Yapay Zeka Sistemi ELIS modüler bir prensip üzerine inşa edilmiştir. Sistem evrenseldir ve işlevselliği genişletilebilir. modüller. Modüller basitten karmaşığa kadar farklı olabilir.

Yapay zeka programı ALICE, bir kişiyle bağımsız olarak diyalog yürütüyor.

Bağımsız olarak diyalog başlatabiliyor, bunu birkaç kez yapabiliyor, bu da onu zaten soru-cevap yapısına göre çalışan sesli asistanlardan ayırıyor. ALICE yapay zeka programı kişinin söylediklerine göre kendi kararını veriyor ve eğer bilmiyorsa eğitilebiliyor.

Kullanıcıyla diyalogun desteğiyle sistem kendi kendini öğrenir. Sistem, bir veya birden fazla soruya verilen birden fazla yanıtı hatırlayabilme ve bir veya birden fazla yanıt için birden fazla soru oluşturabilme yeteneğine sahiptir.

Yapay zeka programı ALICE, Arduino platformuyla tamamen uyumludur, böylece her türlü cihazı kontrol edebilirsiniz. Sistemden ışığı açmasını isteyebilirsiniz, sistem tam olarak nereden açılacağını soracaktır ama siz belli bir yerde ışığın hemen açılmasını isteyebilirsiniz, sonra bir daha sormayacaktır.

Yapay zeka programı ALICE aynı zamanda üçüncü taraf uygulamaları vb. çalıştırabilir.

Modüller:

Şu anda ALICE yapay zeka programı aşağıdaki modülleri içermektedir:

"Bilgi" modülü - WIKIPEDIA hakkında bilgi aramak için modül. Sistem her türlü cihazı, nesneyi vb. bilir, örneğin bisikletin ne olduğunu veya elmanın ne olduğunu sorun, sistem size bunun ne olduğunu söyleyecektir,

"Haberler" modülü. Kullanıcının ilgi alanlarına ilişkin en son haberler. Sadece hangi haberi sorun veya haberi söyleyin, sistem size söyleyecek ve daha fazlasını söylemeniz gerekip gerekmediğini soracak, evet yanıtı verecek, size daha fazlasını anlatacak,

"Hava durumu" modülü. Şehrimde bugün ve yarın için hava durumu. Sıcaklık, nem, rüzgar hızını, yağmur mu, don mu yağacağını öğrenebilirsiniz. Bugün şemsiye mi almalısınız, yoksa şort mu giyersiniz diye sorabilirsiniz.

"Hesap Makinesi" modülü. Bunu kullanarak modül, sistem nesneleri ekleyebilir, çıkarabilir, çarpabilir ve bölebilir vb. Örneğin iki elma artı iki elma kaç eder diye sorarsanız sistem dört elma cevabını verecektir. Geliştirilmekte olan modül,

modül "Çalar saat". Modül istediğiniz sayıda alarm ayarlamanıza olanak tanır. Çalar saatin ayarlanması sistem Seni uyandıracak. Şunu söylemeliyim ki, beni sabah 7'de uyandırın. Geliştirilmekte olan modül,

“Cevapların ayarlanması” modülü. Bilginin veritabanına doğru yerleştirilmesi,

modül “Tatiller, isim günleri, etkinlikler.” Bu modül kimin isim günü olduğunu veya hangi tatil olduğunu öğrenmenizi sağlar,

"Tost" modülü. Modül sistemin çeşitli tostlar yapmasına olanak sağlar. Sormalısın, kadeh kaldırmalısın,

"Anekdotlar" modülü. Sistem binlerce espri biliyor. Ondan sadece bir fıkra anlatmasını isteyin, aynı zamanda yetişkinlere yönelik bir fıkra anlatmasını da isteyebilirsiniz.

"Şiirler" modülü. Bu modül sistemi bir şaire dönüştürür. Sadece bir ayet okumayı isteyin, yetişkinler için de bir ayet okumayı isteyebilirsiniz,

"Aforizmalar" modülü. Sistem binlerce aforizma biliyor. Ondan sadece bir aforizma söylemesini isteyin, yetişkinler için de bir aforizma söylemesini isteyebilirsiniz.

"Aydınlatma Kontrolü" modülü. Bu modülü kullanarak sistem bir apartman veya evin aydınlatmasını kontrol edebilir. Bunu yapmak için Arduino ve Ethernet Kalkanını bağlamanız gerekir,

“Sayıları tahmin etme” modülü. Sistem gizli sayıyı tahmin etmeye çalışır. Beklenen rakamı adlandırın, sonra ona az mı yoksa çok mu olduğunu söylemeniz gerekir. Geliştirilmekte olan modül,

"Kullanıcı" modülü. Modül kullanıcı verilerini, adını, şehrini vb. değiştirmenize olanak tanır. Örneğin, ismi değiştirmek için şunu söylemelisiniz: Adımın Oleg olduğunu hatırla ve o şunu hatırlayacaktır:

"Diyalog" modülü. Diyalog analizi. Günlük diyaloğu işleyen, kullanıcıyı analiz eden, öğrenen vb. bir modül.

Not: ALICE yapay zeka programı örneğini kullanarak teknolojinin açıklaması.

Sudan su elde etmek için enerjiden bağımsız tesisat...

Biyobozunur plastik (biyoplastik)...

Yüksek verimliliğe sahip taşınabilir güç kaynağı...

Ekranoplanlar ve ekranoplanlar

Sitall

Yüksek mukavemetli ve donmaya karşı dayanıklı kauçuk...

Kamalı değirmenler

Balık çiftlikleri ve balık yetiştirme teknolojisi...

Su tesislerinden çıkan çamurların işlenmesi...

derin çiftlik

Parçaların ultrasonik temizliği için donatım...

Herkes hayatında kendi bisikletini yapmıştır. Bunu yapma arzusunu haklı çıkarmak için şunu söyleyebiliriz: eğer insanlar bunu periyodik olarak yapmasaydı, dünya pek çok şeyi göremezdi.

Çok uzun zamandır kendi oyunumu, daha doğrusu oyun tabanlı yapay zekayı (AI) yapmak istiyordum. Yalan söylemeyeceğim: İlk başta sadece bilgi eksikliği vardı ve sonra garip bir şekilde zaman geldi. Çocukluk hayalimi gerçekleştirmek için birkaç haftalık nispeten boş zamanım vardı.

Size yaşananları anlatacağım, ayrıca izlediğim yolu ve bu yolda yaptığım gözlemleri de anlatacağım. Kodu değil, hayalimi gerçekleştirme sürecinde karşılaştığım düşünceleri, düşünceleri ve sorunları anlatacağım için hemen rezervasyon yapacağım.

Yapı planlama aşaması

Yapay zeka, yaşam alanının yapısını planlarken derhal genişletilebilirlik ve en azından bir tür evrensellik oluşturma girişiminde bulundu. Mümkün olan her yerde nesne yönelimli programlama yaklaşımlarının yaygınlaştırılmasıyla her şeyin dinamik diziler üzerinde yapılmasına karar verildi.

Yapay zeka habitat sınıfı hiyerarşisi birkaç sınıf çiftine dayanıyordu:

  • Kilit nokta– yol grafiğindeki bağlantıların kesişimlerini yansıtan bir sınıf.
  • Yol– Anahtar Noktalar arasındaki bağlantıları sağlayan bir sınıf.
  • Bir obje– örnekleri Yola yerleştirilen Keypoint sınıfından türetilen bir sınıf.
  • Ders– örnekleri karar verme işlevlerine sahip olan aynı sınıf Nesnesi.

Sınıf, sınıfların listesini kapatır Dünya Listelenen tüm sınıfları çerçeveleyen, birbirleriyle etkileşimlerini düzenleyen.

Çalışmak için spesifik, karmaşık olmayan bir oyun konseptine ihtiyacımız vardı. Pack-Man oyununun konsepti de basit kuralları nedeniyle bu şekilde seçildi.

Oyun Nesneleri ve Konularının ek alt sınıfları hemen belirlendi:

  • ders Pacman– aynı Packman;
  • nesneler Meyve– Pac-Man'in yemesi için olanlar;
  • konular Hayalet- oyunda Pac-Man'in yaratıldığı kişiler.

İş planlama aşaması

Yüzeysel bir analizin gösterdiği gibi: Sistem işlevselliğinin az olmasına rağmen oyunun tam olarak çalışması için gereken kod miktarının oldukça büyük olduğu ortaya çıktı. En azından yaygaraların bazı sonuçlarının görülebilmesi için görevlerin birçok ayrı alt göreve bölünmesi gerektiği yönünde doğal bir sonuca varıldı; aksi takdirde çocukların arzuları, çocukça olmayan, uzun süren bir kabusa dönüşebilirdi.

Aşağıdaki uygulama aşamaları hemen belirlendi:

  1. Yapay zekanın yaşayacağı dünyanın işleyişini sağlayan sınıfların oluşturulması (Dünya, Anahtar Nokta ve Yol sınıfları);
  2. Dünyayı görselleştirmek ve aynı zamanda veri görselleştirme işlevselliğinin temelini oluşturmak.
  3. Object sınıfının oluşturulması ve çevre ile etkileşimi.
  4. Bir Object'in yani Fruit'in ilk örneğinin oluşturulması ve render edilmesi.
  5. Bir Nesneyi Konuya dönüştürmek için bir işlevsellik eklentisi oluşturma.
  6. Pacman'in bir örneğini oluşturma. Oluşturma. Oyuna kurallar ekleme.
  7. Kullanıcı etkileşim kodunun geliştirilmesi, sistem çalışmasının “gerçek zamanlı” organizasyonu.
  8. En kısa yol arama algoritmasının uygulanması. Bunu Pac-Man'in kontrolüne ve durumunun Dünya tarafından zaman içinde otomatik olarak değişmesine bağlamak.
  9. Ghost'un bir örneğini oluşturma. Oluşturma. Oyuna kurallar ekleme.
  10. Sistemin küçük yollarla iyileştirilmesi.
  11. Eğlenmek.
Bu planla işe koyuldum.

Uygulama

İlk iki aşamanın basit olduğu ortaya çıktı. Üç sınıf düzenlendi: Dünya, Anahtar Nokta ve Yol: bunların yapıcıları, yıkıcıları, sınıf örnekleri arasında referans yoluyla bağlantı oluşturulmasını sağlayan çeşitli işlevler ve hepsi bu.
Beş nokta ile Dünya sınıfının bir örneği oluşturuldu; burada yollar, merkezi noktası kaydırılmış bir zarf oluşturdu ve böylece noktalar arasındaki mesafeler açıkça farklı uzunluklarda oldu. Çizim çok ama çok mütevazı bir şekilde yapıldı: çizgiler ve dairelerle - sadece Dünyada neler olduğunu anlamaya yetecek kadar.

Aşama No.3 Ve №4 Ayrıca çok fazla zorluk yaratmadılar - Frukta ortalıkta koşmadı, yaramazlık yapmadı, sadece orada uzanıp kendini çizdi.

İle başlayan 5 numaralı aşama asıl çalışma başladı. Subject işlevi, Subject'in yapmak istediği şeylerin listesi biçiminde Object sınıfı kullanılarak yazılmıştır. Deneklerin yapılacaklar listesini izleyen ve bunları Deneğin kullanabileceği zaman miktarı ve Deneğin eylemlerine uygulanan oyunun kısıtlamaları ve kuralları dahilinde gerçekleştiren Dünya sınıfının işlevselliği eklendi.

Aşama 6İşin garibi, sorunlar Pac-Man'in bir kopyasının ortaya çıkmasıyla başlamadı. Konu türünün bir örneği ortaya çıktı ve ekranda istenen koordinatta bir daire çizildi. Ve Meyve yeme kuralları eklendi.

Hatta 7 numaralı aşama Fare ile belirtilen koordinata "koş" komutu şeklinde bir görev oluşturulduğunda herhangi bir sorun yaşanmadı. Pac-Man'in zaten üzerinde durduğu ve Pac-Man'in itaatkar bir şekilde orada yürüdüğü Yol'a düşecek en yakın nokta arandı.

Maceralar başladı 8 numaralı aşama En kısa yol arama algoritmasının uygulamasının gerçekleştirildiği yer. En kısa yol fonksiyonu, dinamik dizilere ve grafik yapılarına uyarlanmış, değiştirilmiş bir Lee algoritmasıydı. Ana zorluklar, ters hareketin uygulandığı kod yazarken yaşandı. Object örneklerini taşırken grafik yapısının yeniden oluşturulma sayısını azaltmak için Nesneler, Yollarla bağlanan düğümsel Anahtar Noktalar olarak değil, bir Yola ait Anahtar Noktalar olarak yapıldı. Yazma sırasında çalışan bir kodum olduğundan, seçilen çözümün doğruluğundan hâlâ emin değilim. Daha basit olanı: ya Dünya grafiğini yerel olarak ve aynı zamanda grafiğin değişen parçaları boyunca hareket eden Konuların rotalarını yeniden oluşturun ya da sadece Konular ve Nesnelerin sınıflarını değiştirilemez Yol grafiğine yerleştirin.

Elbette işin her aşamasında hafızaya erişim hataları sürekli olarak parladı. En ciddi durum, mesajın oyunun ortasında bir yere düşmesiydi. Yollar ile yenildiğinde yok edilen Meyve örnekleri arasındaki bağlantıyı kaldırmayı unuttum. Hata, yenildikten bir süre sonra hafızanın üzerine yazıldığında ortaya çıktı. Yok edilen nesnenin verileri orada depolandığı ve yeni dinamik nesne tarafından üzerine yazılmadığı sürece her şey yolundaydı; Programın çöküşü hemen gerçekleşmedi.

Sonunda 9 numaralı aşamaİlk Hayalet eklendi. Hedef noktası her zaman Pacman'in koordinatlarıydı. En kısa yolu bulmak için önceden yazılmış ve saniyede 24 kez sürekli olarak çağrılan bir işlev kullanıldı. Eylem listesi oluşturulduktan sonra Hayaletin hareketi sistem (Dünya) tarafından otomatik olarak gerçekleştirildi.

kendime geldiğimde 10 numaralı aşama, o zaman dedikleri gibi kızak kapalı!
Rastgele bir harita oluşturucu yapıldı. Yollar oluşturmak için bir harita oluştururken, bunların kabul edilebilir oluşturulması için çeşitli kriterler göz önünde bulunduruldu: düğüm noktalarında en fazla 4 Yol kesişmemeli ve düğüm noktaları, tıpkı yolların kesişmemesi gerektiği gibi, belirli bir mesafede önceden belirlenmiş Yollara yakın olmamalıdır. belirli bir sabitten daha uzun.

Daha sonra Pac-Man'i ısrarla takip eden birkaç Hayalet eklendi.

Bu tür Hayaletlerle oynamak kesinlikle gerçekçi değildi. Ve sonra Hayaletlerin daha doğal davranması ve haritanın diğer tarafında Pac-Man'in rotasını hafifçe değiştirdiğinizde rotalarını kökten değiştirmemeleri için bir "savaş sisine" ihtiyacım olduğu aklıma geldi.
İlk düşünce, her Özne için dünyanın görünür öğelerinden bir dizi oluşturmanın ve ayrıca Öznenin nerede, kimi ve ne zaman gördüğünü depolamak için hafızasını tamamlamanın gerekli olduğuydu. Biraz düşündükten sonra, sinek yemek isteyen bir örümcek için tüm bunların uygulanmasının çok karmaşık ve zahmetli olduğunu fark ettim.

Çözüm mümkün olduğu kadar basit bulundu. Haritada Hayalet'in gittiği rastgele bir nokta vardı (böylece haritada basit bir gezinti ve Pac-Man'in aranması organize edildi). Pac-Man, Hayalet'in belirli (sabit bir şekilde belirlenen) görünürlük aralığına girerse, Hayalet ona giden rotayı yeniden oluşturdu. Kurban görüş alanı içindeyken Hayalet sürekli olarak ona doğru rotasını yeniden oluşturuyordu ve Pac-Man gözden kaybolduğunda Hayalet kurbanın onu en son gördüğü noktaya kadar takip etmeye devam ediyordu. Bu noktaya gelindiğinde haritada körü körüne gezinmeler yeniden başladı.

Aslında orada durdum ve sakince bir nefes aldım.
Sonunda dekoratif unsurlar tamamlandı: “Oyunun sonu” (Pac-Man yemek), puan sayma (yenilen Meyve sayısı), “Seviyeyi tamamlama” (tüm Meyveleri yemek).

Eziyetin sonuçları.

Dökülen büyük miktarda ter ve kana rağmen, nispeten küçük sonuçlar elde edildi: Daha ileri araştırmalar için, örümcek gibi en basit yırtıcı hayvanın zekasının yaşadığı Dünyanın temeli anlaşıldı. Görünüşe göre, daha sonra, "Kurban" (oyun içinde bunlar Pac-Man'den kaçan Meyveler) davranışını uygulamak için mevcut AI algoritmasında bir modifikasyonun yanı sıra birleşik AI ("Yırtıcı-av) oluşturmak gerekiyor. ”), Pac-Man botunun bunu yapabileceği ve daha sonra "oynamak" için enerji harcamayacağı, ancak yalnızca bu "Kolobok" un bir test tüpüne atılmasını izlemekten keyif alacağı.

Ne olduğunu kendi gözlerinizle görebilirsiniz “” (Win32 için yürütülebilir dosya)*. “Matris Modu” geçiş anahtarına dikkat edin. Açtığınızda sistemin nasıl kararlar verdiğini görebilir ve biraz Neo'ya benzeyebilirsiniz. Yapay zekanın çalışmasının daha iyi anlaşılması için maalesef 10. aşamada yapmayı düşündüm. Bunu daha önce yapsaydım, en kısa yol arama algoritmasında hata ayıklamaya daha az zaman harcardım.

Not: Her şey ekonomik fizibilite ve optimallik uğruna yapılmıyor; bazı şeyler zevk uğruna yapılıyor. Grafiklerin sadeliğine rağmen “O” nefes almaya başladığında tarifsiz bir mutluluk hissettim.

* Planlanan tüm çalışmaları tamamladıktan ve makaleyi yazdıktan sonra nadir görülen bir hata daha keşfettim. Hatanın konumu, sorunun oyun dünyasının simülasyonunun normal bir zamanlayıcı işleyicide yapılması ve Pac-Man kontrolünün normal bir fare işleyicisinde gerçekleştirilmesiyle ilgili olduğunu gösterir. Genel olarak her iki fonksiyonda da erişilen verinin bütünlüğünü sağlayacak sıradan semaforlar veya benzeri “anlaşılmaz” şeyler yoktur. Düğünden önce bu hatanın düzeleceğini ve ticari versiyonun düzeltileceğini düşünüyorum.

Etiketler: Etiket ekleyin

Bu bölüm, ne eksik ne de fazla, entelektüel aktivitenin altında yatan algoritmadan bahsediyor. Aynı zamanda benzer olayların doğal zekada nasıl ortaya çıkabileceği sorusuna da cevap vermeye çalışacağız. Elbette zekanın tüm sırlarını açığa çıkarmayacağız, bir süper beyin yaratmayacağız, ancak bundan sonra nereyi kazacağımızın ilkelerini, ana yönünü öğreneceğiz. İnsan zekası hakkında daha fazlasını öğreneceğiz. Ayrıca şu anda bilgisayarda programlanabilen algoritmaların pratik taslakları da olacak.

Ama önce kısaca önceki bölümlerde () öğrendiklerimizi anlatalım. Ben orada ne olduğunu çoktan unuttum, bu yüzden kendime hatırlatmam gerekecek, yoksa daha fazlasını söyleyemem bile. :) Hatırlayanlar için bu bölümü atlayın.

Önceki bölümlerde neler oldu?

Penrose, harika kitaplarında beynin kesinlikle doğru yargılarda bulunabileceğine inanmakta ve zihinsel süreçlerin temelinin, sınırlı bir zamanda sonsuz hesaplamalar yapabilen fiziksel süreçler olduğunu savunmaktadır. Üstelik bu süreçler herhangi bir şeyi değil, kelimenin tam anlamıyla mutlak ve reddedilemez gerçeği hesaplar. Ve beyin, düşünmek için bu süreçleri "seğirme" yapabilir. İşte bu yüzden beynin çalışması için bu tür süreçlere ihtiyaç vardır. Ve bu tür süreçler günümüz fiziği tarafından bilinmese de Penrose, evrenin daha derin bir düzeyinin bu tür süreçlere dayalı başka bir gerçeklik oluşturduğuna inanıyor.

Penrose bu diğer gerçeklik konusunda pek çok açıdan haklıdır ve dahası, bir gün evrenin temellerinde ne olduğuna dair daha az ilginç ve benzer fikirler anlatacağız. Ama yine de Penrose acele etti, tabiri caizse birkaç adım atladı. Entelektüel faaliyetin büyük çoğunluğu (hepsi olmasa da) daha sıradan ve sıradan şeylerle açıklanabilir.

Penrose'un şüphesiz değeri, entelektüel faaliyetin neden hiçbir şekilde biçimsel mantığa (veya başka bir deyişle katı algoritmalara) dayanamayacağını ikna edici bir şekilde açıklamış olmasıdır. Daha doğrusu Penrose, kesinlikle doğru mantığın (ki bu aynı zamanda Penrose'un anlayışına göre entelektüel aktivitedir) bilinen fiziksel süreçlerle imkansız olduğunu gösterdi. Ancak bunu kendi yöntemimizle anladık, yani entelektüel faaliyetin kesinlikle doğru mantığa ihtiyacı yok. Veya başka bir deyişle, insan zekası makuldür, gerçeğe iyi yaklaşımlar üretir, ancak yine de hata olasılığı vardır. Bu da bazı şeyleri kökten değiştiriyor, yani doğal zekanın nasıl açıklanacağına, yapay zekanın nasıl inşa edileceğine dair yaklaşımları tamamen değiştiriyor. Ve böyle bir zeka, normal bir bilgisayarda programlanan bir Turing makinesinde simüle edilebilir, ancak daha büyük güce sahip ve örneğin kuantum veya optik gibi doğası gereği paralellik içeren bir mimariye sahip olmak daha iyidir.

Şimdi size hakikat ve hakikat olmayan mantık etrafında ne tür bir yaygaranın olduğunu hatırlatalım. Matematiksel ve bilgisayar hesaplamaları, insanın akıl yürütmesi, mantıksal yapılar ve çıkarımlar, bir algoritma veya biçimsel sistem kavramıyla ilişkilidir (aslında bunlar aynı şeydir). Bir algoritmanın yürütülmesi (diğer bir deyişle resmi bir sistemin kurallarının uygulanması), her türlü hesaplamanın, düşüncenin ve diğer fiziksel süreçlerin (veya en azından oldukça iyi bir yaklaşımın) bir modelidir. Algoritma, bazı soyut bilgisayarların (Turing makinesi) sırayla adım adım yürütebileceği bir dizi talimattır.

Katı bir algoritma kavramı vardır (aynı zamanda eksiksiz ve tutarlı bir resmi sistemdir). Aynı giriş verileri kümesinde, katı bir algoritma son adım sayısı aynı cevabı verecektir. Biçimsel sistemlere ve mantıksal akıl yürütmeye uygulandığında bu, başlangıç ​​koşulları için sonlu bir sürede doğru (tutarlı ve net) bir yanıtın bulunabileceği anlamına gelir. Bu tür hesaplamalara deterministik de denir.

Ancak bu koşulların karşılanmadığı deterministik olmayan (katı olmayan) algoritmalar da vardır (bunlar aynı zamanda eksik/çelişkili biçimsel sistemlerdir). Bir algoritma için sonluluk koşulunun sağlanamaması, algoritmanın hesaplamasını tamamlayıp tamamlamayacağının bilinmemesi ve bunun önceden nasıl öğrenileceğinin belirsiz olması anlamına gelir. Deterministik olmayan bir algoritma, hesaplamasını tamamlayabilir veya sonsuza kadar dolaşabilir, ancak tam olarak ne yapacağı, tahmin edilmesi sonsuza kadar sürebilecek bir gizemdir. Biçimsel sistemler için, orijinal ifadenin doğruluğunun veya yanlışlığının ispatı bir gün anlaşılmaz bir şekilde sona erecek veya sonsuza kadar devam edecektir. Tutarsızlık, resmi bir sistem içerisinde orijinal ifadeye hem doğru hem de yanlış yanıt verecek farklı kural zincirlerini seçebileceğiniz anlamına gelir. Algoritma açısından bu, aynı verilerden farklı sonuçların elde edilebileceği anlamına gelir.

Penrose dahil pek çok kişi entelektüel faaliyetin katı biçimsel mantığa dayandığını söylüyor. Ama burada küresel bir pusu var. Gödel'in uzun süredir kanıtlanmış teoremi, resmi bir sistemin hem tam hem de tutarlı olamayacağını söylüyor. Tamlık, resmi bir sistemin kendi bilgi alanıyla ilgili her şeyi bilmesi anlamına gelir. Böyle bir sistem, diğer şeylerin yanı sıra, kendi gerçeğini de yargılayabilir. Eğer resmi bir sistem dışarıdan biri tarafından oluşturulmuşsa, o zaman doğru sonuçlar üreterek ve bu birinin onu doğru yaratıp yaratmadığını hiç umursamadan çalışabilecektir. Eğer resmi sistem bunun doğru yapıldığından emin olmaya çalışırsa başarısız olur. Çünkü sistemimiz tutarlı ama tam değil. Eğer sistem kendisinin doğruluğunu (tam) yargılayabilirse, o zaman böyle bir sistemin iç çelişkileri olacaktır ve faaliyetlerinin sonuçlarının mutlaka doğru olması gerekmez. Neden? Kendi kendini sınama konusu (kendini tanıma, kendini yansıtma) sonsuz hesaplamalar kategorisine ait olduğu için dahil.

Bundan ne sonuç çıkıyor? (Penrose'a göre) insan zekasının eksiksiz ve tutarlı bir sistem olduğu ortaya çıktı, çünkü doğru ifadeler üretebiliyor ve aynı zamanda kendisinin doğruluğunu da izleyebiliyor. Ancak Gödel'in teoremine göre bu imkansızdır. Dolayısıyla kısa bir anda sonsuzluğa bakabilen, bir cevap bulabilen ve bu cevabı beyne geri gönderebilen aklın çalışması için bilinmeyen fiziksel süreçleri dahil etmemiz gerekir. Ancak daha önce de belirttiğimiz gibi, çok makul bir şekilde gerçek ve yanılmaz olduğunu iddia edebilmesine rağmen zekanın hiçbir şekilde tam ve tutarlı olması gerekmez.

İkinci tuzak ise fiziğin, biçimsel mantığın üzerinde işlediği varlıkları bilmemesidir. Yani, biçimsel akıl yürütme genellikle doğal sayılar kavramlarına, doğruluk ve yanlışlık kavramlarına dayanır. Doğal sayılar 1+1 = 2, 2+1 = 3 vb. olan sayılardır. Doğru = 1, yanlış = 0, gerçeğin olumsuzlanması = yanlış. Tüm birimler birbirine kesinlikle eşittir, terimlerin yeniden düzenlenmesi toplamı değiştirmez vb. Ancak sorun şu ki, dünyamızda doğal sayılarla açık bir şekilde karşılaştırılabilecek bu tür parçacıklar, bu tür şeyler veya süreçler yok ve aynı zamanda aritmetik kuralları, herhangi bir aralıktaki bu varlıklar için karşılanacak. Bazı aralıklarda aritmetik yaklaşık olarak doğrudur ancak bunun ötesinde küresel aksaklıklar başlar. Bu nedenle, kabaca konuşursak, biçimsel mantık, özü oldukça belirsiz olan varlıklarla ne olduğunu anlamadan çalışır. Üstelik aritmetiğin kendisi de tam ve tutarlı sistemlere ait değil, bu çok komik bir gerçek. Ve genel olarak mutlak gerçek ve doğal sayılar gibi kavramların prensipte var olamayacağı görülüyor. Tam olarak nasıl ve neden olacak ilerleyen bölümlerde.

Bundan ne sonuç çıkıyor? Beyinde ya da bilgisayarlarda meydana gelen tüm süreçler, tüm hesaplamalar, tam ve tutarlı hesaplamalar için iyi ve makul bir yaklaşım sağlasalar da, doğası gereği ya eksik ya da çelişkilidir.

Penrose neden çelişkili biçimsel sistemlerden hoşlanmıyor, neden Penrose bunların entelektüel faaliyetin temeli olma hakkını reddediyor? Hatırlayacağımız gibi, çelişkili bir biçimsel sistemde aynı veriler için 1 = 2 noktasına kadar hem doğru hem de yanlış bir ifade türetmek mümkündür. Bu temelde Penrose çelişkili sistemlerin ortaya çıkacağını ima ediyor. Her zaman(!)çelişkili sonuçlar üretir. Buradan Penrose'un kaotik süreçlerle ilgili çok dar bir yorumu var; bunların ortalama olarak katı bir biçimsel sistem tarafından modellenebilecek basit rastgele süreçler olduğuna inanıyor.

Aslında çelişkili sistemler çoğu durumda gerçek sonuca yakınlaşabilir; iç çelişkilerin hemen sisteme hakim olması ve sistemi yok etmesi hiç de gerekli değildir. Çelişkilerin en aza indirildiği sistemler olabilir. Ve soyut bir bilgisayarda çalıştırıldıklarında bile deterministik olmayacaklar, eksik ve tutarsız olacaklar, ancak çoğu durumda makul bir sonuç üretecekler. Penrose neden çelişkili sistemlerin her zaman çelişkileri tarafından yok edileceğine karar verdi? Penrose bu konuda sessiz...

Üstelik. Önceki bölümlerde gördüğümüz gibi, ister bilgisayarlarda ister beyinlerde olsun, dünyamızdaki süreçlerin tümü doğası gereği belirsiz ve çelişkilidir. Ancak çoğu durumda doğru sonucu üretirler. Bunun nedeni, bu süreçlerin ya benzer hesaplamaların birden fazla tekrarından ya da çok sayıda benzer unsurdan oluşması ve böylece bu tekrarların veya unsurların kombinasyonunun çoğu durumda istikrarlı ve doğru bir sonuç üretmesidir. Aynı zamanda elbette küçük bir iç çelişkinin büyüyüp tüm sistemi yok etme ihtimali de çok küçük. Ancak çoğu durumda sistem uyumlu görünüyor; birbirini etkileyen unsurlar iç çelişkileri en aza indiriyor. Dünyamızdaki tüm süreçler yüksek düzeyde uyumlu değildir, ancak bu tür süreçler mevcuttur ve bilgisayarlarda ve beyinde olup bitenler de bunlardan biridir. Dünyamızda böyle bir uyumun nereden geldiği ise aşağıdaki bölümlerin konusudur. Dünya görüşlerimizde, entelektüel faaliyetlerimizde, bir şekilde küresel olarak hatalı olmamız, yargılarımızda evrenle ilgili tüm anlayışımızı tamamen alt üst edebilecek küçük bir solucan deliği olması ihtimali çok küçük. Ancak ilerleyen bölümlerde bunun hakkında daha fazla bilgi vereceğiz.

Başlangıçta insan düşüncesi tam da bu tür süreçlere dayanmaktadır. Uzun mantıksal zincirler yok, net kurallar yok. Bunun yerine, uzun işlem döngüleri olmayan, kısa durum-tepki zincirleri vardır. Bu zincirlerin elemanları çok sayıda girişe sahiptir ve elemanın içinde giriş verileri, çıkışta net bir çözüm veren birçok paralel, birbirini kopyalayan, bulanık yollara bölünmüştür. Bu tür unsurlara kısa ve geniş makul kurallar diyoruz. Bu tür kurallar mantıksal çıkarımlarla meşgul değildir; zaten bildikleri durumlara yönelik hazır bir çözümü “hatırlarlar”. Bu tür kuralları öğrenme mekanizması da açık bir mantıksal sonuçtan uzaktır ve önceki bölümlerde açıklanmıştır.

Bu tür süreçler gerçek dünyayla etkileşim için iyidir ancak biçimsel mantık onlar için zordur. Ancak insan zekası resmi mantık modunda çalışabilir ve bilgisayar hesaplamalarını taklit edebilir. Belki, ama çok daha "ağır" süreçler pahasına. Basit bir mantıksal devrenin, basit bir programın beynindeki hesaplamaları yürütmek için, bir araya geldiklerinde katı mantığın çalışmasına benzer bir sonuç veren sayısız kısa bulanık kural kullanılır. Ve bu kurallar hiçbir şekilde biçimsel mantık için tasarlanmadığından, biçimsel mantığı taklit etmede yer alan kuralların sayısı, gerçek dünyayla etkileşime girmekten çok daha fazla olacaktır. Bu nedenle çeşitli hayvanlar mantıksal düşünme yeteneğine sahip değildir; bu, gelişmiş bir insan beyni gerektirir. Her ne kadar farklı hayvanların geçerken çözdüğü günlük görevler bir bilgisayarın gücünün ötesinde olsa da.

Ancak bu tür "ağır" süreçlerin de bir avantajı var. Beynin yüksek derecede inandırıcılığa sahip yeni mantıksal yapılar ve bilgisayar programları üretebilmesi, basit ama etkili bir algoritmanın ise işini ancak anlamsız bir şekilde yapabilmesi gerçeğinden oluşur. Türetilmiş yapıların karmaşıklığı, başlangıçta beyinde yer alan süreçlerin derecesinden çok daha azdır. Çelişkili entelektüel süreçlerin gerçek mantıksal yapılar yaratması çelişkisini çözen şey, karmaşıklıktaki bu farklılıktır. Eğer karmaşıklıktaki bu farklılık dikkate alınmazsa, bu gerçek yapıların nereden geldiğini anlamanın hiçbir yolu yoktur.

İnsanlar karmaşık mantıksal yapılar gerektiren problemleri kelimenin tam anlamıyla “bilimsel dürtme” yöntemini kullanarak çözerler. Yani, basit bir seçenek bulmak için, onun hesaplamasını beyinde çalıştırın, yanlış noktaları görün, bir sonrakini bulun (doğru seçenek olması gerekmez), hesaplamayı yeniden taklit edin vb. İyi bir eğitimle bu tür yapılar, bilincin katılımını gerektirmeyen hızlı otomatik eylemler haline gelir (ve yine de karmaşıklıkları hala çok büyüktür), tipik durumlar hatırlanır ve gözükmek beynin sıradan bir bilgisayar gibi (biçimsel mantığa uygun olarak) çalıştığı, ancak durum hiç de böyle olmadığı.

Aynı zamanda, beyin uzun bir süre "çalıştığında", bir görev için "hızlandığında", ilk veriler, başarısız girişimler, belirsiz önseziler ve gerçeğin yakınlarda bir yerde olduğuna dair özlemler ortaya konulduğunda da olur. Ve sonra patlama ve bir anlık içgörü, her şey yerli yerine oturuyor ve yeni bir gerçek doğuyor. Bu gerçek anında doğmuş ve yüksek alemlerden gelmiş gibi görünebilir. Ama aslında sonuç aynıdır, içgörü parıltısından önce, sayısız kısa ve makul kuralları içeren, değiştiren ve yaratan, bunları bir şekilde birleştirip uyumlu hale getirmeye çalışan, çoğunlukla başarısız olan uzun ve zorlu bir çalışma geldi. Ve şimdi tüm bu kuralların birbiriyle uyumlu bir şekilde birleştirildiği, tek bir uyumlu süreçte birleştiği ve birlikte yeni bir gerçeği ortaya çıkardığı an geliyor.

Bu ilkeleri takip eden yapay zeka, sıradan bilgisayarlarda da programlanabilir. Doğal olarak bu program başlangıçta belirsizliği ve iç çelişkilerin varlığını hedefleyecektir. Mevcut bilgisayar programları, her ne kadar deterministik ve çelişkili olmasa da, modern programlar, onları daha az deterministik ve çelişkili hale getirecek şekilde yazılmaktadır. Elbette yapay zekanın çok sayıda paralel ve etkileşimli sürece olanak tanıyan daha verimli bir mimari kullanması daha iyidir. Örneğin kuantum veya optik. Tek işlemcili elektronik bilgisayarlar da akıllı olacak şekilde programlanabilir, ancak muhtemelen güçten yoksun olacaklardır.

“Ağır” süreçler ve uyumlaştırma daha sonra detaylı olarak tartışılacak ama şimdi yapay zekayı inşa etmeye başlayalım.

Zeka Tuğlaları

Bu alanda halihazırda neler bulduklarımızı ve eksiklerimizi kısaca hatırlatarak başlayalım. Bütün bunlar önceki bölümlerde ayrıntılı olarak anlatılmıştır. Bunun neden böyle olduğunu, başka türlü olmadığını anlamanız için size bunu hatırlatıyoruz. Sonuçta, istihbarat algoritmasının kendisi o kadar karmaşık değil, içindeki en önemli şey ilkelerdir, hangi yöne hareket edeceğinizi ve hangi sonuçları bekleyeceğinizi anlamanız gerekir.

Programlama dilleri. Usul ve yüklem vardır. Prosedürel dillerde, bir program, aralarında koşullu geçişlerin olabileceği katı bir talimat dizisi olarak yazılır.

Yüklem dillerinin her birinin kendi kapsamı olan bir dizi bağımsız kuralı vardır. Yüklem dillerinde icracı, mevcut duruma uygunluk açısından tüm kuralları kontrol eder ve durumu değiştiren gerekli kuralları (iç durum) uygular ve böylece kurallardan uzun mantıksal zincirler oluşturabilir. Doğal olarak bu, icracı için prosedürel bir programın yürütülmesinden daha zordur.

Prosedürel diller, algoritmanın açıkça bilindiği ve hızlı ve etkili yürütme gerektirdiği durumlarda iyidir. Yüklem dilleri, insan bilgisini, mantıksal kuralları depolamanız ve ardından bilgi hakkında sonuçlar çıkarmanız (örneğin, çeşitli giriş durumlarını değerlendirmeniz) gerektiğinde iyidir. Programın tamamını yeniden yazmadan onlara yeni bilgiler eklemek uygundur. Yeni bilginin sunulmasından sonra tüm bilgi tabanının tutarlı bir duruma getirildiği değişiklikler bile vardır. Bir süredir yüklem dilleri (Prolog gibi) yapay zekanın geleceği olarak kabul ediliyordu.

Ancak gerçek şu ki, prosedürel ve yüklem dilleri karşılıklı olarak ifade edilebilir ve algoritmaların doğasında olan aynı sorunlara sahiptir (biçimsel sistemler, yukarıya ve aşağıya bakın).

Öncelikle durma sorunuyla karşı karşıyayız. Algoritma, yakınlarda, bir sonraki dalda bulunsa da, bir çözüm arayışı içinde sonsuza dek dolaşabilir. Ancak algoritma tam ve tutarlı bir biçimsel sisteme karşılık gelecektir. Ama bunun bize bir faydası yok (sonlu bir zamanda sonsuz bir hesaplama yapamayacağımıza şimdilik inanıyoruz). "Uzun" dalların bir tür budanmasını yaparsak, algoritma daha pratik hale gelecek, ancak bütünlüğünü ve tutarlılığını kaybedecek ve doğru değil, makul hale gelecektir. Ve burada yanlış karar verme olasılığının biraz artacağından değil, algoritmanın tamamen yanlış kararlar üretebileceğinden bahsediyoruz.

İkincisi, mantıksal birimleri oluşturan yüklem kuralları çok “dar”dır. Doğal zekada mantıksal birimler vardır. emirler daha fazla giriş koşulu vardır ve bu girişler bulanık kriterlere göre işlenir. Üstelik böyle bir temsille bilgi "lekelenir", açıklığını ve biçimselliğini kaybeder.

Mevcut bulanık mantık (bilimde böyle bir bölüm vardır) yüklem dillerinde kullanıma uygun değildir, bu yüzdendir. Mantıksal çıkarım sırasında herhangi bir bulanıklık başka bir bulanıklıkla karşılaşıldığında birçok alternatif seçenek, farklı mantıksal zincirler üretebilir. Üstelik bu seçenekler kolaylıkla çığ gibi büyüyebilir. Mevcut bulanık mantık, bildiğim kadarıyla, zincirlerin paralelleştirilmesi veya bunların ters birleşimi ile ilgilenmiyor. Bulanık mantığın yaptığı tek şey aynı mantıksal ifadeler üzerinde çalışmaktır; yalnızca mantıksal sıfır ve bir yerine sıfırdan bire kadar olan gerçek aralığı ve bu aralıktaki sayıları birleştirmek için aritmetik işlemleri kullanır.

İma tersine çevrildiğinde belirsizliğin ortaya çıktığı, hayali bir birim gibi bir şeyle ifade edilen ve zincirleri paralelleştirme ve birleştirme olasılığıyla daha ileri hesaplamalara katılan "karmaşık" mantığın çeşitleri vardır. Ancak şimdilik bu konu daha fazla açıklama gerektiriyor.

Üçüncüsü, bir insanın yokluğunda diğer algoritmaları eğitebilecek (oluşturabilecek) bir algoritmamız yok, ancak bir dizi eğitim durumu (doğru giriş ve çıkış değerlerinin temsili bir kümesi) olduğunda.

Desen tanıma sistemleri. Yapay zekamız için mantıksal bir birimin rolüne çok uygundur. Girdi durumunu iyi bir şekilde sınıflandırabiliyor ve bir çıktı çözümü sunabiliyorlar. Doğru, yalnızca uzun vadeli işleme gerek duyulmuyorsa, çünkü bu tür sistemlerde dahili hafıza (durum) ve bu durumun dönüşümü yoktur, bu daha çok bir "uyaran-tepki" refleksini temsil eder. Ancak tanıma motorları sınıflandırma konusunda mükemmel bir iş çıkarıyor. Karmaşık görüntüleri bile işleyebilirler (örneğin, bir kişiyi yüz görüntüsünden tanımak). Örüntü tanıma sistemlerini eğitmeye yönelik yöntemler etkili ve iyi bilinmektedir. Bilinen bir dizi örnek üzerinde eğitilen tanıma motoru, gizli kalıpları yakalayabilir ve deneyimi niteliksel olarak bilinmeyen örneklere genelleyebilir.

Eğitim ilkeleri. Akıllı sistemin istenen (referans) sonucu ve gerçek sonucu bilindiğinde, bu sistemin hatasının hesaplanması ve sistemin doğru yönde çalışacak şekilde ayarlanması mümkündür.

Düzeltme (eğitim) yöntemleri kesin (yerel olarak da adlandırılır) veya küresel olabilir. Yerel yöntemler sistem genelindeki hatayı hesaplayabildiğinden hızlı ve etkilidir. Global yöntemler bunu yapamaz, tüm sistemin parametrelerini rastgele değiştirir, değişikliğin sistemin işleyişini ne kadar başarılı bir şekilde etkilediğine bakar ve bu temelde bu değişikliğin kaydedilip kaydedilmeyeceğine karar verir.

Yerel yöntem, bir hata için yönünü hesaplayabileceğiniz ve onu girişten tüm sistem boyunca ters yönde yayabileceğiniz gradyan iniş yöntemini içerir. Bu yöntem, "yalnızca" makul olmasına rağmen, pratikte, örneğin çok katmanlı algılayıcıların (genellikle sinir ağları olarak adlandırılır) eğitimi için iyi sonuçlar verir. Ancak hatanın yapısı ve düzeltme yöntemi bilinmeyebileceğinden (diğer yerel yöntemler gibi) her zaman uygulanabilir değildir.

Ancak küresel öğrenme yöntemlerimiz, genetik algoritmamız ve simüle edilmiş tavlamamız var; bunlar her şeyi yiyebilir, ancak bilgi işlem kaynakları konusunda çok açgözlüdür. Hatanın nasıl düzeltileceği hakkında neredeyse hiçbir şey bilinmediğinde çalışabilirler. Genetik algoritma, özellikle çözülmekte olan problemin yapısı hakkında bir şeyler biliyorsanız daha verimli olur.

Ölçek ilkesi. Bu, benzer süreçlerin birçok kez tekrarlanmasıyla veya çok sayıda benzer unsurun birleştirilmesiyle oldukça kararlı (veya oldukça makul) bir sonucun elde edilebileceği anlamına gelir. Benzer bir unsur/süreç, ortalama olarak benzer anlamına gelmez; bu, unsurların birbirleriyle çelişebileceği ve rekabet edebileceği, istikrarsız olabileceği, ancak sonuçta yine de yüksek derecede makul bir çözüm halinde birleştirildiği (uyumlu hale getirildiği) anlamına gelir. Örneğin, bilgisayarların mantıksal devrelerinde, tüm temel parçacıklar kararsızdır, ancak yarı ömürleri ya çok uzundur ya da mantıksal bir öğedeki parçacıkların sayısı çok büyüktür, böylece tek bir parçacığın bozunması pratikte değişmez. mantıksal devrelerin arızalanmasına neden olur. Diğer bir örnek ise yapay sinir ağlarında, bireysel bir sinir bağlantısının kararlar üzerinde çok az etkisinin olmasıdır; bağlantıların kendileri çelişkili olabilir, ancak sonuçta sinir ağı çoğunlukla doğru kararlar üretir.

Özetleyelim. Karmaşık akıl yürütmeye ve iç durumun işlenmesine uygun yüklem dillerimiz var. Yüklem dilleri için mantıksal birimler olarak kullanılabilecek örüntü tanıma sistemleri vardır. Otomatik olarak yeni algoritmalar oluşturmayı (eğitmeyi) umduğumuz çok yönlü öğrenme yöntemleri vardır. Bütünlük ve tutarlılığın kaybıyla birlikte yapay zekamızın kararlarının yüksek inandırıcılığını korumamıza olanak sağlayacak bir ölçek ilkesi vardır.

İstihbarat algoritması

Genetik algoritmanın özünü kısaca hatırlatayım. Böyle bir yöntem var - rastgele arama. Rastgele bir çözüm üretilir, değerlendirilir ve daha sonra rastgele değiştirilir. Sonuç daha iyi ise karar hatırlanır. Bundan sonra döngü tekrarlanır. Bu yöntem, çözümün “bilimsel olarak” nasıl hesaplanacağının net olmadığı durumlarda kullanılır. Çok uzun bir zaman olduğu ortaya çıktı. Çok sayıda farklı çözümü paralel olarak oluşturursanız ne olur? Başarıda ilerleyenler için (çözümlerin kalitesi iyi veya zamanla veya "komşularla" karşılaştırıldığında iyileşiyor), kopya örnekler oluşturuyoruz ve bu örnekleri (rastgele) azar azar değiştiriyoruz. Diğerlerine göre kötü görünen veya zamanla çözümün kalitesini artırmayan çözümleri, giderek daha fazla rastgele değişikliğe tabi tutuyoruz veya tamamen siliyoruz ve yerlerine yeni oluşturulan rastgele çözümleri koyuyoruz. Doğal olarak kötü kararların tekrarlanma olasılığı daha düşüktür. İki farklı çözeltiden bir parçanın ısırıldığı ve bu iki parçanın yeni bir çözelti halinde birbirine yapıştırıldığı başka bir işlem daha vardır (yine rastgele kullanılır). Buna geçiş denir. Çözüm ne kadar iyi olursa melezleşme olasılığı da o kadar artar. Sonuç olarak, her iki ebeveynden de daha iyi sonuç veren bir çözüme geçebilirsiniz. Ancak bunun tersi de olabilir. Çözümün daha iyi olduğu ortaya çıkarsa, daha da çarpılır, daha kötüyse, o zaman böyle bir çözüm büyük olasılıkla silinir. Böyle bir arama, çözümün yapısını bildiğimizde ve rastgele değişim (mutasyon) ve çaprazlama işlemlerini, çözümü parça parça kesmeden ama bu yapıyı hesaba katarak uyguladığımızda en etkili olur.

Çözümlerin yalnızca paralel olarak yürütülmesi değil, aynı zamanda sürekli olarak birbirleriyle karşılaştırılması ve değiştirilmesi nedeniyle, böyle bir arama, rastgele bir aramaya kıyasla performansta fantastik bir sıçrama sağlar ve en zor olanı bile aşabildiği ortaya çıkar. sorunlar. Görünüşe göre tipik bir rastgele çözüm ortalama olarak ilginç bir şey değildir ve verimliliği son derece düşüktür. Ancak birçok çözüm birbiriyle etkileşime girmeye başlar başlamaz, hızla atipik bir sonuç (iyi bir çözüm) ortaya çıkar ve ilerler. Bu arada Penrose, kaotik süreçlerin ortalama olarak incelenmesini, tipik vakaların incelenmesini tavsiye ediyor ve bunların tipik vakalar dışında hiçbir şey üretemeyecekleri gerçeğini vurguluyor ki bu elbette adil değil. Bu arayış, tipik uyumlaştırma süreçlerinden biri olan ölçek ilkesinin bir örneğidir.

Doğru çözümün “bilime göre” nasıl aranacağı bile bilinmezken, pek çok alanda etkili çözümler bulabilen genetik algoritma buna denir. Ya da programların otomatik yazılmasında olduğu gibi “bilimsel” bir yöntem yoktur. Genetik algoritmanın etkinliği, her şeyden önce Dünya'daki yaşamın (ve ardından zekanın) tam olarak bu ilkelere göre ortaya çıkmasıyla kanıtlanmaktadır. Böyle bir uyumlaştırma sürecinin neden mümkün olduğu aşağıdaki bölümlerin konusudur.

Yapay zekada böyle bir yön var: genetik programlama. Her çözüm bir dizi parametre değil, prosedürel programlama dilinde yazılmış bir programın tamamıdır. Tüm döngüleri, koşullu atlamaları ve değişkenlerdeki dahili durumuyla. Buna göre kararın sonucu, bu programın yürütülmesinin sonucudur. Bir program oluşturmak için, çok sayıda rastgele oluşturulmuş programdan belirli bir sorunu en iyi çözen programı oluşturan bir genetik algoritma kullanıldı. Gördüğüm yazıda görev bir arabanın direksiyonunu kontrol etmekti. Onlar. Bir kararın sonucu, girdiye verilen tek bir yanıt değil, zamana yayılan bir süreçtir. Genetik algoritma başarılı oldu ve direksiyon simidini doğru şekilde kontrol eden bir program yarattı. Görev o kadar zor değil, sinir ağlarıyla benzer bir şey yapıyorlar (yine de bir tür iç durum olmasına ve devletin ağ ile etkileşiminin kuralları bir kişi tarafından yazılmış olmasına rağmen). Ancak bu, dahili bir duruma, çeşitli döngülere ve dallara sahip bir programın otomatik olarak oluşturulduğunun göstergesidir.

Ne yazık ki bu konuyla ilgili durumu daha fazla takip etmedim ve size daha fazla bir şey söyleyemem. İlgilenenler “genetik programlama” ifadesini aratabilirler. Bu nedenle, üzerinde çalışılanların ötesine geçiyoruz ve varsayımlar alanına giriyoruz. Bu varsayımlardan bazılarının zaten biliniyor olması oldukça muhtemel ve ben tekerleği yeniden icat ediyorum. Ama yine de ilginç. :)

Genetik algoritma kullanılarak elde edilen programların hangi özelliklere sahip olduğunu görelim. Bu tür programlar sonsuz (veya çok uzun) döngülere sahip olabilir, bu nedenle uygunluk değerlendirmesi, çok uzun süre boyunca herhangi bir görünür sonuç üretmeden çalışan programları devre dışı bırakmalıdır. Bu hamle genel olarak doğrudur, ancak ne yazık ki potansiyel olarak ilgi çekici uzun mantıksal zincirleri ortaya çıkarmaktadır (bunların nasıl dikkate alınacağı henüz belli değildir). Dahası, program dalları geçiş yaparken akılsızca parçalanacak ve çoğu zaman anlamsız kodlar üretilecektir. Ve eğer basit bir problem için bu böyle bir problem değilse, o zaman daha karmaşık problemler için çok sayıda uygun olmayan çözümle karşılaşacaksınız, çünkü en küçük değişiklik programın performansını tamamen bozabilir ve muhtemelen sonunda orada olur. pek işe yaramayacaktır. Veya programda, doğru çözüme doğru hayal edilemeyecek bir şekilde birleştirilecek çok sayıda gereksiz dal, "önemsiz" olacak. Evrim sürecinde bu "çöp", yapılan değişikliklerden sağ çıkmayı öğrenir, böylece değişiklik programı ölümcül bir şekilde bozmaz. Ancak her durumda, bir kişinin yazdığı açık programların aynısını temsil edecek "ince" mantıksal zincirler fikrine veda etmemiz gerekecek. Programların otomatik olarak yazılması sonucunda olanlar bu tür zincirlerden uzak olacaktır. Elbette, bu çelişkili yığını net bir algoritmaya indirgeyebilecek veri madenciliği algoritmaları ortaya çıkacak, ancak bu net algoritmanın, otomatik modda daha fazla iyileştirme için, "lekelenmiş" forma (veya ileri eğitim sürecinde bulaşma kendiliğinden meydana gelecektir). Ve veri madenciliği yardımıyla ortaya çıkan algoritmanın, orijinal "bulanık" versiyonundan daha dar bir "görünüm"e sahip olacağına dair şüpheler var. Benzer bir olgu, örüntü tanımayla ilgili önceki bölümlerde anlatılmıştı.

Hatırlayacağımız gibi yüklem dilleri, katı bir program çerçevesinden değil, uygun bir durum (koşullar) oluştuğunda otomatik olarak tetiklenen bağımsız kurallardan oluştuğu için, değişmeye daha esnektir ve insan bilgisini kaydetmeye uyarlanır. Bir genetik algoritma, operasyonlarında çözümün yapısını hesaba katarsa ​​daha verimli çalışır. Prosedürel biçimde yazmak, genetik algoritmayı programı akılsızca parçalamaya zorlayarak pek çok işe yaramaz seçenek üretir. Bu nedenle programı yüklem formunda yazacağız ve genetik algoritmayı böyle bir yapıyı dikkate alacak şekilde yapılandıracağız. Yani farklı yazılım çözümleri, bit parçalarını değil, tamamen bağımsız kuralları değiştirebilecek. Rastgele değişiklikler kural düzeyinde çalışacaktır. Üstelik, bir program içinde, hangi sırayla olursa olsun, farklı sayıda kurala sahip olabilirsiniz. Ve bu kurallar birbirine çok benzer veya tamamen farklı olabilir. Yalnızca programların kendisini değil aynı zamanda tek bir program içindeki kuralları da çoğaltabilir ve melezleyebilirsiniz. Ve bunların hepsi, programı yürütürken kendileri doğru zincirde sıralanacakları için, çünkü uygulayıcı programın dallarını aptalca takip etmiyor (prosedür dilinde olduğu gibi), ancak mevcut duruma göre kuralları seçiyor (her kural değişir) durum).

Ancak en ilginç şey, kural bankasının tüm programlarda ortak hale getirilmesi olacaktır. Bu durumda program, genel bankadan hangi kuralları tercih ettiğine ilişkin verileri ve muhtemelen bunların tercih edilen uygulama sırasına ilişkin bilgileri temsil edecektir. Bu durumda performans kriterleri sadece programlara değil kurallara da uygulanabilmektedir. Sonuçta her kuralın birçok farklı programa katkısı vardır ve bu programlardan kaçının başarılı, kaçının başarısız olduğunu hesaplamak mümkündür. Ve bu temelde, kuralların etkinliği hakkında sonuçlar çıkarın ve buna göre yalnızca programları değil, aynı zamanda kuralları da geliştirin (yani kuralların kendisini yeniden üretin, çaprazlayın, rastgele değiştirin). Artan verimlilik, benzer kuralların artık farklı programlarda kopyalanmamasından kaynaklanmaktadır; her programın daha geniş bir kural bankasına erişimi vardır. Ancak en önemlisi, kurallar birlikte değerlendirilir, farklı programlarda çapraz kullanılır ve bu da (muhtemelen) kural değerlendirmesinin ve gelişiminin kalitesini önemli ölçüde artırır.

Yani, çeşitli oyunlarda oldukça uygulanabilir olan yapay zekanın en basit versiyonuna sahibiz. bilgisayar, uzman sistemler ve süreç kontrol sistemlerinde. Bu aynı zamanda Markov modelleri yerine dahili belleğe sahip kara kutu işlemlerini modellemek için de uygundur (bunlar girişte ve çıkışta ne olduğu açık olan ancak iç durum ve süreçler belirsiz olan süreçlerdir, bizce bir kara kutu) ).

Burada, bir genetik algoritmanın bir programın parçalarını bağımsız alt rutinlere ayırabileceği ve programı değiştirirken bunların yapısını dikkate alabileceği yönünde mantıksal bir öneri ortaya çıkabilir. Prosedürel gösterim için bu, verimliliği artırabilir, ancak yine de doğal dezavantajlarını ortadan kaldırmayacaktır çünkü yine de, kazara yapılan bir değişiklikle bozulabilecek katı bir talimat dizisine, koşullu ifadelere ve döngülere ihtiyacınız olacaktır. Yüklem gösteriminde bu tür prosedürler hiçbir şekilde mevcut değildir. Ancak küresel durumu bir dizi hiyerarşik duruma ve bir dizi duruma bölme olasılığı da vardır, böylece her alt durum yalnızca kendi kurallar dizisiyle ilgilenir. Yakın gelecekte böyle bir bölümlendirme genetik algoritmanın verimliliğini artıracaktır. Ancak gerçek şu ki, gerçek zekada kuralların etkileşimi daha karmaşıktır ve böyle bir bölünme hem karakteristik hem de karakteristik değildir. Dolayısıyla böyle bir durum bölünmesini empoze ederek kısa vadede fayda sağlayabiliriz, ancak gelecekte müdahale edecektir. Bununla ilgili daha fazla ayrıntı gelecek.

Yapay Zeka, sürüm 2.0

Yüklem dillerinde (Prolog gibi) programda herhangi bir adım sırası yoktur. Yalnızca bir dizi kural vardır ve bu kuralların uygulanma sırası başlangıçta belirtilmemiştir.

Şuna benziyor:
kural n: sonuç if koşulu;
kural m: sonuç if koşulu;
ve benzeri.

Koşul, hem en basit ifadeleri hem de karşılıklı yinelemeli uygulama da dahil olmak üzere diğer kuralları içerecek şekilde oldukça karmaşık olabilir. Bir kuralın uygulanmasının sonucu aynı zamanda karmaşık bir durumdur ve hem nihai durumu hem de diğer kuralların (ve kendisinin) uygulanabilirliğini kontrol etme koşulunun bir kısmını ifade edebilir. Bu sonuçlar açık ve nettir.

Bir yüklem programını yürütürken genel bir durum yoktur. Yorumlayıcının uygun bir koşulla karşı karşıya kalan ilk kuralı aradığı bir başlangıç ​​koşulu vardır, bu kuralın sonucu başlangıç ​​koşuluna eklenir. Yeni koşul için uygun bir kural arayışı tekrarlanır. Sonuç, nihai sonuca ulaşıldığını gösteren bir kurala yol açabilecek bir çıkarım zinciridir. Yorumlayıcı mevcut tüm zincirleri tüketirse, her döngü için bir sonraki uygun kuralı arayarak yeni zincirler oluşturarak geri dönmeye başlayacaktır.

Lütfen durumun (durumun) başlangıç ​​koşulunu ve uygulanan kurallar zincirini temsil ettiğini tekrar unutmayın. Geri alma işlemi sırasında uygulanan kuralların zinciri buna göre değişir.

Kuralları birbirine zincirlerken, bir çözüm yakınlarda olsa da tercüman sonu olmayan bir arayışa girebilir. Bu nedenle, eğer tercüman "akıllı" ise, ya potansiyel döngünün yerlerini tanıyabilir ya da birkaç karar zincirini paralel olarak yürütebilir ve sonuçta bunlardan hızla nihai duruma yol açacak olanı seçebilir. Öte yandan, kural setini yazan kişinin döngü olasılığını en aza indirmeye dikkat etmesi gerekir.

Örneğin, misyonerler ve yamyamlarla ilgili bir sorun, bir teknede misyonerler ve yamyamlardan oluşan bir kalabalığı diğer tarafa taşımanız gerektiğinde. Teknede yalnızca iki kişi konaklayabilir. Kıyıda misyonerlerden daha fazla yamyam varsa misyonerler yenilecek. Yüklem dilinde bir problemi çözerken, misyonerlerin yenilmemesi için (tekrarlı dahil) kabul edilebilir durumlar ve teknenin kabul edilebilir hareketleri (teknede her zaman bir veya iki kişi olmalıdır) anlatılır. Daha sonra tercümanın kendisi, tüm kalabalığın diğer tarafta olacağı bir duruma gelene kadar uygulanabilir çözümlerden oluşan bir ağaç oluşturur. Bu durumda kurallar zinciri, misyonerlerin ve yamyamların nehir boyunca taşınması dizisini taşıyor.

Bir çözüm bulma sürecinde kurallar açıkça birbirine bağlı olduğundan, yüklem dillerinde bunların uygulanma hiyerarşisi ve sırası, prosedürel dillerdeki prosedürler halinde gruplandırmaya benzer şekilde, kurallar düzeyinde zaten belirtilmiştir. Ancak kurallar arasındaki uyumu daha az net hale getirdiğimizde bu gruplandırma kaybolur. Ve bunun tam olarak nasıl yeniden ortaya çıkacağı (veya oluşmasına nasıl yardımcı olunacağı) yeni bir sorudur.

Yüklem dillerinde döngüler, koşullu atlamalar ve kesin olarak tanımlanmış eylem sırası yoktur. Sanatçı her zaman ne yapacağını “bilir” çünkü bir sonraki adımı mevcut duruma göre seçer. Oyuncu yalnızca bir adımı seçer, çünkü bir sonraki adımda durum ne kadar beklenmedik bir şekilde değişirse değişsin, değişen durumu değerlendirecek ve yeni bir adım seçecektir. Bu aynı zamanda programın bir kısmı başarısız olursa veya yanlış karar verirse sanatçının dışarı çıkmasına yardımcı olacaktır. Oyuncu, feci bir şekilde yanlış yöne düşmek yerine durumu yeniden değerlendirecek ve büyük olasılıkla bir sonraki adım bu durumu iyileştirecektir.

Elbette, ilgili süreçler, bir programın prosedürel yazımıyla karşılaştırıldığında çok daha fazla güce ihtiyaç duyar. Yüklem dillerindeki orijinal haliyle her şey önceki paragrafta anlatıldığı kadar düzgün değildir.

Yüklem dillerinin dezavantajı ise kuralların kapsamının çok dar olması ve çok uzun zincirler halinde inşa edilmiş olmasıdır. İstihbaratta ise tam tersine, mantıksal birimin çok çeşitli girdi koşullarını bulanık ve doğrusal olmayan kriterlere göre değerlendirdiği kısa çıktı zincirleri baskındır.

Bu nedenle yapay zeka oluşturmanın bir sonraki adımı, dar ve net kuralları bulanık ve geniş kurallarla değiştirmek ve çıkarım zincirini kısaltmaktır.

Öncelikle programın global durumunu (normal bir sayı dizisi) oluşturalım. Bu dizinin bir kısmı giriş verileridir. Düzenli olarak dışarıdan güncellenirler. Programın bunları değiştirmesine izin verilip verilmemesi temel bir soru değildir, asıl mesele bunların düzenli olarak güncellenmesidir. Bu dizinin bir kısmı programın dahili durumudur. Geriye kalan kısım çıktı verileridir. İç ve çıkış hücreleri yalnızca çözümün çıkış hücrelerinden okunması bakımından farklılık gösterir. Hem giriş hem de çıkışlar her zaman aynı parametreyi yazmak/okumak için kullanılır. Örneğin, 1 numaralı giriş - hız, 2 numaralı giriş - yakıt sensörü, 3 numaralı çıkış - direksiyon simidi konumunun değiştirilmesi, 4 numaralı çıkış - hızın değiştirilmesi. Sayıları keyfi olarak atarız; eğitim süreci sırasında programın kendisinin girdi ve çıktının nerede olduğunu anlamayı öğrenmesi gerekir.

Kuralın temeli olarak, örneğin çok katmanlı bir algılayıcıyı (genellikle basitçe sinir ağı olarak adlandırılır) ele alalım. Lütfen böyle bir sinir ağını program içinde eğitmeye yönelik algoritmanın bizim için hala bilinmediğini unutmayın. Bunun gibi birçok sinir ağımız olacak. Hep birlikte program için bir dizi kural oluşturacaklar. Her sinir ağı, programın tüm genel durumunu girdi olarak alır (girdi sayısı, durum hücrelerinin sayısına eşittir). Sinir ağının çok az çıkışı vardır. Her çıktı aynı zamanda durum hücrelerinden birine karşılık gelir. Her yinelemede, her bir sinir ağının çıkışında elde edilenler global duruma eklenir (çıkış değerleri negatif olabilir). Tüm ağlar mevcut duruma göre eş zamanlı olarak yoklanır ve bunların toplam etkisi yeni bir durum yaratır.

Her ağ için çıkışların sayısı ve bunların bağlanması başlangıçta rastgele seçilir. Evrimsel değişiklikleri, çoğu durumda küresel durumun hücreleri ile sinir ağının girdileri/çıktıları arasındaki değişimi değiştirmeden bırakacak şekilde inşa ediyoruz. Ve yalnızca küçük bir olasılıkla, değişiklikler ağın girişini veya çıkışını başka bir hücreye yeniden düzenleyebilir. Bu gereklidir çünkü şimdilik her hücrenin belirli bir parametre (hatta dahili) olduğuna inanıyoruz, bu nedenle ağın giriş/çıkışını alışık olmadığı başka bir parametreye değiştirirsek sonuç büyük olasılıkla başarısız olacaktır. Ne yazık ki bu manevrayla yine gerçek zekanın bazı ilginç özelliklerini kaybediyoruz ama şu anda verimlilik kazanıyoruz. Bu özelliklere daha sonra döneceğiz.

Evrim sürecinde küresel devletin hücre sayısı da değişebilir. Daha sonra tüm sinir ağları buna göre ayarlanır. Hücreler klonlanırsa sinir ağlarının karşılık gelen girişleri ve çıkışları da klonlanır. Hücreler silinirse ilgili girişler/çıkışlar tüm ağlardan silinir.

Belirli bir sinir ağının çıktı sayısını artırabilen veya azaltabilen evrimsel değişiklikler de vardır.

Bu tür sinir ağlarından oluşan bir program tam olarak nasıl bir çözüm üretecektir? Daha doğrusu bir sonraki iterasyonda programın kararını verdiğini nasıl anlayabilir ve bu kararı girdi hücrelerinden nasıl okuyabilirsiniz? Bu aynı zamanda deney gerektiren ilginç bir sorudur. İlk değerlendirmeler aşağıdaki gibidir. Çıkış değerleri stabilize edilmiştir. Veya cevabın hazır olduğunu gösteren özel çıkışlar var. Bu çıktılar evrim sürecinde kendi kendini ayarlar.

Kararları kaldırdıktan sonra program, büyük olasılıkla kendi iç durumuna göre çalışmaya devam etmelidir. Program belirli bir çözümde istikrara kavuştuğuna göre onu daha ileri çalışmalara nasıl itebiliriz? İlk olarak, karar kaldırıldıktan sonra giriş hücreleri mevcut verilerle yeniden yazılacaktır (ağ bir karar verirken giriş verilerinin neredeyse hiç değişmeden kaldığını varsayıyoruz). İkinci olarak, yinelemenin başlangıcında büyük bir sayının yerleştirileceği özel bir giriş hücresi oluşturabilirsiniz. Daha sonra, bu sayıyı kendiniz değiştirmeyi öğrenebilir veya dışarıdan azaltarak ağın zamanın geçtiğini bilmesini sağlayabilirsiniz. Genel olarak deneyler için yeterli fikir vardır.

Şimdi bunun neden böyle olduğuna dair bir açıklama.

Öncelikle kurallar zinciri oluşturmayı bıraktık ve her kuralı, çalışmasının sonucunu küresel devlete yazmaya zorladık. Bunu yaparak, uzun çıktı zincirleri ve geri almalar oluşturmayı imkansız hale getirdik, ancak daha hızlı yanıt aldık ve duruma ilişkin geniş ve bulanık bir değerlendirme aldık. Her seçeneğin kendi küresel durumuna sahip olduğu çeşitli seçeneklerin paralel işlenmesinin ortadan kalkmadığını lütfen unutmayın. Ancak orijinal yüklem yorumlayıcısındaki kadar geniş bir dallanmamız yok. Çıkarım zincirlerini geniş bulanık kurallara dayalı olarak dallandırmaya çalışırsak, o zaman seçeneklerin sayısı, bir çözüm oluşturmanın ilk aşamalarında bile felaketle sonuçlanacaktır.

Sonuç olarak, yüklemlerle ilgili orijinal sonuca benzer görünse de tamamen farklı bir şey elde ettik. Bu şey artık karmaşık ve net sonuçlar çıkarma yeteneğine sahip değil, ancak karmaşık, hızla değişen bir ortamda hareket etme yeteneğine sahip ve hatta orijinal versiyonun yapamayacağı makul bir mantıksal sonuca ilişkin bazı temel bilgilere sahip. Karmaşık ve net sonuçların çıkarılması, beklenmedik bir şekilde de olsa bize geri dönecek, ancak ortaya çıkan istihbarat şimdilik bundan yoksun olacak.

Ancak ortaya çıkan şey, tıpkı bir kişinin yaptığı gibi, mantıksal problemleri (satranç oynamak gibi) kendi yöntemiyle çözebilir. Bu tür bir düşünceye durumsal denilebilir. Uzun mantıksal zincirler kurmakla değil, mevcut durumun ne olduğunu ve bu durumun nasıl değiştirilebileceğini değerlendirmekle başlar. Durum, sistemin şu anda "düşündüğü" hem harici verileri hem de dahili durumu içerir. Bir sonraki adımın nereye taşınacağına ilişkin değerlendirme ve karar verme işlemi şu tarihte yapılır: herkes Kendilerini uzun akıl yürütmeye gömebilen ve gerçekliğin dışına çıkabilen prosedürel algoritmalar ve mantıksal çıkarımların aksine adım. Bu nedenle, böyle bir programda kazara yapılan değişiklikler, prosedürel kayıttan farklı olarak programın performansı açısından ölümcül olmayacaktır. Kendini anlaşılmaz bir durumda bulsa veya bir hata yapsa bile, böyle bir program şaşkına dönmeyecek, bir şeyler yapmaya çalışacaktır çünkü durumu değerlendirmede rol alan algoritmanın küçük bir dalı değildir, ama tüm kurallar dizisi. Program ilk başta kaotik değişiklikler yapsa bile, er ya da geç kendisini tanıdık bir durumda bulacak ve onu doğru yöne çevirebilecektir.

Durumsal düşünme üç şeye dayanır. Birincisi, durumun bilinen bir duruma genelleştirilmesidir (örüntü tanıma sistemlerinde olduğu gibi). Örneğin, bir satranç tahtası üzerindeki taşların çeşitli düzenlemelerinden, düşünme sistemi ortak bir nokta bulur, taşlara yönelik bir tehdit olup olmadığı, kayıpsız bir saldırı yapma şansının olup olmadığı konusunda bir durum değerlendirmesi yapar ve ardından daha spesifik kombinasyon durumları olabilir. İkincisi, deneyimdir (bir durumu daha iyiye doğru değiştirmek için uzun mantıksal çıkarımlara gerek kalmadan uygulanan kısa, makul kurallardan oluşan bir kütüphane). Durumun değerlendirilmesine dayanarak, durumu değiştirmek için alternatifler önerilmektedir; örneğin, parçaların nasıl hareket ettirileceğine ilişkin yaklaşık veriler. Ayrıştırıcı bu yaklaşık verileri satranç tahtasındaki taşların doğru hareketlerine dönüştürür (eğer doğru hareketler bulunamazsa bir sonraki alternatife başvurulur). Oyunun herhangi bir aşamasında benzer durumlar (ve buna bağlı olarak bunlar için çözümler) meydana gelebilir ve çeşitli hareketler için uzun bir seçenek arayışına girmeden bunlara hemen bir çözüm buluruz. Evet, bu seçenekler "yalnızca" makuldür, ancak gerçek taraflardan büyük miktarda deneyim içerirler ve yeni taraflara oldukça uygulanabilirler. Üstelik bu durumlar, oyunun birçok hamle ilerisinde nasıl gelişeceğine dair bazı bilgileri içerir, ancak hareketli parçalar düzeyinde değil, taktiksel durumu değiştirme düzeyinde (bu, beraberlik elde etmek için dengeyi korumak gibi sonsuz döngüleri içerebilir) ). Ve yine de kayba yol açarlarsa, kütüphane onların durumunda işe yarayacak yeni kurallarla desteklenecektir. Üçüncüsü, bu, birkaç adım ileriye doğru olası bir çözümün dahili kontrolüdür (yani, bir şey bulun ve ardından bu şeyin durumu ne kadar iyi değiştireceğini tahmin edin, birkaç alternatif çözümü sürdürün, sistemimiz henüz bunu nasıl yapacağını bilmiyor, yalnızca bir seçenek sunar, ancak bu konuya daha sonra değineceğim).

Bu arada, sinir ağlarını incelerken, onları yalnızca girdi verilerine dayanarak çalıştırmayı değil, aynı zamanda onlara iç durumu sindirmeyi ve karmaşık programları yürütmeyi öğretmeyi de düşünmüş olabilirsiniz? Merak ediyordum. Doğru, uzun zaman önce böyle bir ağın nasıl eğitileceğine dair hiçbir zaman kayda değer bir şey bulamadım. Ama şimdi biraz farklı bir yönden bir cevap var.

Tüm eyaleti güncelleyebilecek büyük bir ağ yerine neden birçok sinir ağı oluşturduk? Gerçek şu ki, bir genetik algoritmanın etkili bir şekilde çalışması için, her biri belirli (her ne kadar anlayışımızdan gizlenmiş olsa da) bir eylemden sorumlu olacak bir dizi bağımsız kurala sahip olmak arzu edilir. Ayrıca bu tür kurallar programlar arasında değiştirilebilir, bunlardan farklı program kümeleri yapılabilir, bireysel kurallar değiştirilebilir ve klonlanabilir ve hatta en başarılı (hatta gelecekteki kütüphanede) kurallardan oluşan bir kütüphane oluşturulabilir. Bunu tek bir büyük sinir ağıyla yapmak zor olacak. Ek olarak, düzenli sinir ağları için, bir ağlar topluluğu, normal bir sinir ağından daha iyi performans gösterme eğilimindedir.

Benzer nedenlerden dolayı her sinir ağının yalnızca az sayıda çıktısı vardır. Onlar. Her kural kendi küçük kararını verme yetkisine sahiptir. Ancak aynı zamanda, her ağ, duruma ilişkin küresel bir bakış açısına sahip olma beklentisiyle, ancak aynı zamanda belirli bir kuralın kapsamıyla ilgili olmayan çoğu duruma tepki vermeme beklentisiyle tüm devletin girdilerini alır. Her ağ bunu evrim yoluyla öğrenmelidir. Dolayısıyla küresel devleti etkilerken bile mevcut durumda geçerli olan kurallar uygulanacaktır. Girdi sayısının sınırlandırılması gerekebilir, bu konuda hiçbir fikrim yok, burada sadece deney yardımcı olacaktır.

Sonuç olarak, eğitimden sonra bir dizi sinir ağından oluşan bir program almalısınız. Program, giriş hücrelerinin belirtildiği bir başlangıç ​​durumuyla başlar; geri kalan hücreler sıfırlanabilir (veya küçük rastgele değerlere sahip olabilir). Her yinelemede küresel durum tüm ağların girişine beslenir, tüm ağların işleminin sonucu hesaplanır ve tüm ağların çıktısı anında küresel duruma eklenir. Bir sonraki yineleme geliyor. Çözümün hazır olduğunu örneğin çıkış değerlerinin stabil hale gelmesinden veya özel bir çıkışa çözümün hazır olduğunu belirten bir sinyal gönderilmesinden anlayabilirsiniz. Bundan sonra çıkış değerleri okunur, yeni giriş değerleri yüklenir ve program güncellenen verilerle çalışmaya devam eder.

Bu program genetik algoritma kullanılarak otomatik olarak oluşturulur. Önemli olan, ortaya çıkan programların etkinliğini değerlendirmek için en azından bazı kriterlerimizin olması (yani bir programın diğerinden daha iyi olup olmadığı) ve bu, genetik algoritmanın çalışması için yeterlidir. Gerçek dünya problemleri için genellikle böyle bir kriter mevcuttur. Bunlar aynı zamanda farklı durumlar için iyi ve kötü olarak kabul edilen çalışma örnekleri de olabilir (örüntü tanıma sistemleri de örneklerden öğrenir). Bilinen örneklerden öğrendikten sonra, program, tıpkı örüntü tanıma sistemleri gibi, doğası gereği niteliksel olabilecek bir genelleme de dahil olmak üzere, deneyimini bilinmeyen örneklere genelleyebilecek, bir dizi örnekteki gizli kalıpları yakalayabilecek ve beklenmedik (ancak doğru) çizebilecektir. ) sonuçlar. Kesin mantıksal çıkarım ve net bir çözüm gerektiren problemler için bu daha zordur (fakat buna daha sonra değineceğiz). Programları birbirleriyle kavga etmeye zorlamak, örneğin satranç oynamak ve daha iyi oynayanı etkili olarak tanımak gibi seçenekler de olabilir, bu durumda dış değerlendirmeye gerek kalmaz.

Bir genetik algoritma rastgele bir dizi kural (sinir ağları) ve bir dizi program üretir. Tüm kurallar ortak bir depolama alanında bulunur. Bu programların her biri, ortak bir depodan alınan kendine özgü kurallar dizisinden oluşur. Kuralların kendisi depodadır; program yalnızca bunlara atıfta bulunur. Etkinliği değerlendirmek için tüm programlar paralel olarak başlatılır (her birinin kendi durumu ve girdi ve çıktıları vardır). Daha hızlı ve daha verimli çalışan programlar en iyi derecelendirmeleri alır. Düşünmesi uzun süren veya hiç karar vermeyen programlar para cezasına çarptırılır.

Kötü programların değiştirilmesi veya tamamen kaldırılması daha olasıdır. Bunlar ya yeni oluşturulan programlarla değiştirilir ya da mevcut programlardan kopyalanır. Program değerlendirmesi kümülatif olabilir; birikir ve programa gelişmesi için biraz zaman tanır. İyi programların klonlanma olasılığı daha yüksektir. Programların kötüden iyiye doğru bir evrimi var.

Yeterince iyi bir çözüm elde edildikten sonra genetik algoritma sonucunda en iyi program seçilir ve bu program daha sonra gerçek problemler için kullanılır.

Programlar hangi evrimsel değişikliklere maruz kalabilir? Mağazaya bir kural ekleyin veya kaldırın. Başka bir programla geçiş, yani iki program alınır, temel olarak bir programın kurallarının bir kısmından ve ikinci programın kurallarının bir kısmından oluşan üçüncü bir program oluşturulur. Geçiş yaparken programa eklenmesi, silinmesi veya yazılması gereken kurallar rastgele seçilir. Her ne kadar düşünürseniz, belki bunu daha amaçlı yapmanın yolları olabilir, belki de kuralın belirli bir programa katılımının etkinliğine ilişkin bir değerlendirme yapılabilir.

Kurallar (sinir ağları) hangi evrimsel değişikliklere maruz kalabilir? Daha önce de belirtildiği gibi, bu değişikliklerden biri, tüm kuralları etkileyen dahili durum hücrelerinin sayısındaki değişikliktir. Durum hücrelerinin sayısını artırma veya azaltma ihtiyacı, programın dinamiği, durumların ne sıklıkta değiştiği, birbirleriyle ne kadar ilişkili oldukları, çıktı değerlerini ne kadar etkiledikleri ve programın ne kadar verimli olduğu ile az çok değerlendirilebilir. Program nüfusu geneldir. Sonraki evrimsel değişiklikler kuralların klonlanması, kurallardaki rastgele değişikliklerdir (yani sinir ağının "ölçeklerinin sarsılması", tavlamada olduğu gibi, verimlilik ne kadar düşükse, sarsıntı o kadar güçlü olur). Klonlama, kurallarda sonradan yapılan bir değişiklikle birlikte programların klonlanmasına da yol açabilir. Örneğin, orijinal programda orijinal kurala bir bağlantı kalır, klonlanmış programda ise klonlanmış kurala bir bağlantı vardır. Veya kaynak programda kuralın kopyasına ek bir bağlantı görünür. İki sinir ağından bir parça alınıp üçüncü bir ağa yapıştırıldığında kurallar aşılabilir. Kurallarda (sinir ağları) çıktıların sayısı yukarıda anlatıldığı gibi rastgele değişebildiği gibi, iç bağlantıların sayısı ve yapısı da değişebilmektedir.

Her kuralın etkinliğini, kuralın dahil olduğu programların ne kadar başarılı olduğuna göre hesaplayabilirsiniz. Ayrıca, bir kuralın programa dahil edilebileceği ancak etkin olmadığı ve bunun sonucunda programın işleyişini etkilemeyebileceği gerçeğini de dikkate alabiliriz. Bu değerlendirmeye dayanarak, kural bankasını, başarılı kuralları daha sık yaymak ve etkisiz kuralları daha sık kaldırmak veya değiştirmek amacıyla kural bankasını yönlü bir şekilde geliştirebiliriz. En etkili kurallara göre programlar da oluşturabiliriz. Veya değişim sürecinin programlara daha iyi kurallar dahil etme olasılığı daha yüksektir. Bankanın farklı kapsamlara sahip kuralları sakladığını ancak yine de ortak bir sorunu çözdüğünü unutmayın.

Ancak en ilginç şey, her kural için yalnızca verimliliği değil aynı zamanda hatayı da hesaplayabiliyor olmanızdır! Yani, bu kuralın verilen giriş koşulları altında nasıl doğru şekilde çalışması gerektiğini anlamak. Sonuçta, iyi programlarda tetiklenen kuralların (sinir ağları) örneklerine (bunların programı oluşturan kuralların doğru kararları olduğuna inanıyoruz) ve kötü programlarda çalışma örneklerine (bunların kuralların yanlış kararları olduğuna inanıyoruz) sahibiz. Programın hazırlanması). Buna göre her sinir ağının ürettiği iyi kararları güçlendirmeye, kötü kararları ise en aza indirmeye çalışabilirsiniz. Giriş ve çıkış değerleri sorunsuz bir şekilde yeniden üretilebilir ve bunlara dayanarak geri yayılım algoritmasına beslenebilecek bir eğitim seti oluşturulabilir. Buradaki asıl sorun, eğitim setinin giriş ve çıkışlarında ne olduğuna ilişkin zaman sırasını ortaya çıkarmaktır ve belirsizliklerin ortaya çıkabileceği yer burasıdır. Sonuçta, doğru ağdaki tüm kararların (giriş-çıkış çiftleri) ideal olarak doğru olduğunu ve yanlış olanın ideal olarak yanlış olduğunu varsayamayız. Belki de bu, en sonunda doğru kararı "gölgede bırakan" tamamen farklı bir kuralın hatasıdır? Tüm kararlar dizisinin ortaya çıkmasına dahil olmak umutsuz bir fikirdir. Bu nedenle bu zaman dizilerine göre bir örnek oluşturmayı düşünmeniz gerekecektir. Ve bir eğitim örneği oluştururken birçok örneği atsak ve yalnızca en açık olanı bıraksak bile, bu yine de ilerleme olacaktır.

Şimdi elimizde ne var bir bakalım. Ve artık, gerçek dünya sorunlarının üstesinden gelebilen, çok çeşitli durumlarda esnek davranabilen, hatalardan kurtulabilen, bir çeşit iç mantığa sahip olan ve durumu tahmin edebilen/modelleyebilen programları otomatik olarak yazmak için bir araca sahibiz. Yapamayacakları şey, ince mantıksal zincirler geliştirmek ve uzun sonuçlar çıkarmaktır. Pek çok görev için bu tür bir zeka, aslında yalnızca eğitim sırasında alınan hazırlıkları uyguluyor olmasına rağmen, içinde derin mantıksal süreçlerin gerçekleştiğini iddia edebilecektir. Böyle bir zeka ve bağımsızlık eksiktir, kişinin yine de bu konuda çok şey yapması gerekir. Ve donanım açısından elimizdekiler doğanın ortaya çıkardığına pek benzemiyor.

Yapay Zeka, sürüm 3.0

Şimdi harici ortam öykünücüsü adı verilen bir şey ekleyelim. Biri dış çevreyi taklit etmek, ikincisi tahmin yapmak için olmak üzere iki çeşide ihtiyacımız olacak. Ayrıca üçüncü bir çeşit de olacak, ancak bunun hakkında biraz sonra daha fazlası olacak.

Tahmin modundaki bir emülatör, önceki durumların geçmişini ve kontrol programından çevre üzerindeki mevcut etkiyi bilerek, dış ortamın beklenen davranışını az sayıda adım ileriye doğru çıkarabilmelidir. Artık program dış ortamı hemen etkilemeyecek, önce emülatörü etkileyecektir. Ve emülatörde, programın etkisiyle ortamın doğru yönde değişip değişmediğini görmek için tahminleri görebilirsiniz. Bu nedenle, benzer şekilde eğitilmiş ancak birbirinden farklı programların birkaç kopyasına sahip olabilirsiniz. Her biri için gerçek zamanlı olarak kendi ortam emülatörünüzü oluşturun. Ve her adımda, emülatörde en iyi puanı alan programın etkisini dış ortama bırakın. Diğer bir seçenek de program ekibinin “çoğunluk oyu” tarafından kabul edilen kararı (mutlaka en iyi olanı değil) vermektir, o zaman bu karar güvenilir olacaktır.

Emülasyon modundaki bir emülatör tahmine benzer, ancak gerçek bir dış ortam olmadığında eğitim programları sürecinde kullanılır. Önceki versiyonda dış ortamdan alınan hazır kesim örneklerini almıştık. Yani bu örnekler yerine, dış ortamdaki tipik durumları yeniden yaratmak üzere eğitilmiş bir emülatör oluşturabilirsiniz. Sonuçta pek çok örnek olabilir ve bu atılım yerine kompakt bir emülatör kullanmak daha etkilidir.

Eğitim modundaki emülatör, gerçek sensörlerin üzerine yerleştirilebilir ve uzun süre bırakılabilir. Mantıklı bir soru şudur: Eğitim için neden gerekli programı sensörlere hemen yüklemiyorsunuz? Burada birkaç cevap var. Öncelikle programın bir sonraki versiyonunu eğitmek isteyebiliriz, ardından tekrar gerçek cihazları sürmemiz gerekecek. İkincisi, programın doğru şekilde eğitilip eğitilmediğini görmek için gerçek sensörler üzerinde deney yapmak imkansızdır veya bu tür deneyler pahalı olabilir ve emülatör tahmin modunda çalışabilir.

Ek olarak emülatör, öncelikle ortamın davranışından rastgele sapmalar üretebilecek ve ikinci olarak ortamın davranışından farklı zaman dizilerini birleştirebilecek şekilde yapılandırılabilir. Emülatör dış ortama göre eğitildiğinden, bu tür kombinasyonlar makul bir şekilde "icat edilecektir". Bu da eğitim programlarına yönelik örnek setini genişletiyor.

Doğal olarak, gerçek zamanlı olarak gerçekleşen her şey tekrar kaydedilebilir ve programların otomatik ek eğitimi için kullanılabilir.

Emülatöre yönelik programlar yukarıda açıklanan teknolojinin aynısı kullanılarak yapılabilir.

Dış ortam çok karmaşıksa (satranç oynarken olduğu gibi), emülatör, kontrol programının kendisine çok yakın bir teknoloji kullanılarak oluşturulacaktır. Öyle ki eğitim sırasında programlar birbirleriyle oynayacak ve en güçlü program hayatta kalacaktır. Tahmin emülatörü yalnızca en iyi hamleyi aramakla kalmayıp aynı zamanda rakibin oyun tarzına da uyum sağlayacak şekilde özelleştirilebilir. Böylece, bir kişiyle oynarken, nihai bir karar vermeden önce makinenin "beyninde" birçok program ile emülatör rakipleri arasında tam bir savaş gerçekleşecektir.

Böylece dış ortam emülatörü kullanarak hem program eğitiminin kalitesini hem de gerçek zamanlı karar verme kalitesini artırıyoruz.

Rekabetçi karar verme ve çevre öykünücüsü ile doğal zeka arasında böyle bir paralellik var mı? Ben de öyle düşünüyorum ama bu kadar doğrudan bir şekilde değil. Doğal evrim sırasında oluşan şey muhtemelen daha karmaşık ve etkilidir. Ancak burada basitlik sağlamak ve etkiyi hızlı bir şekilde elde etmek için rekabeti ve emülatörü yapay olarak tanıttık.

Çevresel emülatörü ve rekabetçi kolektif çözümü tanıttıktan sonra yapay zekamızın yeni özelliklerini tanıtabiliriz.

Gezici arka plan çözümleri. Bir karar verdikten sonra bir sonraki adımı anlamak için tüm programları yeniden yapılandırmaya zorlamak gerekli değildir. Geçmiş durumlar hakkında uzun süre düşünmeye devam etmek için bazı (bazı kriterlere göre iyi) programlardan ayrılabilirsiniz. Bir şeyler bulmaları pekala mümkündür ve bu şey ya mevcut (hatta değişmiş) durumda faydalı olacaktır ya da daha fazla öğrenme için faydalı olacaktır. Örneğin, gecikmeli bir program düşmanın planını çözebilir veya ilginç bir taktiksel çözüm bulabilir. O zaman mevcut durumu bu çözüme çevirmeye çalışmak mümkün olacak (yapay zeka "fikrini değiştiriyor") ve eğer oyun o zamana kadar bitmişse (veya farklı bir yöne gitmişse), o zaman çözüm bulunmuş olacaktır. antrenmanlarda kullanılabilir. Bu seçeneklerin her ikisinin de tam olarak nasıl uygulandığı ayrı çalışmaların konularıdır. Yapay zeka her zaman “çevrimiçi” olacak ve adeta bir insan gibi düşünecek, kendini geliştirecek ve kendisiyle diyalog kuracak.

Seçeneklerin patlaması. Ayrı bir programın (veya bir program grubunun) çatalda olduğu, belirsiz bir durumun tespit edildiği durumları tespit etmeye çalışabilir ve bu durumu yeni karar dallarına (program + emülatör) dallanmaya zorlayabilirsiniz. Yine bu tür durumların nasıl tespit edileceği ve bunların nasıl dallandırılacağı ayrı bir araştırma konusu, işlenmemiş bir alandır. Şu ana kadar bu sadece bir fikir düzeyinde; belirsizlik durumunda aklın seçenekleri dallara ayırması gerektiği fikri. Ancak dallanma, bir karar ağacını kaba kuvvetle zorlamakla aynı şey değildir. Bu daha çok karmaşık aritmetik gibi dalga fonksiyonunu lekelemeye benzer; belirsizliğe sahip işlemler (hayali birim), daha sonra aynı aritmetiğin kurallarına göre birbirleriyle etkileşime giren birkaç seçenek üretir. Ayrıca yapay zekadaki dallanmış çözümler bir arada var olmaya devam etmeli, birbirleriyle iletişim kurmaya devam etmeli (tam olarak nasıl olduğu da bir sorudur) ve dallar doğru zamanda tek bir çözümde birleşebilmelidir. Üstelik dallanma, seçenekleri denerken olduğu gibi aptalca değil, tam olarak en ilginç olduğu anlarda gerçekleşecektir.

Potansiyel bir dallanma noktası tam olarak nasıl keşfedilebilir? Sıradan sinir ağları için, veri işleme için yeterli değilse sinir ağının kapasitesini artıran, karar verme için yedekli ise ağın kapasitesini azaltan algoritmalar bulunmaktadır. Bir sinir ağındaki kapasiteyi değiştirmek, nöronlar ve nöronların kendileri arasındaki ağırlık bağlantılarını eklemek ve kaldırmaktır (doğrusal olmayan bir matriste satır ekleme/silme ve çözümü etkilemeyen öğeleri sıfıra sıfırlamayı okuyun). İhtiyaç duyuldukça büyüyen sinir ağaçlarıyla ilgili koca bir alan var. Benzer şekilde, bir grup programda, farklı programların ne hakkında "düşündüğünü" kontrol edebilir, benzer durumları en aza indirebilir ve yeni "düşünce" yönleri oluşturmaya çalışabilirsiniz. Bunu değerlendirirken öncelikle emülatörler bize yardımcı olacaktır; dış çevreye ne kadar benzer bir vizyon verdiklerine bakmamız gerekiyor.

Ayrıca, ne kadar açık bir şekilde çözüm sağladıklarını görmek için bireysel programları da kontrol edebilirsiniz. Bir program birkaç çözüm arasında dolaşırsa veya bir çözüme yaklaşmazsa, "alternatif düşüncelerin seyrini" teşvik etmek için bu duruma aynı durumla başlatılan ancak rastgele sapmalarla ek programlar atılabilir. Dallanma, bir programın çözümünde ne kadar belirsiz olduğunun belirlenmesinin ve bir ekip içinde birlikte daha başarılı çalışabilmeleri için belirsiz durumları daha belirgin birkaç programa bölmenin mümkün olacağı eğitim sırasında da yararlı olabilir. Ama yine söylüyorum, bunların hepsi hala güzel fikirler, deneyler için fikirler.

Hayal edecekler

Doğru davranış örneklerine sahip olduğumuzda veya çevrenin tepkisini taklit edebildiğimizde bu iyidir. Doğal zeka (ve gelecekteki yapay zeka) için bu tür bir lüks her zaman mevcut değildir. Akıl çevreyle bir şeyler yapmaya çalışır, bunların bir kısmı doğru çıkar, bir kısmı çıkmaz, bir kısmı da anlaşılmaz sonuçlarla kalır. Bundan nasıl öğrenebiliriz?

Bunu yapmak için üçüncü tip bir dış ortam emülatörünü tanıtacağız. Dış ortamın tezahürlerini, yapay zekanın bu tezahürlere yanıt olarak ne yaptığını ve neye yol açtığını hatırlayacak. Bu, deneyim kazanıldıkça böyle bir emülatörün önceki iki çeşidi (emülasyon ve çevre tahmini) birleştirebilmesi ve yapay zekamıza benzer ilkeler üzerine inşa edilmesi olasılığını dışlamaz.

Hangi eylemlerin doğru, hangilerinin yanlış olduğu konusunda net bir bilgi olmadığında nasıl öğrenilir? Küçük bir inceleme. Hopfield ağları, kritik değerlendirmeler yapılmadan, hata düzeltmeler yapılmadan tüm örneklerin "özetlenmesi" yoluyla örneklerden eğitilir. Yineleme sürecinde (belirli bir görüntünün minimum enerjisine yakınsama) kısmi veya gürültülü bir görüntü kullanan eğitimli bir Hopfield ağı, orijinal görüntüyü yeniden oluşturabilir. Bu nedenle ağda eğitim aldıktan sonra bazen yanlış görüntüler elde edersiniz. Yanlış görüntüleri ortadan kaldırmak için girişe eğitim örnekleri gönderilir ve eğer ağ sahte bir görüntüye yakınlaşırsa böyle bir görüntünün üzerine yazılır. Bir bakıma ağ, önceden alınmış bilgilere dayanarak "rüya görür" ve rüyada yanlış bilginin yerini doğru bilgi alır. Hopfield ağları basit görüntüler için kullanılır ancak bizi ilgilendiren prensiptir.

Burada da benzer bir yol izleyebiliriz. Dış ortamdan bilgi toplandıktan sonra zekanın dış ortamdan bağlantısı kesilir ve yalnızca emülatör ile çalışır. Öykünücü durumları yeniden üretir ve akıl iyi bir çözüm üretirse bu çözüm güçlendirilir, kötüyse bu çözümün yerini başka bir şey alır. Örneğin rastgele bir şey için. Önemli olan yeni kararın kötü görünmemesi. Aynı zamanda birikmiş iyi çözümlerin kaybolmaması ve yeni kötü çözümlerin ortaya çıkmaması için değişiklikleri inşa ediyoruz.

En azından böyle bir yeniden yapılanma genetik algoritma kullanılarak gerçekleştirilebilir. Programı oluşturan her kuralın çapraz değerlendirmesinin mümkün olması, böylece her kural için hata ve düzeltmenin doğru bir şekilde hesaplanması mümkün olacaktır. Sonuçta programın iyi çalışıp çalışmadığına dair elimizde bazı bilgiler var. Karar bir program ekibi tarafından verilmişse, kararın doğruluğuna ilişkin bilginin yalnızca kazanan program için bilinmesi anlamında burada daha zordur. Ancak programların davranışları hakkında uzun süre dayanan bilgimiz var ve bundan ayrıntıları zaten çıkarabiliyoruz.

Dolayısıyla, yapay zeka doğal koşullara yerleştirilirse, bilgilerin deneme yanılma yoluyla biriktirildiği uzun uyanıklık aşamalarının ve ardından bu bilgilerin niteliksel olarak sindirildiği uyku aşamalarının ortaya çıkacağı ortaya çıktı. Bu sürecin kendisi uzun ve zahmetli olacaktır. Doğal zekada, evrim sürecinde ortaya çıkan böyle bir mekanizma, hızlı bir şekilde yararlılığını gösterdi ve sonraki nesillerde çoğaldı. Evrim sırasında ortaya çıkması pek de karmaşık görünmüyor.

Acıyı hissedecekler

Doğru eylemlerle ilgili bilgi mevcut olmadığında başka bir eğitim seçeneği. Tavlama yoluyla öğrenmede, tüm çözüm boyunca parametrelerdeki rastgele değişikliklerin, çözümü yeniden oluşturmak için kullanıldığını hatırlatmama izin verin. Bu tür değişikliklerin gücü (sıcaklık) yüksek başlar ve çözüm en iyi seçeneğe yaklaştıkça yavaş yavaş azalır. Değişiklikler bize uymuyorsa, daha uygun bir seçenek arayışı içinde değişikliklerin gücü (tavlama sıcaklığı) artar.

Bu nedenle evrim sürecinde bir ağrı mekanizması gelişmiştir. Yanlış eylem - ve sinir bağlantılarımızın acımasız bir alev tarafından nasıl tüketildiğini anında hissederiz. Böyle bir sarsıntı iz bırakmadan geçmez. Yanlış bir eylemin sonuçları, kelimenin tam anlamıyla sinir bağlantılarımıza kazınır. Öyle ki, bu yanlış eylemlerin tekrarından ne pahasına olursa olsun kaçınıyoruz. Mekanizma basit ama etkilidir.

Yapay zekada öğrenme, daha hızlı bir rastgele değişiklik oranıyla, zekanın kötü kararlar vermesi durumunda daha hızlı bir amaca yönelik değişiklikle desteklenebilir. Bu tür eklemeler hem bir program grubu düzeyinde hem de bireysel programlar veya kurallar düzeyinde uygulanabilir. Yanlış eylemler sonucunda “kötü” kurallar veya programlar tam anlamıyla yakılabilir, aynı zamanda iyi kurallar ve programlar korunacak ve çoğaltılacak, ancak yanlış eylemlerden yangın gibi “korkulacaktır”.

Daha yüksek bir zeka seviyesinde “acı”, “kafanın fikirlerden koptuğu”, “düşüncelerini toparlayamadığın” vb. şekillerde de kendini gösterecektir. İyi bir karar durumuna düşünce netliği, uyum ve “iç huzuru” eşlik edecektir.

Kural toplulukları

Evrimsel öğrenme sürecinde kuralların bir kısmının ana örnekle bağlantılı kalacak şekilde klonlandığını hayal edelim. Örneğin, aynı giriş ve çıkışlara bağlı kalırlar ve neredeyse aynı anda etkinleştirilirler. Aynı zamanda kurallar hâlâ birbirinden farklıdır ve bunların daha sonraki evrimi farklı yollar izleyebilir. Şimdi, değişiklikler meydana geldiğinde kuralların bu kısmının büyük ölçüde birbirine bağlı kaldığından emin olalım. böylece çıktılar, çıkışlar, aktivasyon ve verilen çözümler büyük ölçüde aynıdır. Aynı zamanda topluluğun kuralları diğer topluluklar da dahil olmak üzere başka yerlerde de kullanılabilir.

Topluluğun tüm kurallarıyla birlikte kararlar aldığı ortaya çıktı. Kolektif çalışma sayesinde çözüm daha kaliteli olacaktır (en azından sıradan sinir ağlarında durum böyledir). Ancak aynı zamanda topluluk, durumun niteliksel olarak farklı bir temsiline de sahip olacak ve topluluktan gelen kuralların başka yerlere katılması nedeniyle orijinal durumun sınırlarının çok ötesinde hareket edebilecektir. (ve toplulukları) programın (ve bu, özellikle programa katılan topluluklarla ilgili bir varsayımdır). Duruma ilişkin vizyonun daha üst düzeyde, daha genelleştirilmiş, daha genişlemiş ve diğer durumların deneyimiyle zenginleştirilmiş olacağını söyleyebiliriz. Böylece, sınırda veya yeni durumlarda topluluk, eğitim sırasında gördüğü eski gerçekliğin anlamını sürdüren yeni bir gerçeklik yaratabilecek (hatta fantezi bile diyebiliriz).

Burada soyutlama kategorileri ve çağrışımsal düşünme gibi şeyler yavaş yavaş ortaya çıkmaya başlıyor. Durumun daha yüksek bir vizyona sahip olması nedeniyle, resmi mantığa ve katı algoritmalara yakın "ince" mantıksal zincirler üretebilen "ağır" mantıksal zincirler ortaya çıkmaya başlar.

Yeni durumlarla karşılaşıldığında, bu tür toplulukları stokta bulunduran programın deneyimini yeni durumlara aktarması ve genelleştirmesi çok daha kolay olacaktır.

Bütün bunlar şimdilik güzel varsayımlar ama görünen o ki işler bu yönde gidiyor. Bu tür toplulukların beyinde tam olarak nasıl oluştuğu ve korunduğu henüz net değil (ancak kabul etmelisiniz ki, evrimsel olarak oldukça basit görünüyor). Programdaki toplulukların nasıl destekleneceği ve yönetileceği de bir sorudur. Görünüşe göre topluluklar için net bir kural belirlemesi yok; her şeye dinamik olarak, belirli bir duruma uygun kuralların bir araya getirilmesiyle, hepsi aynı rekabet ve etkileşim ilkelerine göre karar veriliyor. Bu durumda, kurallar ve topluluklar da dinamik olarak bir hiyerarşi içinde sıralanabilecek ve yine de kalıcı bir hiyerarşi olmayacak, aralarında meta düzeyler ve geçişler olmayacak, net bir resmileştirme vurgulama sistemi olmayacak -alt sistem bağlantıları. Bunun nasıl oluşturulabileceğine dair daha fazla ayrıntı gelecek. Ve itiraf etmelisiniz ki, olayların doğal akışı açısından her şey oldukça basit görünüyor.

Ve yine dalgalar, frekanslar ve holografi

Yapay zeka programımızda rakip programlara bölünme ve duruma ilişkin alternatif bir vizyon yapay olarak belirlenmektedir. Aynı şekilde, tüm kuralların ve bir saat üretecinin erişebildiği, her yeni anda tüm kuralları etkinleştiren ve durumu güncelleyen küresel bir durum yapay olarak tanıtılır. Ancak beyinde buna benzer bir şey yoktur ve yine de orada doğal olarak çok benzer bir şey oluşmuştur.

Elimizde doğal bir nöronun potansiyel biriktirme özelliği var ve kritik bir eşik aşıldığında çıkışlarındaki bir dizi sinyal tarafından boşaltılıyor (önceki bölümlerdeki sinir ağlarının frekansını hatırlıyor musunuz?). Bu seriler, her seferinde orijinal nöronun girdilerine bağlı olan nöronların potansiyellerini yükseltir (veya azaltır). Eşik potansiyelleri, deşarjın sıklığı ve süresi öğrenme süreci sırasında açıkça ayarlanan parametrelerdir.

Dolayısıyla ne bir saat üretecine, ne döngülere ve koşullu geçişlere, ne de küresel bir duruma ve durumun zorunlu paralelleştirilmesine ihtiyaç olmadığı ortaya çıktı.

Bu tür nöronların kollektifleri zaten bir iç durumu, karmaşık yinelemeli mantığı ve koşullu işlemeyi taşır.

Dahası, nöron paketleri, her biri kendi durum görüşüne sahip olan alternatif (paralel) zincirler halinde birleştirilebilir ve çıktıda, tüm bu zincirler, çözümü çıktıya sunulacak olan birbirleriyle rekabet eder. Ve bu tür işlemler sıradan bilgisayarlarda modellemeye oldukça uygundur. Başka bir şey de, ilk başta muhtemelen zorunlu paralelleştirmeye sahip bir zeka modelinden daha fazla kaynağa aç olacak, ancak gelecekte daha az düzenlenmiş bir model daha etkili olacak gibi görünüyor.

Şimdi toplulukları ve meta toplulukları hatırlayalım. Tüm dalga cephelerinin bireysel topluluklar boyunca dolaştığı, farklı toplulukların bir araya gelmesiyle karmaşık dalga desenleri verdiği, belki de holografik görüntülerden daha karmaşık olduğu ortaya çıktı. Bireysel nöronları (ya da yapay zekamızdaki kural ağlarını) topluluklara ve meta-topluluklara dinamik olarak bağlayan şey bu dalga desenleridir.

Bakın her şey nasıl doğal ve bir o kadar da pragmatik çıktı. Ayrı bir frekans ve holografik ağ icat etmeye, onlara eziyet etmeye, görüntüleri tanımaya zorlamaya gerek yok. Olayların etkili ve doğal seyrini uygulamak yeterlidir ve tüm bu frekans-holografik özellikler yan etki olarak kendini gösterir.

Beyinde ilk durum birçok alternatif zincire bölünür, sinir potansiyellerinde büyük bir değişiklik dalgası fırtınasına neden olur ve sonuç olarak çok daha karmaşık ve yüksek kaliteli bir temsil alır. Çıkışta tüm bu işlemler yine dış dünyaya bırakılması gereken dar sınırlara sıkıştırılır.

Dernekler, kategoriler, genellemeler ve diğer felsefeler

Topluluklarla ilgili bölümde, kuralların programın farklı yerlerine katılmasının iyi olacağını, bunun sonucunda kuralların tamamen farklı durumlardan gelen deneyimleri niteliksel olarak genelleştirmeyi öğreneceğini belirtmiştik. Yani çağrışımsal düşünme ve kategorizasyon gibi üst düzey soyutlamalara giden yolda olacaklar. Örneğin “beyaz” ve “kabarık” kavramlarından ortak bir şey çıkarabilecek ve bunu “uçma” durumunda uygulayabilecekler. Bu tür bir işlem, düşünmeyi çok daha güçlü hale getirecek ve tamamen heterojen durumlar için dinamik olarak kural toplulukları oluşturmaya izin verecektir.

Bu tür özellikleri elde etmek için yapay olarak toplulukları ve bakımlarını tanıttık. Bir kişi, bazı durumlar (kavramlar) için eğitilmiş bir kuralın tamamen farklı durumlarda (diğer kavramlar için, beyaz/kabarık/sinek örneğinde olduğu gibi) yer almasına ve daha fazla eğitilmesine olanak tanıyan özellikleri başka hangi yollarla elde edebilir? ?

Şimdilik iki seçenek ortaya çıkıyor.

Birinci seçenek, giriş ve çıkışların dinamik kombinasyonu. Başlangıçta kuralların (sinir ağları) girdi ve çıktıları ile küresel devletin hücreleri arasında sıkı bir yazışma kurduğumuzu hatırlıyor musunuz? Evrimsel değişiklikler bu benzerlikleri en aza indirecek şekilde ayarlandı. Bir sonraki versiyonda, küresel bir durum olmadan, farklı kural ağlarının girdileri ve çıktıları da birbirine sıkı bir şekilde bağlandı.

Şimdi giriş ve çıkışların çalışma ve öğrenme sürecinde birbirlerine göre konumlarını değiştirmelerine izin verelim. İki soru ortaya çıkıyor. Öncelikle ortaya çıkan kombinasyonun elemanlarının ne kadar uyumlu olduğu, bu kombinasyonun sorunu ne kadar etkili çözdüğü nasıl belirlenir? İkinci olarak, bu kadar çok kombinasyon varken, uyumlu/etkili girdi ve çıktı kombinasyonları hızlı bir şekilde nasıl seçilebilir?

En basit seçenek, kuralın her girdisini ve çıktısını evrimsel olarak değişen bir uyumluluk özelliğiyle ilişkilendirmektir ve belki de öğrenme sürecinde kuralların sonuçlarına göre bu uyumluluğa daha doğru ince ayar yapmanın bir yolu vardır. (Kural çalışırken çıktıların uyumluluğu hesaplanabilir mi? Bu etkili olur mu?) Dış ortama yönelik girdiler ve çıktılar için genel kümenin parçası olacak bir uyumluluk kümesine de ihtiyacınız olacaktır. Program çalışırken kurallar yalnızca giriş ve çıkışların uyumluluğu dikkate alınarak bağlanacaktır. Bu tür bir uyumluluğu seçme görevi hesaplama açısından kolay değildir, ancak yine de tamamen zor değildir. Belki de benzer şeyleri yapabilen Hopfield ağ algoritmaları bu seçimde yardımcı olacaktır.

Bir sonraki seçenek, öğrenme süreci boyunca farklı kuralların girdi ve çıktılarını farklı şekillerde birleştirmek ve farklı kombinasyonların etkinliği (uyumluluğu) hakkında bilgi toplamaktır. Gerçek çalışmada yukarıdaki gibi ilerleyin; girdileri uyumluluğa göre birleştirin.

Önceki seçenekler yapay zekanın uygulanması için uygundur, ancak böyle bir girdi ve çıktı kombinasyonunun doğal zekada mevcut olmadığı görülmektedir. Ancak özellik haritaları var, önceki bölümlerde evrişimli ağlar ve neocognitron hakkında bilgi edinin. Ve bu tür haritalar doğal zekada var gibi görünüyor.

Özellik haritalarının anlamı şudur. Bir dizi kural var, bir dizi girdi hücresi var. Her kural, giriş hücrelerini hareketli bir pencere kullanarak tarar ve penceredeki tüm hücreler, kuralın girişine girer. Kuralın sonucu, pencerenin giriş hücrelerindeki konumuna karşılık gelen özellik haritasının hücresine yazılır. Sonuç olarak, her kural için, kuralın en iyi çalıştığı yerlerin en yüksek değerlere sahip olacağı bir özellik haritası elde edeceksiniz. Bir sonraki katmanda, tüm özellik haritaları, yine kendi özellik haritalarını oluşturan yeni bir kurallar dizisi için girdi oluşturur. Kurallar hataların geriye yayılmasıyla öğrenilebilir. Bu tür kuralların bir programın parçası olarak nasıl öğretilebileceği açık bir sorudur.

Özellik haritaları, ölçek, açı, döndürme değişiklikleri ve tasvir edilen nesneye özgü deformasyonlarla ilişkili bozulmalarla görüntü tanımada iyi performans gösterdi.

Bu nedenle özellik haritaları, bir programı oluşturan kurallar için girdi ve çıktıların dinamik olarak birleştirilmesine yönelik deneyler için iyi bir adaydır.

İkinci seçenek, giriş ve çıkışların frekans kombinasyonu. Bu seçenekte giriş ve çıkışların yeniden düzenlenmesine gerek yoktur. Frekans sinir ağlarında (veya bu tür ağlar üzerine inşa edilen programlarda), her nöron hem basit bir frekans filtresi hem de basit bir frekans üretecidir. Üstelik bu filtre aynı anda farklı harmonikler için de yapılandırılabilir (bundan dolayı frekans ağlarının kapasitesi ve yetenekleri geleneksel ağlara göre daha yüksektir). Benzer şekilde, herhangi bir nöron kombinasyonu hem karmaşık bir frekans filtresi hem de karmaşık bir frekans üretecidir. (Yapay zekamızda böyle bir nöron, küçük bir sinir ağıyla temsil edilen tek bir kuralın eşdeğeridir).

Dolayısıyla tamamen farklı varlıklara ait sinyaller aynı nöronlarda farklı frekanslarda dolaşabilir. Ancak farklı frekanslar aynı nöronları (nöron kombinasyonlarını) etkilediğinden, farklı frekanslar (ve onlar tarafından işlenen varlıklar) birbirini etkiler. Bu nedenle, eğer zekamız frekans sinyali işleme ilkeleri üzerine kuruluysa (yukarıda frekanslar bölümünde belirtildiği gibi), o zaman bu zekanın zaten heterojen varlıkları genelleştirme ve bir tür felsefi soyutlama yeteneğine sahip olduğu görülmektedir. Ancak frekans ağlarında bu tür genellemelerin oluşumunu hızlandıracak ek teknik çözümler de bulunabilir.

Ve sonuç olarak biraz. Girdileri ve çıktıları yeniden birleştirmeye yönelik bu tür yöntemler, yalnızca çağrışımsal düşünme ve niteliksel genellemeler gibi üst düzey özellikler sağlamakla kalmaz, aynı zamanda daha sıradan özellikler de sağlar. Bir elektrik devresindeki teller karışırsa ne olur? Bu büyük olasılıkla plan için ölümcül olacaktır. Ancak beyin için bu gerekli değildir. Beynin kelimenin tam anlamıyla parçalara ayrıldığı ve karıştırıldığı, ardından tekrar yerine yerleştirildiği ve hayvanın serbest bırakıldığı deneyler (hayvanlar üzerinde) gerçekleştirildi. Bir süre sonra hayvan normale döndü ve hayatına devam etti. Kullanışlı bir özellik, değil mi?

Meta düzeyi yok

Bir zamanlar, akıllı sistemlerde mantıksal bir hiyerarşinin nasıl inşa edildiğini, kristal berraklığında bir seviyenin üzerinde birkaç alt seviyeyi kendi içine entegre eden bir başkası inşa edildiğinde mantıksal yapıların nasıl oluştuğunu merak ediyordum. Yapay zeka üzerine yapılan çalışmalar (ve sadece bu değil), sistemlerin nasıl geliştiğini, karmaşıklığı nasıl biriktirdiğini ve bir seviyeden diğerine nasıl geçtiğini güzel bir şekilde anlattı.

Gerçek sistemlerde, alt düzeyler ne kadar iyi düşünülürse düşünülsün, her zaman bazı tutarsızlıkların, üst düzeylerle koordine edilemeyen değişikliklerin biriktiği, bu değişikliklerin er ya da geç tüm sistemi bozduğu, büyük bir müdahale gerektirdiği ortaya çıkmıştır. tüm hiyerarşinin yeniden yapılandırılması. Çözüm şuydu: Bu tür hiyerarşilere çok fazla bağlanmamak, hareket özgürlüğünü bırakmak, böylece gerekirse resmi hiyerarşinin etrafında çalışabilmek. Ve bu kötü tasarlanmış bir sistemin göstergesi değil, hayatın gerçeğidir.

Elbette doğru sistem karmaşayı en aza indirir, bu yüzden bu bir sistemdir. Ancak bu, böyle bir sistemin gayri resmi bağlantılardan tamamen yoksun olduğu anlamına gelmez. İyi bir sistem, tüm doğruluğuna rağmen, kendi kendini yok edecek bir unsur taşımalıdır. Sistem artık görevlerini yerine getiremediğinde devreye giren, sistemi tamamen yeni gerçekliklere göre yeniden inşa eden bir unsur.

Benzer şekilde, yapay zekada herhangi bir mantıksal seviyeye ve meta geçişe yer yok gibi görünüyor (özellikle çağrışımlar ve genellemelerle ilgili önceki bölüm göz önüne alındığında). Tüm kurallar (bizim anlayışımıza göre bunlar aynı zamanda nöronlardır) eş zamanlı olarak her düzeyde karar alma sürecine katılır. Nöron kuralları çeşitli topluluklarda, çeşitli hiyerarşilerde dinamik olarak düzenlenebilir. Ancak bu kadar dinamik bir hizalamayla bile hiyerarşik bir katılığa sahip olmayacaklar; alt seviyedeki bir unsur üst seviyeyi kolaylıkla etkileyebilir, öyle ki onu tamamen yeniden inşa eder.

Kuralların her özel uygulama durumunda kendi hiyerarşinizi oluşturabilirsiniz. Ancak bu hiyerarşi, çeşitli biçimlendirmelerde olduğu gibi statik değildir. Zekada her şey hangi taraftan çektiğinize, hangi açıdan baktığınıza bağlıdır. Her açının kendi hiyerarşisi vardır ve buna benzer pek çok "görüş açısı" olabilir. Zeka içinde net bir hiyerarşi yok gibi görünüyor (bu, beynin hangi bölümünün hangi organlardan sorumlu olduğunu belirleyen "donanım" düzeyi anlamına gelmez).

Kuantum genetiği

Kuantum hesaplama ve zekanın kuantum özellikleri hakkında pek çok ilginç şey söylendi. Hatta bazıları beynin, düşünmek için kuantum süreçlerini doğrudan "seğirmesine" izin verdiğine inanıyor.

Kısacası kuantum hesaplamanın özü şuna iniyor. İlk veriler az sayıda temel parçacığa uygulanır. Çözme sürecinde veriler aynı anda çok sayıda farklı şekilde işlenmeye başlar ve bu yöntemler birbirleriyle iletişim kurar, kimin daha iyi bir çözüme sahip olduğunu, kimin daha kötü bir çözüme sahip olduğunu bulur, kötü çözümler zayıflatılır, iyi olanlar ortadan kaldırılır. güçlendirildi.

Bunun nedeni, kuantum hesaplamaları başlatıldığında, her bir parçacığın, hesaplamaya katılan diğer tüm parçacıkların durumunu tamamen "hissetmesi" ve bunu anında ve önemli bir enerji harcaması olmadan hissetmesidir. Çözüm başlatıldığında parçacıklar, dış dünyadan incelenemeyen "yayılmış" ("dolaşmış") bir duruma daldırılır. Bulaşmış durumda, her parçacık net bir fiziksel duruma sahip değildir; her parçacık aynı anda birkaç durumda bulunur ve birkaç paralel sürece katılabilir (ve bu süreçler birbirini "hissettirir"). Dahası, çözümde ne kadar çok parçacık varsa, aynı parçacık aynı anda o kadar çok duruma sahip olabilir.

Bulaşmış duruma girip içeride ne olduğunu görmeye çalışırsak, o zaman her belirli anda, birçok eşzamanlı durumun ipucu olmadan, parçacıkların belirli fiziksel durumlarını elde edeceğiz. Üstelik böyle bir müdahale sonrasında çözümün gidişatı tamamen bozulacak, çoklu durum bir daha sağlanamayacaktır. Bu nedenle, giriş verilerinin belirtilmesi ile çözüm sonucunun okunması arasındaki sürede ne olduğu bir sırdır. Çözüm sürecindeki küçük miktardaki girdi verilerinin, nasıl geliştiği açık olmayan, incelenemeyen ve yine de doğru çözümü üreten çok sayıda büyüklükte daha karmaşık iç durum ürettiği ortaya çıktı. Bulaşmış durumu incelemeye çalışırken alınan durum doğası gereği olasılıksaldır. Bir kuantum algoritmasının doğru tasarımıyla, doğru bir çözümün ortadan kaldırılması olasılığının, yanlış bir çözümün ortadan kaldırılması olasılığından çok daha büyük olmasını sağlamak mümkündür (yani, çözümün en az birkaç kez kaldırılması gerekir).

Görünüşe göre bu şekilde muazzam bilgi işlem gücüne neredeyse bedavaya sahip olabilirsiniz. Ancak bir sorun var - çözümün parçacıkları dış dünyadan tamamen izole edilmelidir, aksi takdirde dış dünya çözümün doğruluğunu karıştırır (tutarlılığı ihlal eder). (Kuantum fiziğinin dediği gibi) her parçacık, her kuantum başlangıçta evrene yayılmış olduğundan ve evrenimizi oluşturan diğer tüm parçacıklarla yakından iç içe olduğundan, tam izolasyonun imkansız olduğuna dair bir görüş var. Ve bu görüşün bir sonucu olarak, kuantum hesaplamanın parçacıkları alternatif evrenlere yayılmış bir duruma sokmadığı, hesaplamaları paralelleştirmek için kendi evrenimizden diğer çok spesifik parçacıkları çektiği ortaya çıktı. Doğru, bu yine de iç durumu incelemedeki zorlukları ortadan kaldırmıyor.

Bundan birkaç ilginç sonuç çıkıyor. Yüksek güçte kuantum hesaplama bize kesinlikle doğru hesaplamalar sağlayamayacaktır, ancak yukarıda açıklandığı gibi örneğin yapay zekada makul çözümler için oldukça uygundur. Ve bir öncekiyle yakından kesişen bir sonuç daha - kuantum hesaplama, evrenin ayrılmaz bir parçası oldukları için kendini tanımayı, kendini yansıtmayı sağlayamaz ve bu nedenle kendilerini ve bir bütün olarak evreni bilemezler çünkü onlar onun ayrılmaz bir parçasıdır. Önceki bölümlerde belirttiğimiz gibi, kuantum parçacıklarının durumlarını ölçmeye çalışırken aslında kuantum belirsizliklerinin ortaya çıkmasının nedeni budur. Sonuçta, yalnızca kendinizin yardımıyla kendinizi tam olarak tanımak imkansızdır. Kuantum belirsizliği aslında Gödel'in teoreminin doğrudan bir sonucudur; bu teorem, resmi bir sistemin kendisini mutlak gerçek doğrulukla bilemeyeceği anlamına gelir.

Şimdi istihbarat konusuna dönelim. Pek çok araştırmacı, kuantum hesaplamanın özellikleri ile insanlardaki entelektüel süreçler arasındaki benzerliklere doğru bir şekilde dikkat çekti. Bizim için en ilginç özellikler aşağıdaki gibidir. Çözümlerin girdisi ve çıktısı oldukça basit bir durum kümesidir. Bu basit durumlar beyni dışarıdan incelenemeyecek kadar karmaşık bir duruma sokar. Bu durumu keşfetme veya bir çözümü kaldırma girişimi, yine bir dizi basit durum üretir ve bu durumlar da olasılıksaldır ve yanlış bir çözümden ziyade doğru bir çözüm üretme olasılığı daha yüksektir. Giriş/çıkışın aksine kişinin bu içsel durumu fark etmesi zordur ama bu içsel durum “keçe” olarak adlandırılan şeydir. Kuantum hesaplamada olduğu gibi başlangıç ​​durumunun belirlenmesi ve çözümün kaldırılması oldukça emek yoğun işlemlerdir. Aynı şekilde insanın "kendi içinde" düşünmesi de kolaydır ama düşüncelerini dışarıya aktarabilmek için çok çabalaması gerekir.

Şimdi geriye kalan tek şey, kuantum hesaplamanın ve insan zekasının yukarıdaki özelliklerinin, daha önce açıklanan ve genetik algoritmaya dayanan yapay zeka algoritmasına neredeyse aynı şekilde uygulanabileceğini belirtmektir.

Aslında öyle görünüyor ki, dalgaları, frekansları ve nöronlarıyla birlikte kromozomları ve alternatif çözümleriyle birlikte genetik algoritmanın bir benzeri beynin neresinde ortaya çıkabilir? Diğer taraftan baktığınızda, genetik algoritmanın daha genel bir süreç sınıfının yalnızca bir tezahürü olduğu ortaya çıkıyor.

Beynin ilginç kuantum özellikleri sergilemesi için kuantum süreçlerini doğrudan değiştirmenin hiç de gerekli olmadığı ortaya çıktı; daha pragmatik açıklamalar var. Ve kuantum hesaplamanın kendisinin mutlaka paralel evrenler ve mutlak gerçekler hakkındaki mistisizmi içermesi gerekmez, çünkü bunlar mikro düzeyde bir tür genetik algoritma şeklinde organize edilebilirler; bu algoritma sadece parçacıkları lekeli bir duruma sokma iddiasındadır, ama gerçekte öyledir. kendi evreninin bilgi işlem kaynaklarıyla içerik.

Kuantum hesaplamanın, genetik algoritmaların ve yapay zekanın diğer alanlarının kesiştiği noktada, daha güçlü kuantum bilgisayarların yapılmasını mümkün kılacak ve katı aparatlara dayalı olarak izin verecek yeni bir hesaplama teorisi ortaya çıkacak olabilir. Akılda meydana gelen süreçleri daha doğru bir şekilde açıklamak için kuantum fiziğinin. Sonuçta zekayı anlama konusunda şu ana kadar geldiğimiz nokta, "İçimden 0,5 + 0,5'in bir litre olacağını hissediyorum ama bunu matematiksel olarak kanıtlayamıyorum" şakasını anımsatıyor, bunu yapabildiğimizde, ama bunun neden böyle olduğunu henüz açıklayamıyoruz.

Şeylerin iç temsili

Beyin dışsal şeyleri nasıl temsil eder? Beynin, nesnelerin ve olayların fiziksel bir modelini yeniden yarattığı görülüyor ve bu da birçok yanlış sonuca yol açıyor. Aslında içsel bir temsil, fiziksel bir modelle hiç de aynı şey değildir. İçsel model makuldür. İçsel model, bir nesnenin bizim için yalnızca en önemli özelliklerini, yani günlük deneyimde kullanılan özelliklerini yakalayan bir analog oluşturur. Bu içsel modele bazen "saf fizik" adı verilir. Günlük deneyimin sınırları dahilinde böyle bir model, yanlış da olsa uygulamaya oldukça uygun sonuçlar verir. Ancak gündelik deneyimlerin ötesine geçtiğimiz anda bu model çöküyor.

Böyle bir modeli oluşturan kurallar dizisi, gerçek fiziksel temsilden çok uzak olabilir. İçsel temsil, gerçek nesnelerin pek çok “fantastik” özelliğini de taşıdığından, içsel temsil “kendi hayatını yaşamaya” başlar. Örneğin karikatürler. Karikatürde çizilen bir yüzü kişi kolaylıkla tanıyabilir, eğitimli kişiler karikatür çizebilir. Ancak yüz tanıma sistemleri karikatürler karşısında şaşkına dönüyor. Ve haklı olarak, her ne kadar tanıma motorları makul bir modele sahip olsa da, insan modelinden çok fiziksel modele daha yakın.

İç temsil aynı zamanda daha önce açıklanan karmaşıklık farkıyla da karakterize edilir. Daha basit bir nesnenin veya olgunun, şeylerin özünü modellemekten sorumlu olan çok daha karmaşık bir iç temsile yol açması gerçeğinde yatmaktadır. Sonuçta zeka fiziği doğrudan modelleyemez. Basit bir fikir, bunun neden böyle olduğunu hissettiğinizde, ancak açıklayamadığınızda, şeylerin özüne dair bir "hissi" doğurur. Daha karmaşık bir temsil, nesnelerin temsilini anlayış, fantezi ve bilinçli düşünme düzeyine kadar genişletebilir (örneğin karikatürler).

Merhaba mantık

Mantık nedir ve daha yüksek entelektüel aktivite nereden gelir?

Zekâmız, basit girdi-çıktı tepkimelerinden, girdi durumunu çok daha karmaşık bir iç temsile ayrıştıran çok sayıda rakip sürecin birleşimine doğru evrilmiştir.

Sonuç olarak, bazı şeyler için, bu şeyin içsel temsili olan, muazzam karmaşıklığa sahip (orijinal şeyin fiziğinden çok daha karmaşık) kural kompleksleri oluşturulabilir. Bu kuralların tam olarak ne tür olabileceği ve yaklaşık olarak ne kadar oluşturulabileceği yukarıda anlatılmıştır. Ancak asıl önemli olan, orijinal fenomen ile onun tanımı arasındaki karmaşıklıktaki böyle bir fark nedeniyle, bu fenomenin niteliksel olarak farklı bir temsilinin mümkün hale gelmesi ve bu fenomen hakkında yüksek derecede makul yeni bilgiler elde edilmesine olanak sağlamasıdır.

Zeka ve algoritma arasındaki paradoksun, bir algoritmanın bir şeyin fiziğini yalnızca aptalca bir şekilde simüle edebilmesi, olgunun özünü anlamadan, olgu hakkında yeni bilgi elde edememesi ve hatta yaptığı işin doğruluğunu garanti edememesi olduğunu hatırlatmama izin verin. . Akıl, şeylerin özünün çok daha karmaşık bir iç temsili nedeniyle, yalnızca bunları modellemekle kalmayıp, aynı zamanda onlar hakkında yeni bilgiler çıkarma ve hatta bu şeyle ilgili yargıların doğruluğunu yüksek bir doğrulukla değerlendirme yeteneğine de sahiptir. inandırıcılık derecesi.

Nesnelerin ve fenomenlerin özünün temsilini, nesnelerin ve fenomenlerin orijinal "fiziğinden" birçok büyüklük düzeyinde daha karmaşık bir temsile genişleten karmaşıklığın geçişi, anlama rolü için iyi bir adaydır. Karmaşık bir iç temsile ayrışma var - şeylerin özünün anlaşılması ve yüksek kalitede işlenmesi var, beklenmedik durumlar ortaya çıktığında esnek bir tepki mümkündür. Böyle bir ayrıştırma yoktur - yeni bilgi üretmeyen, kişinin işinin özü veya gerçeği hakkında bir açıklama yapmayan ve yeni faktörler ortaya çıktığında kafası karışan algoritmayı körü körüne takip ederek yalnızca aptalca "tıka basa doldurma" mümkündür.

Bir algoritmaya körü körüne bağlılık, daha yüksek entelektüel aktiviteyi çekmez, bu nedenle, yalnızca tipik durumlara net bir tepkinin gerekli olduğu durumlarda hızlı ve etkilidir. Anlamayı içeren daha yüksek entelektüel aktivite, çeşitli algoritmaları yavaş yavaş perçinleme yeteneğine sahiptir, ancak bunları hızlı bir şekilde uygulama yeteneğine sahip değildir. Bu yöntemlerin kombinasyonları da mümkündür.

Bir sonraki mantıksal soru şudur: Anlama sürecinde neler olduğunu anlamak mümkün müdür? Ve aynı mantıksal cevap büyük olasılıkla evettir, ancak bu, akılda meydana gelen süreçlerin böyle bir temsilini gerektirecektir; bu, karmaşıklık açısından orijinal entelektüel süreçlerden kat kat daha büyük olacaktır. Yani zeka hakkında bir şeyler öğrenebiliriz, bir şeyler yapabiliriz, ancak insan zekasının çalışmasını tam ve niteliksel olarak anlayamıyoruz - sadece yeterli beyin gücü yok. Her ne kadar kalıpları inceleyip kullanabilsek de, tıpkı şu anda bilgisayarları kullandığımız gibi, onlarda meydana gelen süreçlerin tam olarak farkında olmadan da olabiliriz. Milyonlarca transistörün tümünde meydana gelen süreçleri hayal etmek imkansızdır, ancak bilgisayar devrelerinin mantıksal birimlerinin nasıl çalıştığını ve bunların daha yüksek düzeylerde nasıl birleştirildiğini anlamak oldukça mümkündür. Aynı şey zeka için de geçerlidir.

Yukarıdakilerden, anlamanın neden açıklanmasının zor olduğu ve anlamanın neden hissedilmesinin kolay olduğu, anlamaya eşlik eden mantıksal yapıları ortaya koymanın neden mümkün olduğu ve anlama yol açan temelin tamamını yeniden üretmenin neden çok zor olduğu açıklığa kavuşuyor. kendini anlamak. Aşağıda bununla ilgili geniş bir bölüm olacak. Buradan bir duygunun ne olduğu, bir durum hissinin ne olduğu, duyguların ve hislerin neden ifade edilmesinin zor, ancak hissedilmesinin kolay olduğu anlaşılıyor. Genel olarak pek çok ilginç sonuç vardır; eğer ilgileniyorsanız bilincin kuantum özelliklerinin yönüne bakın.

Başka bir soru da, kendimizin, çevremizdeki dünyanın farkında olmamız tam olarak nasıl oluyor? Düşünen makineler bu farkındalığa ulaşabilecek mi? Bu temel felsefi soru yapay zekanın kapsamı dışında kalıyor ama yine de bir sonraki bölümde cevaplamaya çalışacağız.

Karmaşıklık ve anlayıştaki farklılıklar hakkındaki düşünceyi sürdürerek, süper karmaşık bir iç temsilin, eninde sonunda, şeylerin iç temsilinden çok incelikli, keskin, süper uyumlu kenarlar yaratma kapasitesine sahip olacağı sonucuna varıyoruz. Başka bir deyişle orijinal şeylerin idealleştirilmesi veya soyutlanması.

Bu soyutlamalar, doğuşlarını çok sayıda içsel, çelişkili ve birleşik sürecin çoklu birleşimine borçludur. Ancak çoğu iç sürecin etkileşiminin sonuçlarından farklı olarak, soyutlamalar için sonuç doğası gereği bulanık (geniş) olmayacak, ancak olduğu gibi bir kenarda, bir veya daha fazla çok net kenar veya tepe noktasında toplanacaktır.

Doğal olarak soyutlamalar, diğer şeylerin yanı sıra, nesnelerin iç temsilini içeren tekrarlanan yansımaların yanı sıra gerçek prototiplerinin tezahürlerinin tekrar tekrar gözlemlenmesiyle üretilir. Üstelik bu gözlem ve yansımaların çokluğu muhtemelen soyutlama sağlamayan diğer konulara göre daha fazladır. Ve soyutlamaların içsel bir temsilini veren kuralların doğası kesinlikle daha düzenli bir biçime sahiptir, en yüksek düzeyde uyumlaştırmaya daha fazla uyarlanmıştır.

Bir sonraki adım, bu tür zirve uyumlaştırmaların, kendi yasalarına göre çalışan uzun zincirler halinde birleşebilmesidir. Böylece soyut veya mantıksal yeni bir düşünme düzeyi elde ederiz. Doğal olarak bu seviye, sıradan anlayıştan çok daha karmaşıktır ve anlayışla donatılmış her canlı, karmaşık mantıksal yapılara sahip değildir.

Bu tür soyut zincirler, bir yerlerde orijinal prototiplere benzeyerek, bir yerlerde onlardan uzaklaşarak kendi kanunlarına göre yaşayacaklar.

Mantıksal yapıların nereden geldiğine dikkat edin. Algoritmik seviyede değiller, hatta bir sonraki seviyede, anlama seviyesinde bile değiller. Bunlar, anlayışın ötesinde bir tür anlayış olan üçüncü zeka düzeyini oluştururlar.

Mantıksal yapılandırma sürecinde beynin yalnızca aptal bir algoritma, ilkel bir mantıksal çıkarım makinesi gibi çalıştığını "iddia ettiğini" hatırlamamız gerekiyor. Aslında mantıksal yapılarda yer alan süreçler, orijinal mantıksal yapılardan çok daha karmaşıktır ve karmaşıklıktaki bu sıçrama nedeniyle akıl, yeni mantıksal yapılar yaratmayı ve bunların doğruluğunu yüksek derecede doğrulukla yargılamayı başarır.

Aynı şekilde beyin, "ağır" süreçler nedeniyle bilgisayarların (Turing makineleri) çalışmasını taklit edebilir, ancak beyin "iyi" algoritmaları takip ediyor gibi görünse de (özellikle beyin bu tür işler için eğitilmişse).

Ve ince mantıksal yapılar ve algoritmaların hazırlanması hakkında biraz daha. Deneyimsiz olanlar için, matematiksel gerçekler hakkında düşünürken veya bilgisayar programları yazarken, aydınlanmış bir bilge bir tür meditasyona oturur ve doğru akıl yürütmenin yardımıyla doğru sonuçlara varır veya doğru programı bulur. Aslında olup bitenler daha çok aşağıdaki şemaya benziyor.

  • “Bir şey”, ilk versiyon icat edildi (ya da hatta kazara oluşturuldu).
  • Mantıksal akıl yürütmeyi taklit ederek bu "bir şeyin" işleyişini kontrol ettim ve sorunlu alanları hatırladım.
  • Sorunlu alanları rastgele iyileştirmeye çalıştım (bu “bir şeyi” geliştirdim).
  • Geliştirilmiş sürümü kontrol ettim vb.

Sonuçta, beyin anında doğru mantıksal zincirler oluşturamaz, bunun yerine mantıksal akıl yürütmeyi taklit ederek bu zincirlerin işleyişini kontrol edebilir. Başka bir şey de, beynin farklı durumlar için büyük bir şablon “kütüphanesine” ve ayrıca bu şablonların birbirleriyle nasıl birleştirileceğine dair bir dizi makul kurala sahip olmasıdır. Bu kuralları ve kalıpları az sayıda denemeyle uygulayarak iyi mantıksal akıl yürütme ve programlar oluşturmak mümkündür. Diğer şeylerin yanı sıra, bu tür kurallar, farklı şablon kombinasyonlarının işleyişine ilişkin teşhisleri içerebilir ve her seferinde veri hacminin tamamı üzerinde mantıksal yapılar çalıştırmak yerine dinamik olarak yenilenebilir ve doldurulacaktır.

Biz tercüme ediyoruz... Çeviri Çince (Basitleştirilmiş) Çince (Geleneksel) İngilizce Fransızca Almanca İtalyanca Portekizce Rusça İspanyolca Türkçe

Ne yazık ki şu anda bu bilgiyi tercüme edemiyoruz; lütfen daha sonra tekrar deneyin.

Geçtiğimiz birkaç on yılda, bilgisayar oyunları endüstrisi uzun bir yol kat etti. Her şey en basit oyunlarla başladı, örneğin Pong* Ve Pac-Adam* Bu sayede oyuncular kısa bir süreliğine gerçek dünyayı unutabildiler. Modern en güçlü oyun projeleri, örneğin Dünyaile ilgiliWarcraft* Ve Aramaile ilgiliGörev 4*, oyuncular için çok ciddi bir hobidir. Entertainment Software Association'a (ESA) göre günümüzün oyuncuları ortalama 13 yıllık oyun deneyimine sahip ve yeni oyunların daha karmaşık, eğlenceli ve akıllı hale gelmesine alışkınlar. Geliştiriciler için asıl zorluk, giderek daha sürükleyici oyunlar yaratmaları gerektiğidir. Bu sorunu çözmek için sürekli gelişen bilgisayar kontrollü yapay zeka (AI) da kullanılıyor. Ancak oyuncunun hareketlerine uyum sağlayabilecek, yüksek düzeyde oynayabilecek ve oyuncuyu gelişmeye teşvik edebilecek iyi bir yapay oyun ortağı oluşturmak oldukça zor bir iştir. Bu makale, kritik yapay zeka ilkelerini ve günümüzün çok çekirdekli işlemcilerinden tam anlamıyla yararlanmak için nasıl optimize edileceğini açıklayan dört bölümlük bir diziyi başlatıyor.

Bölüm 1: Tasarım ve Uygulama

Oyunlar için yapay zeka nedir?

En basit düzeyde "yapay zeka", yapay zeka tarafından temsil edilen diğer oyuncuların veya nesnelerin (yani oyuncunun üzerinde veya bunlarla hareket edebileceği, füzelerden sağlık kitlerine kadar oyunun tüm unsurlarının) davranışlarını modellemeyi veya simüle etmeyi içerir. Temel prensip bu davranışın taklit edilmesidir. Başka bir deyişle, oyunlara yönelik yapay zeka "zekadan" daha "yapay"dır. AI sistemi son derece basit olabilir ve bir dizi kuraldan oluşabilir veya oldukça karmaşık olabilir ve oyuncunun savaşmak zorunda olduğu düşman ordusunun komutanı olarak hareket edebilir.

Oyunlar için yapay zekanın geleneksel yapay zekadan farkı nedir?

Geleneksel yapay zeka araştırmalarında amaç, yapay yollarla da olsa gerçek zekayı, hatta yapay zekayı yaratmaktır. Massachusetts Teknoloji Enstitüsü'ndeki (MIT) Kısmet* gibi projeler, öğrenme, sosyal etkileşim ve duygu yeteneğine sahip yapay zeka yaratmaya çalışıyor. Bu yazının yazıldığı an itibarıyla MIT'de küçük bir çocuğun yeteneğine sahip yapay zeka yaratma çalışmaları sürüyor ve bu çalışmanın sonuçları oldukça umut verici.

Oyun açısından bakıldığında gerçek yapay zeka, bir eğlence yazılımı projesinin gereksinimlerinin çok ötesine geçer. Oyunların bu kadar güce ihtiyacı yok. Oyun yapay zekasının duyarlı veya kendinin farkında olmasına gerek yok (ve açıkçası böyle olması iyi bir şey!) ve oyun dışında hiçbir şey öğrenmesine gerek yok. Oyunlardaki yapay zekanın asıl amacı, akıllı davranışı taklit etmek ve oyuncuya çözebileceği zorlayıcı, inandırıcı bir sorun sunmaktır.

Oyunlarda yapay zekanın amacı

Yapay zeka oyunlarda çeşitli roller üstlenebilir. Bu, oyun dünyasındaki nesnelerin davranışını belirleyen genel bir kurallar dizisi olabilir. Önceden yazılmış bir senaryoya sahip olaylar da yapay zeka olarak değerlendirilmelidir. Örneğin oyunda F.E.A.R* Oyuncuları korkutan ve gelecekten olayların habercisi olan korkunç bir küçük kız senaryolu bir olaydır. Çoğu insan yapay zeka ve oyunlar hakkında düşündüğünde akla çok oyunculu oyunlardaki bilgisayar kontrollü karakterler geliyor. Ancak tüm bu çeşitli roller tek bir aktör tarafından, yani yapay zeka tarafından gerçekleştirilebilir.

Şekil 1. Oyun F.E.A.R. (Vivendi Universal*) önceden yazılmış olayları yapay zeka olarak kullanma

Oyunlarda yapay zeka için gerekenler

Yapay zekanın oyundaki doğasına ve rolüne bağlı olarak kaynak gereksinimleri çok sınırlı olabilir. Sistem ne kadar karmaşıksa yapay zeka için o kadar fazla kaynağa ihtiyaç duyulur. Temel düzeyde yapay zekanın eylemlerini hesaplamak yalnızca CPU zamanını alır. Daha karmaşık sistemler, yapay zeka ortamını analiz etmek, oyuncu eylemlerini kaydetmek ve önceki eylemlerin başarısını değerlendirmek için bazı araçlar gerektirir.

Karar vermek

Yapay zekanın arkasındaki temel prensip karar vermedir. Karar verirken seçim yapabilmek için sistemin bir yapay zeka sistemi kullanarak nesneleri etkilemesi gerekiyor. Üstelik bu tür bir etki “Yapay Zeka yayını” veya “nesne çağrıları” şeklinde organize edilebilir.

"AI yayın" sistemlerinde, AI sistemi genellikle oyun mimarisinin ayrı bir unsuru olarak izole edilir. Bu strateji genellikle yapay zekanın belirli oyun parametreleri için en iyi çözümü hesapladığı tek bir iş parçacığı veya birden çok iş parçacığı biçimini alır. Yapay zeka bir karar verdiğinde bu karar tüm katılımcı kuruluşlara iletilir. Bu yaklaşım, yapay zekanın oyun boyunca olayların genel akışını analiz ettiği gerçek zamanlı strateji oyunlarında en iyi sonucu verir.

"Nesneyi tersine çevirme" sistemleri, basit nesneler içeren oyunlar için daha uygundur. Bu tür oyunlarda, nesne her "düşündüğünde" veya kendini güncellediğinde nesneler yapay zeka sistemiyle iletişim kurar. Bu yaklaşım, atıcılar gibi çok sık "düşünülmesi" gerekmeyen çok sayıda nesnenin bulunduğu sistemler için mükemmeldir. Böyle bir sistem aynı zamanda çok iş parçacıklı mimarinin avantajlarından da yararlanabilir ancak daha karmaşık planlama gerektirir (ayrıntılar için Orion Granatir'in makalesine bakın).

Temel algı

Yapay zekanın anlamlı kararlar verebilmesi için bir şekilde içinde bulunduğu ortamı algılaması gerekiyor. Basit sistemlerde bu algılama, oynatıcı nesnesinin konumunun basitçe kontrol edilmesiyle sınırlı olabilir. Daha karmaşık sistemlerde oyun dünyasının temel özelliklerini ve özelliklerini (örneğin olası hareket yolları, bölgedeki doğal barınakların varlığı, çatışma alanları) belirlemek gerekir.
Aynı zamanda geliştiricilerin, oyun dünyasının yapay zeka sistemi için önemli olan temel özelliklerini belirlemenin ve tanımlamanın bir yolunu bulması gerekiyor. Örneğin, arazi örtüsü seviye tasarımcıları tarafından önceden tanımlanabilir veya seviye haritası yüklendiğinde veya derlendiğinde önceden hesaplanabilir. Çatışma haritaları ve yakındaki tehditler gibi bazı unsurların anında hesaplanması gerekir.

Kural tabanlı sistemler

Yapay zekanın en basit şekli kural tabanlı bir sistemdir. Böyle bir sistem gerçek yapay zekadan en uzak olanıdır. Önceden tanımlanmış bir dizi algoritma, oyun nesnelerinin davranışını belirler. Eylemlerin çeşitliliği göz önüne alındığında, nihai sonuç örtülü bir davranış sistemi olabilir, ancak böyle bir sistem aslında hiçbir şekilde "akıllı" olmayacaktır.
Kurallara dayalı sisteme iyi bir örnek, ister bilgisayar oyunu ister gerçek blackjack olsun, blackjack oynarken krupiyerdir (krupiye). Dağıtıcının her zaman takip ettiği basit bir kuralı vardır: 17 puana ulaşana kadar kart almalı (ve 17 veya daha fazla puana ulaştığında durmalıdır). Ortalama bir oyuncunun bakış açısından durum, krupiyerin kasıtlı ve agresif bir şekilde ona karşı oynadığı gibi görünüyor. Bu nedenle oyuncu, gerçekte olduğundan daha deneyimli bir rakibin kendisine karşı oynadığı izlenimini edinir (kumarhane, krupiyerlerin oynadığı diğer kuralları duyurmadığı sürece).

Böyle bir sistemi kullanan klasik bir oyun uygulaması Pac-Man'dir. Oyuncuya dört hayalet musallat oluyor. Her hayalet basit bir dizi kurala göre çalışır. Bir hayalet her zaman sola döner, diğeri her zaman sağa döner, üçüncüsü rastgele bir yöne döner ve dördüncüsü her zaman oyuncuya doğru döner. Eğer hayaletler ekranda birer birer belirseydi, davranışlarını belirlemek çok kolay olurdu ve oyuncu onlardan kolayca kaçabilirdi. Ancak dört hayaletten oluşan bir grup aynı anda ortaya çıktığından, hareketleri karmaşık görünüyor ve oyuncuyu koordineli bir şekilde takip ediyor. Aslında dört hayaletten yalnızca sonuncusu oyuncunun konumunu dikkate alır.

Şekil 2. Oyundaki hayaletleri kontrol eden kurallar dizisinin görsel temsili. Pac-Adam, burada oklar alınan "kararları" temsil eder

Bu örnek, kuralların katı ve hızlı olması gerekmediğini gösteriyor. Algılanan duruma (son dönüşüm gibi) veya nesnelerin düzenlenebilir parametrelerine dayanabilirler. Saldırganlık düzeyi, cesurluk düzeyi, görüş aralığı ve düşünme hızı gibi değişkenler, kural tabanlı sistemler kullanıldığında bile nesnelerin daha çeşitli davranışlarına izin verir. Kural tabanlı sistemler en basit yapay zeka çerçevesidir. Daha karmaşık ve akıllı sistemler, temel olarak koşullu kural dizilerini kullanır. Taktik oyunlarda kullanılan taktiklerin seçimini kurallar belirler. Strateji oyunlarında kurallar, inşa edilecek nesnelerin sırasını ve çatışmalara verilen tepkiyi yönetir. Kural tabanlı sistemler yapay zekanın temelidir.

Yapay zeka olarak durum makineleri

Sonlu durum makinesi (sonlu durum makinesi), ömrü boyunca farklı durumlara sahip olan bir nesneyi modellemenin ve uygulamanın bir yoludur. Her biri « Durum", bir nesnenin bulunduğu fiziksel koşulları veya nesne tarafından ifade edilen duygu kümesini temsil edebilir. Bu örnekte duygusal durumların yapay zekanın duygularıyla hiçbir ilgisi yoktur; bunlar oyunun bağlamına uyan önceden tanımlanmış davranış kalıplarına atıfta bulunur.

Burada bir gizli oyundaki yapay zeka sistem durumlarının yaygın örnekleri verilmiştir.

Şekil 3. Tipik bir durum makinesinin durum diyagramı, olası durum değişikliklerini temsil eden oklar

  • Eylemsizlik. Bu durumda, nesne belirli bir rota boyunca pasif olarak durur veya yürür. Algı düzeyi düşüktür. Nesne, oynatıcının çıkardığı sesleri nadiren kontrol eder. Yalnızca nesne saldırıya uğrarsa veya oyuncuyu doğrudan önündeki oyuncuyu "görürse", nesnenin durumu daha yüksek bir algı düzeyine değişir.
  • İhtiyat. Nesne aktif olarak yabancıları arıyor. Sık sık dinler, oyuncuyu duymaya çalışır, görüş alanı etkin olmadığı zamana göre daha uzak ve daha geniştir. Denek, açık kapılar, bilinçsiz bedenler, kurşun kovanları gibi sıra dışı (kontrol gerektiren) bir şey fark ederse ilgi durumuna girecektir.
  • Faiz. Nesne bir şeyin olduğunu biliyor. Bu davranışı göstermek için denek normal bulunduğu yeri veya rotayı terk ederek yukarıda bahsedilen açık kapılar veya yatan bedenler gibi ilgi duyulan bir alana doğru hareket eder. Oyuncu bu sırada nesneyi görürse, nesne alarm durumuna geçecektir.
  • Endişe. Bu durumda, nesne zaten oyuncuyu fark etmiştir ve oyuncuyu takip etmeyi ve yok etmeyi amaçlayan eylemler gerçekleştirir: saldırı menziline girmek, diğer korumaları uyarmak, alarmı etkinleştirmek, siper aramak. Düşman bir nesnenin menzilinde olduğunda nesne saldırgan bir duruma girer.
  • Saldırganlık. Bu durumda nesne oyuncuyla savaşmaya başlar. Nesne, mümkün olduğunca oyuncuya saldırır ve saldırılar arasında (silahın yeniden doldurulması veya soğumasına izin verilmesi gerekiyorsa) siper almaya çalışır. Nesne bu durumdan yalnızca oyuncu yok edildiğinde (normal duruma dönerse), oyuncu etkilenen alandan çıkarsa (alarm durumuna dönerse) veya nesnenin kendisi ölürse (ölüm durumuna geçerse) çıkar. Hedefin sağlığı düşükse uçuş durumuna geçebilir (belirli hedefin cesaret seviyesine bağlı olarak).
  • Kaçmak. Bu durumda nesne savaşı terk etmeye çalışır. Oyuna bağlı olarak, ana hedefe (oyuncunun aranması ve yok edilmesi) ek olarak, bir nesnenin ek bir hedefi de olabilir - sağlığı iyileştirmek için ilk yardım çantalarını bulmak veya oyun alanını terk etmek. Bir ilk yardım çantası bulan nesne alarm durumuna dönebilir ve savaşa devam edebilir. Oyun alanını "terk eden" bir nesne basitçe kaldırılır.
  • Ölüm. Bazı oyunlarda ölüm durumu tamamen hareketsizlikten farklıdır. Örneğin bir nesne ölürse çığlık atabilir, yakındaki nesneleri uyarabilir veya bilinçsiz bir duruma geçebilir, bu durumda bir doktor yine de kurtarmaya gelebilir (bu durumda nesne alarm durumuna geri dönecektir).

Sonlu durum makinesini nesneler sistemiyle uygulamanın en az iki basit yolu vardır. İlk yol, her durumun kontrol edilebilecek bir değişken olmasıdır (genellikle hantal anahtar talimatlarıyla yapılır). İkinci yol, işlev işaretçilerini (C'de) veya sanal işlevleri (C++ ve diğer nesne yönelimli programlama dillerinde) kullanmaktır.

Uyarlanabilir yapay zeka

Önceki bölümlerde önceden belirlenmiş oyun olaylarına uyan istihbarat sistemlerinin tasarlanmasına yönelik yöntemler açıklanmaktadır. Çoğu oyun için, tasarlanan tüm modeller yeterince eksiksiz bir şekilde çalışılırsa ve yapay zeka tarafından kontrol edilen nesnelerin izlediği hedeflerin net bir şekilde anlaşılması durumunda bu çözüm oldukça uygulanabilir. Oyunun daha fazla çeşitlilik gerektirmesi, oyuncunun daha güçlü ve dinamik bir rakibe sahip olması gerekiyorsa, o zaman yapay zekanın gelişme, uyum sağlama ve uyum sağlama yeteneğine sahip olması gerekir.

Uyarlanabilir yapay zeka, karmaşık mekaniklere ve çok çeşitli oyun seçeneklerine sahip savaş ve strateji oyunlarında sıklıkla kullanılır. Eğer bir oyunu zorlayıcı ve heyecan verici hale getirmek istiyorsanız ve oyuncunun bilgisayarı er ya da geç yenmek için tek bir optimal strateji bulamamasını istiyorsanız, yapay zekanın öğrenmesi ve uyum sağlaması gerekir.

Tahmin

Rakibin bir sonraki hamlesini doğru bir şekilde tahmin etme yeteneği, uyarlanabilir bir sistem için kritik öneme sahiptir. Bir sonraki eylemi seçmek için geçmiş hareketlerin kalıplarını tanımak (sonraki bir makalede daha ayrıntılı olarak anlatılmıştır) veya rastgele tahminler gibi çeşitli yöntemler kullanılabilir.

Uyum sağlamanın en basit yollarından biri geçmiş kararları takip etmek ve başarılarını değerlendirmektir. Yapay zeka sistemi oyuncunun geçmişte yaptığı seçimleri kaydediyor. Geçmişte alınan tüm kararların bir şekilde değerlendirilmesi gerekir (örneğin dövüş oyunlarında kazanılan veya kaybedilen avantaj, kaybedilen sağlık veya zaman avantajı başarının ölçüsü olarak kullanılabilir). Göreceli sağlık düzeyleri, önceki eylemler ve seviye konumu (insanlar geri çekilecek başka yerleri olmadığında farklı şekilde oynarlar) gibi kararlara bağlam sağlamak amacıyla durumla ilgili ek bilgiler toplanabilir.

Önceki eylemlerin başarısını belirlemek ve taktiklerin değiştirilmesi gerekip gerekmediğine karar vermek için tarih değerlendirilebilir. Önceki eylemlerin bir listesini oluşturmadan önce hedef, standart taktikleri kullanabilir veya rastgele hareket edebilir. Bu sistem kural tabanlı ve durum tabanlı sistemlere bağlanabilir.

Taktiksel bir oyunda geçmiş savaşların geçmişi, oyuncunun takımına karşı kullanılacak en iyi taktiğin seçilmesine yardımcı olacaktır; örneğin yapay zeka defansif olarak oynayabilir, hücum taktiklerini seçebilir, kayıplardan bağımsız olarak tüm gücüyle saldırabilir veya dengeli bir şekilde hareket edebilir. yaklaşmak. Bir strateji oyununda, her oyuncu için ordudaki farklı savaş birimlerinden oluşan en uygun seti seçebilirsiniz. Yapay zekanın oyuncuyu destekleyen karakterleri kontrol ettiği oyunlarda uyarlanabilir yapay zeka, oyuncunun eylemlerini öğrenerek doğal tarzına daha iyi uyum sağlayabilecek.

Çözüm

Yapay zeka çok yönlü ve karmaşık bir araştırma alanıdır. Oyunlardaki yapay zeka, oluşturulan oyunun ihtiyaçlarına bağlı olarak, bilgisayar kontrollü nesneler için basit kural dizilerinden daha gelişmiş uyarlanabilir sistemlere kadar birçok biçim alabilir. Elektronik eğlence yazılımında oluşturulan sanal karakterlerin inandırıcılığını artırmak için yapay zeka ilkelerinin oyunlarda uygulanması gereklidir, ancak bu görev oldukça çözülebilirdir. Bu serinin bir sonraki makalesinde, yapay zekanın karmaşık ortamlarda algılama ve hareket etme konusunda karşılaştığı zorluklardan ve bu zorlukların nasıl çözüleceğinden bahsedeceğiz.

Donald "DJ" Keyhoe: Donald Keyhoe, New Jersey Teknoloji Enstitüsü'nün Bilgi Teknolojileri programında öğretim üyesidir ve oyun geliştirme konusunda uzmanlaşmıştır. Donald, bu programda oyun mimarisi, programlama ve seviye oluşturma ve 3D grafiklerin oyunlarla entegrasyonuna ilişkin kurslar dahil olmak üzere birçok ders veriyor. Donald şu anda nöromüsküler rehabilitasyonu geliştirmek için oyun ve sanal gerçeklik teknolojilerinin kullanıldığı biyomedikal teknoloji alanında doktora yapmak için çalışıyor.

P.V. Kazakov, V.A. Shkaberin
YAPAY ZEKA'NIN TEMELLERİ

1. YAPAY ZEKAYA GİRİŞ

Yapay zeka (AI), modern bilgisayar biliminin, gelişiminin bir sonraki aşaması olan yeni bilgi teknolojilerinin yaratılmasıyla ilişkili öncelikli alanlarından biridir. Amaçları, bilgi sistemleri oluştururken bir programcı olarak insanın katılımını en aza indirmek, ancak onu bir öğretmen, insan-makine sisteminin bir ortağı olarak dahil etmektir. Ancak “yapay zeka” terimi tam anlamıyla anlaşılamaz. Bunu, bilgisayarda uygulanması insan düşüncesinin ürettiği sonuçlara yakın sonuçlar elde etmeyi mümkün kılan bir dizi yöntemin metaforik bir adı olarak algılamak daha doğrudur.

1.1. Yapay zeka ile ilgili bazı kavramlar

Yapay zeka yaratma fikri, bir kişinin karmaşık sorunların çözümünü önce mekanik, ardından elektronik asistana kaydırma konusundaki sürekli arzusuyla ilişkilidir. Bunu gerçekleştirmenin tek yolu, çeşitli yollarla insanın entelektüel yeteneklerini modellemektir.

Burada zeka, deneyimlerden öğrenme ve çeşitli koşullara uyum sağlama sürecinde beynin bilgiyi edinerek, ezberleyerek ve bilinçli olarak dönüştürerek sorunları çözme yeteneği olarak anlaşılmalıdır.

Bilimsel bir alan olarak Yapay Zeka (AI), İngiliz matematikçi Alan Turing'in "Makine Düşünebilir mi?" başlıklı makalesini yayınladığı 1956 yılından bu yana varlığını sürdürüyor. (“Bir makine düşünebilir mi?”). Ayrıca bir program zeka testi önerdi. Aşağıdakilerden oluşuyordu: Bir kişi ile farklı odalarda bulunan bir bilgisayar programı arasında “iletişim” düzenlendi ve araştırmacı duvarın arkasında kimin olduğunu belirleyene kadar - bir kişi veya bir program, ikincisinin davranışı dikkate alındı entelektüel. Bundan yola çıkarak Turing, bir programın zekası için şu kriteri önerdi: "Soruları yanıtlayan bir bilgisayarın davranışı, benzer soruları yanıtlayan bir kişinin davranışından ayırt edilemiyorsa, o zaman zekaya sahiptir."

Günümüzde yapay zeka alanındaki araştırmaların amaç ve hedeflerine ilişkin üç ana bakış açısı bulunmaktadır. Birincisine göre, geleneksel olarak entelektüel olarak kabul edilen ve daha önce klasik algoritmik yöntemlerin yanı sıra otomasyon kullanılarak resmileştirmeye uygun olmayan sorunları çözmek için yeni model ve yöntemlerin geliştirildiği süreçte bu alandaki araştırma esastır. Zekâ ve düşünme, teoremlerin kanıtlanması, mantıksal analiz, durumların tanınması, davranış planlama, belirsizlik koşullarında yönetim vb. problemlerin çözümüyle doğrudan ilişkilidir. Bu tür problemleri çözme sürecinde ortaya çıkan zekanın karakteristik özellikleri, problem çözme sürecinde öğrenme, genelleme, deneyim biriktirme ve değişen koşullara uyum sağlama yeteneğidir. Zekanın bu nitelikleri nedeniyle beyin çeşitli sorunları çözebilir ve aynı zamanda bir sorunu çözerken diğerine kolaylıkla uyum sağlayabilir. Bu nedenle, zekayla donatılmış beyin, önceden bilinen standart çözüm yöntemlerinin bulunmadığı çok çeşitli sorunları (kötü biçimlendirilmiş olanlar dahil) çözmenin evrensel bir yoludur. İkinci bakış açısına göre bu yön, bilgisayardaki problemlerin çözümüne yönelik yeni fikirler, yeni programlama teknolojilerinin gelişmesi ve von Neumann'dan farklı mimariye sahip bilgisayarlara geçişle ilişkilidir. Dolayısıyla bu tür sistemlere temel olarak beynin en genel prensiplerini modelleyen yapay sinir ağlarına dayalı çeşitli yaklaşımlar önerilmektedir. Bu tür modeller, algoritmaların kolay paralelleştirilmesi ve buna bağlı yüksek performansın yanı sıra çevre hakkında eksik bilgilerle bile çalışabilme yeteneği ile karakterize edilir. Üçüncü bakış açısı, yapay zeka alanında yapılan araştırmalar sonucunda, daha önce oluşturulmuş sistemlerin uygun olmadığı sorunları çözebilen birçok uygulama sisteminin ortaya çıktığı gerçeğine dayanmaktadır.

Yukarıdakileri özetleyerek yapay zekayı, görevleri bilgisayar yazılımı ve donanımını kullanarak insan zekasının bireysel işlevlerini modellemek için yöntemlerin geliştirilmesiyle ilgili olan bilimsel bir yön olarak tanımlayacağız.

Tarihsel olarak yapay zeka alanında araştırma yürütmeye yönelik üç ana yaklaşım olmuştur.

İlk yaklaşım (makine zekası), yapay zekayı araştırmanın nesnesi olarak kabul eder ve bilgisayarları kullanarak insanın entelektüel faaliyetinin dışsal tezahürlerini modellemeyi içerir. Turing makinesinin beynin teorik bir modeli olduğu tezine dayanmaktadır, bu nedenle işin ana yönü, entelektüel sorunların bir insandan daha kötü bir şekilde çözülmesine izin vermeyen algoritmik ve bilgisayar yazılımının oluşturulmasıyla ilgilidir. Bir örnek, zekanın tezahürü insana yakın oyun taktikleri aramayı içeren bir satranç programıdır. Ancak bu, yalnızca yüksek hızlı hesaplamalarla elde edilirken, insanlarda yüksek verimli düşünme yoluyla elde edilir.

Bildiğiniz gibi insan beyni sürekli bilgiyle çalışır ve her düşünce yalnızca kendi bağlamı içinde var olur. Bilgi, genellikle kelimelerle ifade edilmesi zor olan görüntüler biçiminde depolanır. Aynı zamanda, görüntülerin kendisi de belirsizlik ve bulanıklık ile karakterize edilirken, bilgi işleme, düşük derinlik ve yüksek paralellik ile karakterize edilir. Bütün bunlar Turing makinesinin ilkeleriyle önemli bir farklılığa işaret ediyor ve sonuç olarak entelektüel süreçleri modellemek için bilgisayar dışı farklı bir yaklaşım gerektiriyor.

İkinci yaklaşım (yapay zeka), entelektüel aktivitenin ve akıllı insan davranışının nörofizyolojik ve psikolojik mekanizmaları hakkındaki verileri dikkate alır.

Yapay zeka nasıl yaratılır? (Neredeyse) kapsamlı bir rehber

Yazılım ve donanım kullanarak bu mekanizmaları yeniden üretmeye çalışıyor. Bu alanın gelişimi başta sinir bilimleri (nörobiyoloji, genetik vb.) olmak üzere insan bilimlerinin başarısıyla yakından ilgilidir.

Üçüncü yaklaşım, doğal ve yapay zekanın yeteneklerinin bir simbiyozu olarak karma insan-makine akıllı sistemlerinin oluşturulmasına odaklanmaktadır. Bu çalışmalarda en önemli problemler doğal ve yapay zeka arasındaki fonksiyonların optimal dağılımı ve insan ile makine arasındaki diyaloğun düzenlenmesidir.

Belirtilen alanların her biri bir dizi bölüm içerir; bunların başlıcaları bilgi tabanlı sistemlerin geliştirilmesi, doğal dilin analizi ve bilgisayarlarla iletişim, görüntü tanıma, konuşma analizi, uyarlanabilir sistemlerin oluşturulması, oyunlar ve makine yaratıcılığı vb.'dir. . . Buna karşılık, bu tür sistemlerin uygulanması, bilgi temsili ve işleme, sezgisel programlama, yapay sinir ağları, evrimsel algoritmalar, bulanık kümeler vb. gibi yapay zeka teknolojileri temelinde gerçekleştirilebilir.

Bugüne kadar belirli yapay zeka teknolojilerini uygulayan çok çeşitli yazılım sistemleri geliştirildi. Bu tür sistemlere genellikle akıllı sistemler denir. Bu sistemlerden ilki, önermeler hesabı teoremlerini kanıtlamak için tasarlanmış “Mantık-Teorist” programını (A. Newell, A. Turing, vb.) içerir.

Akıllı sistem ile, çevrede gelişmekte olan özel duruma göre kendilerine verilen görevleri çözmek için hedeflenen faaliyetlerden oluşan programlar oluşturmaya olanak tanıyan uyarlanabilir bir sistemi kastediyoruz. Buna karşılık, uyarlanabilir bir sistem, kontrol edilen nesnenin, kontrol hedeflerinin veya ortamın özelliklerinde öngörülemeyen değişiklikler olması durumunda, bazı durumlarda işleyen algoritmayı, davranış programını değiştirerek veya en uygun olanı arayarak çalışır durumda kalan bir sistem olarak karakterize edilebilir. Basitçe etkili çözümler ve durumlar. Geleneksel olarak, adaptasyon yöntemine dayalı olarak, kendi kendini ayarlayan, kendi kendine öğrenen ve kendi kendini organize eden sistemler ayırt edilir. Akıllı sistemler tarafından çözülen görevlerin kapsamı, kural olarak aşağıdaki özelliklere sahip olan görevleri içerir:

    — çözüm algoritması bilinmiyor veya uygulanamıyor;
    — algoritmik bir çözüm varsa ancak sınırlı kaynaklar (zaman, bellek) nedeniyle kullanılamıyorsa;
    - görev sayısal biçimde formüle edilemez;
    - Hedef kesin olarak tanımlanmış bir amaç fonksiyonuyla ifade edilemiyorsa.

Akıllı sistemlerin geliştirilmesi, kural olarak, şu anda çok çeşitli olan bir veya daha fazla yapay zeka alanı çerçevesinde gerçekleştirilir. Başlıcaları aşağıda kısaca tartışılmaktadır.

1.2. Yapay zeka alanındaki araştırmanın ana yönleri

Bilgiye dayalı sistemlerin geliştirilmesi. Yapay zekanın ana yönlerinden biridir. Bu tür sistemleri oluşturmanın temel amacı, çeşitli pratik sorunları çözmek için uzmanların bilgilerini belirlemek, incelemek ve uygulamaktır. Genellikle bu tür bilgiler bazı kurallar sistemi biçiminde resmileştirilir. Bu araştırma alanında, bilgi tabanı biçiminde bilgisayarlaştırılması dikkate alınarak bilginin çıkarılması, temsili ve yapılandırılmasına yönelik modeller geliştirilmektedir. Bu tür sistemlerin pratik geliştirme örnekleri genellikle uzman sistemlerle ilişkilendirilir.

Doğal dil iletişimi ve makine çeviri sistemlerinin geliştirilmesi. Bilgisayarla yeni bir niteliksel etkileşim düzeyine geçmek açısından en önemlisidir. Bu tür sistemler yaratma girişimleri 20. yüzyılın 1950'lerinden beri yapılmaktadır. Makine çevirisi sistemlerinin temeli, dilbilgisi kurallarının sınıflandırılması ve sözlük kullanımına ilişkin tekniklerdir. Bununla birlikte, karmaşık konuşulan metni işlemek için, anlamını analiz etmeye yönelik algoritmalar gereklidir; bunun oluşturulması çok emek yoğun ve henüz çözülmemiş bir görevdir. Bu nedenle, bir kişi ile bir bilgisayar arasında basitleştirilmiş, sadeleştirilmiş bir doğal dilde diyalog sağlayan sistemler, öncelikle tek heceli metinle çalışırken etkili olan elektronik çeviri programları ve elektronik sözlüklerde ilişkisel bağlamsal arama işlevleri sağlayan sistemler mevcuttur.

Öğrenme, kendi kendini organize etme ve evrim ilkelerine dayalı akıllı sistemlerin geliştirilmesi. Bu ilkelerin modellenmesi, biyolojik sistemlerin en karakteristik işleyiş yasalarını kullanarak sorunları çözme olanaklarını keşfetmeye odaklanmıştır. Öğrenme süreci, sistemin bilgi biriktirme ve davranışlarını buna göre rasyonel olarak ayarlama yeteneği ile ilişkilidir. Kendi kendini organize etme, bir sistemin birikmiş bilgileri genelleştirme, örneğin içindeki kalıpları arama yeteneğini ifade eder. Evrim ilkelerini kullanmak, sistemin en iyi şekilde çalışması için yeni nitelikler ve özellikler kazanmasına olanak tanır.

Desen tanıma. Yapay zekanın ilk alanlarından biridir. Dış dünyanın algılanması ve nesne tanıma özelliklerinin modellenmesiyle ilişkilidir. Bu, tüm nesnelerin belirli özelliklere göre sınıflandırılabileceği ve dolayısıyla bunların tezahürlerini ayırt etme yeteneğinin, kişinin karşılık gelen nesneyi tanımlamasına olanak sağladığı gerçeğine dayanmaktadır.

Oyunlar ve makine yaratıcılığı. Makine yaratıcılığı, bilgisayar müziğinin, şiirin kompozisyonunu ve yeni nesnelerin icat edilmesinin otomasyonunu kapsar. Bilgisayar oyunları çoğu kullanıcının en aşina olduğu yapay zeka alanıdır. Bir oyundaki yapay zeka uygulama düzeyi, oyunun ilgi çekiciliğini büyük ölçüde belirler, bu nedenle bilgisayar oyunu geliştiricileri, entelektüel bileşenlerini sürekli olarak geliştiriyorlar.

Yapay zeka sistemleri için yazılım.

Akıllı sistemlerin geliştirilmesine yönelik araçlar arasında özel programlama dilleri, bilgi temsili, yapay zeka sistemleri oluşturmaya yönelik ortamların yanı sıra uzman sistem kabukları da yer alır.

Akıllı robotlar. Yaratılışları yapay zeka teknolojileri ile sibernetik ve robotik yöntemlerinin birleşimiyle ilişkilidir. Şu anda üretimleri, katı bir kontrol devresine sahip manipülatörlerin yanı sıra, dar kapsamlı ve sınırlı işlevlere sahip eğlence ve ev amaçlı robotlarla sınırlıdır. Daha gelişmiş sibernetik sistemlerin geliştirilmesinde sınırlayıcı bir faktör, bilgisayarlı görme, uyarlanabilir davranış, üç boyutlu görsel bilgilerin birikmesi ve işlenmesi alanındaki çözülmemiş problemlerdir.

Rusya'da yapay zekaya ilişkin teorik araştırma düzeyi dünyadan daha düşük değil. Ülkemizde bu bilimsel yönün oluşumunun başlangıcı, Akademisyen A.A. Lyapunov'un önderliğinde Moskova Devlet Üniversitesi'nde “Otomata ve Düşünme” seminerinin çalışmaya başladığı 1954 yılı olarak düşünülmelidir. Daha sonra bilginin temsili ve işlenmesi, durumsal yönetim, akıl yürütme modellemesi, örüntü tanıma ve doğal dil işleme ile ilgili alanlar aktif olarak gelişmeye başladı.

Modern Rusya'da yapay zekanın gelişimi, 1988 yılında yapay zekanın çeşitli alanlarındaki bilimsel okulları ve araştırmacıları birleştiren Yapay Zeka Derneği'nin oluşumuyla ilişkilidir. Onun himayesinde çeşitli çalışmalar yapılmakta, uzmanlara yönelik seminerler düzenlenmekte, konferanslar düzenlenmekte, bilimsel bir dergi yayınlanmaktadır.

Aynı zamanda uygulamalı araştırmaların yapılması ve sonuçlarının ticari gelişmelere uygulanması yurt dışına göre çok daha yavaş gerçekleşmektedir. Bu büyük ölçüde yeni bilgi teknolojilerinin potansiyel tüketicilerinin muhafazakarlığından ve yapay zekanın yeteneklerine karşı temkinli tutumdan kaynaklanmaktadır.

MIPT Sinir Sistemleri ve Derin Öğrenme Laboratuvarı başkanı Mikhail Burtsev, insan zihninin tam teşekküllü bir bilgisayar analoğunu yaratmanın mümkün olup olmadığından bahsediyor ve bilim adamlarının bunu neden geliştirdiğini ve trollerden nasıl korunabileceğini açıklıyor. saldırılar.

Temmuz ayının sonunda MIPT'den bilim insanları, yaşayan bir insanı taklit edebilen "konuşmalı" yapay zeka sistemleri için uluslararası bir yarışma başlattı ve herkesi onlarla iletişim kurmaya ve ortaya çıkan diyalogları değerlendirmeye davet etti.

Bilim insanları, gönüllülerin yardımıyla önümüzdeki üç yıl içinde insanlarla neredeyse canlı bir muhatap kadar iyi iletişim kurabilen bir ses asistanı yaratmayı umuyor.

Yarışma Montreal, McGill ve Carnegie Mellon üniversitelerinden bilim insanları tarafından ortaklaşa düzenlendi. Bu bağlantıyı kullanarak diyalog sistemlerinin test edilmesine katılabilirsiniz.

Aslında bu fikirler bugün icat edilmedi - Google, Apple, Amazon ve diğer BT şirketlerinin modern sesli asistanlarının kökleri derin geçmişe, bilgisayar çağının başlangıcına dayanıyor. ELIZA adı verilen bu tür ilk konuşan makine 1966'da yaratıldı ve aslında bir şakaydı, bir psikoterapistin hastaya gereksiz tavsiyeler vermesinin bir parodisiydi.

Sonraki yıllarda ve onyıllarda programcılar bilgisayarla iletişim kurmak için giderek daha karmaşık ve "canlı" sistemler yarattılar.

Bu sistemlerin en gelişmişleri, sahibinin ruh halini tanıyabilir, eski arzularını ve tercihlerini hatırlayabilir ve bir mağazada yiyecek veya ürün siparişi vermek veya çağrı merkezlerinde operatör rolü oynamak gibi bazı rutin ve ev işlerini onun yerine çözebilir.

- Mikhail, ELIZA'nın yaratılışından bu yana neredeyse 50 yıl geçti. Bu süre zarfında genel olarak neler değişti ve prensip olarak gelecekte bilim adamlarının insanların yaşayan bir muhataptan ayırt edemeyecekleri bir sistem yaratabilmelerini bekleyebilir miyiz?

Yakın gelecekte bir makinenin insan diyalogu seviyesine yaklaşmasını sağlayacak konuşma zekası teknolojisi yaratmanın mümkün olacağını düşünüyorum. Ulusal Teknoloji Girişiminin bir parçası olan iPavlov projesi çerçevesinde bu görev üzerinde çalışıyoruz.

Kullanıcı, otomatik diyalog sistemiyle gerçek bir kişiyle iletişim kurduğu kadar rahat iletişim kurabilmelidir. Bu, bir kişinin kendisinden ne istediğini daha iyi anlayabilecek ve ona doğal dilde yanıt verebilecek bilgi sistemleri oluşturmayı mümkün kılacaktır.

Konuşma zekası, Telegram gibi anlık mesajlaşma programları da dahil olmak üzere birçok ses ve metin arayüzünü otomatikleştirmek için kullanılabilir. İstatistiklerin gösterdiği gibi, mesajlaşma programları günümüzde sosyal ağlara göre daha aktif olarak kullanılmakta ve çok büyük miktarda bilgi metin iletişim kanallarından geçmektedir.

Örneğin, taşıma sırasında kullanımları uygundur ve bir diyalog asistanının - bir sohbet botunun - eklenmesi, kullanıcıların yalnızca birbirleriyle iletişim kurmasına değil, aynı zamanda gerekli bilgileri edinmesine, satın alma işlemi yapmasına ve daha birçok şey yapmasına da olanak tanıyacaktır.

- Bu pazarda Apple, Google ve Amazon'un varlığı dikkate alındığında Rusya burada rekabet edebilir mi? Rus dilinin, Rus şirketlerinin ve bilim adamlarının potansiyel rakiplerini engelleyebilecek belirli özellikleri var mı?

Elbette Rus dili daha karmaşıktır ve dünyada diyalog sistemlerinin ve sesli asistanların geliştirilmesinde bugün kullanılan yöntemlerden bazıları, daha zengin bir dilbilgisi ile çalışmalarına olanak sağlayacak iyileştirmeler ve önemli değişiklikler yapılmadan kullanılamaz.

Öte yandan, Siri, Cortana, Google ve diğer dijital asistanların çalışmalarında kullanılan temel algoritmaları kimse gizlemiyor - bunlar bizim için en azından araştırma ve kavram düzeyinde mevcuttur.

Araştırma makaleleri ve program kodları genellikle kamuya açıktır; prensip olarak Rus diline uyarlanabilir.

Fotoğrafta: Fotoğrafta: MIPT'de sinir sistemleri ve derin öğrenme laboratuvarı başkanı Mikhail Burtsev

Fotoğraf: Mikhail Burtsev'in kişisel arşivinden

Üstelik bunu “endüstriyel” düzeyde uygulamaya yönelik pek fazla girişim de yok. Tek büyük proje, Alice projesi kapsamında asistan geliştiren Yandex tarafından yürütülüyor.

Projemizde çeşitli amaçlara yönelik bu tür "endüstriyel" diyalog sistemlerinin oluşturulmasını basitleştirecek ve hızlandıracak araçlar yaratmaya çalışıyoruz. Ancak herhangi bir sorunu çözebilecek evrensel bir sesli asistan geliştirmek, büyük şirketler için bile son derece zor bir iştir.

Öte yandan, özel bir diyalog sistemi kullanacak küçük bir işletmenin otomasyonunun uygulanması çok daha kolaydır. Yaratacağımız araçların girişimcilerin ve programcıların bu tür sorunları derin bir bilgiye sahip olmadan ve ekstra çaba harcamadan yeterince hızlı çözmelerine yardımcı olacağını umuyoruz.

- Roger Penrose veya Stuart Hameroff gibi pek çok bilim insanı, insan zihninin kuantum doğasına sahip olduğuna ve prensipte onun makine benzerini oluşturmanın imkansız olduğuna inanıyor. Onlara katılıyor musun, katılmıyor musun?

Bana göre, beynin yapısı ve insan bilincinin doğası hakkında bugün bildiklerimize bakarsak, şu ana kadar onun çalışmasını bilgisayar kullanarak yeniden üretmenin önünde herhangi bir temel engelle karşılaşmıyoruz.

Penrose ve Hameroff'un kendilerine göre bunun neden yapılamayacağını açıklayan bir dizi hipotezi var. Şu ana kadar nörofizyologlar bu hipotezlerin doğru olduğuna dair herhangi bir deneysel kanıt bulamadılar ve mevcut bilgi birikimimiz bunun tersini desteklemektedir.

Başka bir şey de böyle bir makinenin ne zaman yaratılacağına ilişkin zaman çerçevesinin tam olarak tanımlanmamış olmasıdır. Bana öyle geliyor ki bu en az 50, hatta 100 yıl içinde gerçekleşebilir.

- Bu, temelde yeni teknolojiler ve çalışma prensipleri açısından dijital mantıktan ziyade nöronlara daha yakın olan bilgisayarlar gerektirecek mi?

İnsan zekasının bir çeşit hesaplamaya dayandığına inanırsak, o zaman Turing makinesine eşdeğer herhangi bir evrensel bilgi işlem sistemi teorik olarak insan beyninin işleyişini taklit edebilir.

Başka bir şey de bu makinenin çok yavaş çalışabilmesidir, bu da onu pratik açıdan işe yaramaz hale getirecektir. Bugün burada bilgisayar oluşturmak için hangi teknolojilere ihtiyacımız olacağını hayal etmek zor.

- Dijital asistanlar bugün yaptıkları işlerin dışında başka hangi görevleri çözebilirler? Ölü dillerdeki metinleri veya Voynich el yazması gibi kodları deşifre etmek için kullanılabilirler mi?

Bugüne kadar bildiğim kadarıyla kimse ölü dillerin sırlarını çözmek ve metinleri deşifre etmek için sinir ağlarını kullanmaya çalışmadı, ancak bana öyle geliyor ki yakın gelecekte birisi bunu yapmaya çalışacak. Biz de henüz bu tür şeylerle ilgilenmedik.

"Yardımcı" aslında pek çok farklı şeyi içerebilecek çok geniş bir kavramdır. Örneğin aynı ELIZA'yı, sanal bir "psikoterapist"i ele alırsak şu soru ortaya çıkıyor: Asistan mı değil mi?

Konuşma sistemleri yalnızca pratik sorunları çözmek için değil, aynı zamanda insanları eğlendirmek veya morallerini korumak için de kullanılabilir.

Burada soru aslında kişisel asistan kavramından ne anladığımız ve bu kavramın ne kadar geniş veya dar olduğudur. Daha geniş anlamda ele alırsak, iletişimle ilgili tüm sorunlar, değişen derecelerde başarı ile de olsa, bu tür sistemler tarafından çözülebilir.

Konuşma arayüzleri, insanlarla doğrudan iletişimin yanı sıra, makinelere hızlı bir şekilde ortak bir dil bulmayı ve bilgileri bir sistemden diğerine aktarmayı öğretmek için de kullanılabilir.

Bu, birbirleriyle iletişim kurmak için birbirlerinin API özelliklerini bilmelerine gerek kalmayacağından, mevcut ve oluşturulan hizmetler arasında bağlantı kurma ve veri aktarma sorununu ortadan kaldıracaktır. Doğal dilleri veya bu amaçlar için makineler veya insanlar tarafından icat edilecek kendi yapay dillerini kullanarak iletişim kurabilecekler.

Kabaca söylemek gerekirse, birbirine “yabancı” olan sistemler bile bilgi alışverişinde sabit kurallar yerine ortak bir iletişim dili kullanarak anlaşmaya varabilecektir.

Bir şey onlar için net değilse, o zaman birbirlerine bilmedikleri şeyleri sorabilirler; bu, İnternet'te hizmet sağlamak için tüm altyapıyı inanılmaz derecede esnek hale getirecek ve yeni hizmetleri insanların yardımı olmadan hızlı bir şekilde entegre etmesine olanak tanıyacaktır.

- Bu bağlamda şu soru ortaya çıkıyor: tavsiyeleri bir kişinin refahını ve sağlığını büyük ölçüde etkileyebilecek "psikoterapist" ELIZA'nın, bilgisayar doktorlarının ve diğer sesli asistanların tavsiyelerinden kim sorumlu olmalıdır?

Bu çok zor bir soru, çünkü bugün bu gibi durumlarda nasıl davranacağımızı anlamamıza yardımcı olacak net bir kriter yok. Kullanıcılara öneriler sunan birçok İnternet hizmeti ve hizmeti, ancak kullanıcı hizmetin şartlarını ve onunla çalışmanın bir sonucu olarak ortaya çıkabilecek sonuçları kabul ettikten sonra çalışmaya başlar.

Yapay zeka nasıl yaratılır?

Örneğin, bir bot yalnızca bilgiyi arıyor ve analiz ediyorsa ve bir arama motoruyla hemen hemen aynı şekilde hareket ediyorsa, o zaman aynı kurallar ona da uygulanabilir. Tıbbi veya hukuki tavsiyede bulunacak olması durumunda sorumluluk şekli farklı olmalıdır.

Örneğin, bu tür sistemlerin kullanıcıyı yapay zeka ile normal bir doktor arasında seçim yapmanın sonuçları konusunda açıkça bilgilendirmesi gerekiyor. Kişinin bir seçeneği olacaktır: örneğin, vakaların %10'unda yanılacak bir doktora güvenmek veya vakaların %3'ünde yanlış cevap veren bir makineye bahis oynamak. İlk durumda hatadan doktor sorumlu olacak, ikinci durumda ise kullanıcının kendisi sorumlu olacaktır.

- Geçen yıl Microsoft, sohbet robotu Tay'ı piyasaya sürdü. Ağ kullanıcılarının "genç bir kızı" gerçek bir ırkçıya dönüştürmesi nedeniyle bir gün sonra kelimenin tam anlamıyla kapatmak zorunda kaldığı yapay zeka. Bu tür diyalog sistemlerini trollerden ve şakacılardan korumak mümkün mü?

Bana öyle geliyor ki kendinizi korumak mümkün ama yapmaya değer olup olmadığı sistemin amacına bağlı. Sistemin kaba veya aşırılık içeren herhangi bir spesifik açıklama yapmaması gerekiyorsa, yanıtlarını filtreleyebileceğimiz açıktır. Bu filtreleme, sistemin eğitilmesi aşamasında veya yanıtların oluşturulması sırasında gerçekleşebilir.

Bu arada, diyalog kalitesini değerlendirmeye yönelik benzer bir sorun, birkaç hafta önce Fizik ve Teknoloji Enstitüsü'nde gerçekleştirilen DeepHack Turing bilimsel hackathon okulundaki ekipler tarafından çözüldü. Katılımcıları, diyalog satırlarına dayanarak bir kişinin diyalog sistemine nasıl bir puan vereceğini tahmin edebilen algoritmalar geliştirdi.

Bu yaklaşımı geliştirmenin bir sonraki adımı, ifadelerin kabul edilebilirliğini veya kullanıcı sorgularına yanıt üretirken kullanılan kaynakların güvenilirliğini değerlendirecek bir program oluşturmaktır. Bana öyle geliyor ki bu, bu sorunun çözülmesine yardımcı olacaktır.