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ın bazı sonuçlarının görülebilmesi için görevlerin birçok izole alt göreve bölünmesinin gerekli olduğu 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ün mümkün olduğu kadar basit olduğu görüldü. 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 hafta, mesleği okuyan bir GeekBrains öğrencisinden, mesleğe yön veren hedeflerinden biri olan çalışma prensibini öğrenme ve oyun botlarını kendi başınıza nasıl oluşturacağınızı öğrenme arzusundan bahsettiği son derece motive edici bir vakayı okuyabilirsiniz.

Ama aslında çoğumuzu programcının yoluna iten şey, ister oyun modeli ister mobil program olsun, mükemmel yapay zeka yaratma arzusuydu. Sorun şu ki, tonlarca eğitim materyalinin ve müşterilerin sert gerçekliğinin ardında, bu arzunun yerini basit bir kişisel gelişim arzusu almıştır. Henüz çocukluk hayalini gerçekleştirmeye başlamamış olanlar için işte gerçek yapay zeka yaratmaya yönelik kısa bir rehber.

Aşama 1. Hayal kırıklığı

Basit botlar bile yaratmaktan bahsettiğimizde gözlerimiz parlıyor ve neler yapabileceğine dair yüzlerce fikir aklımızdan geçiyor. Ancak iş uygulamaya gelince, gerçek davranış kalıbını çözmenin anahtarının matematik olduğu ortaya çıkıyor. Evet evet yapay zeka, uygulama programları yazmaktan çok daha karmaşıktır; yazılım tasarımına ilişkin bilgi tek başına sizin için yeterli olmayacaktır.

Matematik, ilerideki programlamanızın üzerine inşa edileceği bilimsel sıçrama tahtasıdır. Bu teori hakkında bilgi ve anlayış olmadan, bir kişiyle etkileşim nedeniyle tüm fikirler hızla çökecektir çünkü yapay zeka aslında bir dizi formülden başka bir şey değildir.

Aşama 2. Kabul

Öğrenci edebiyatı kibrinizi biraz olsun yıktığında pratik yapmaya başlayabilirsiniz. Henüz LISP'e veya diğerlerine acele etmeye değmez; öncelikle yapay zeka tasarımının ilkelerine alışmalısınız. Python hem hızlı öğrenme hem de daha fazla gelişme için mükemmeldir; çoğunlukla bilimsel amaçlar için kullanılan bir dildir ve bu dil için işinizi kolaylaştıracak birçok kütüphane bulacaksınız.

Aşama 3. Geliştirme

Şimdi doğrudan yapay zeka teorisine geçelim. Kabaca 3 kategoriye ayrılabilirler:

  • Zayıf AI – bilgisayar oyunlarında gördüğümüz botlar veya Siri gibi basit asistanlar. Ya son derece uzmanlaşmış görevler yerine getirirler ya da bunların önemsiz bir kompleksidirler ve etkileşimin öngörülemezliği onları şaşırtır.
  • Güçlü yapay zeka, zekası insan beyniyle karşılaştırılabilecek makinelerdir. Şu anda bu sınıfın gerçek bir temsilcisi yok ancak Watson gibi bilgisayarlar bu hedefe ulaşmaya çok yakın.
  • Mükemmel yapay zeka, yeteneklerimizi aşacak bir makine beyni olan gelecektir. Stephen Hawking, Elon Musk ve Terminatör film serisi bu tür gelişmelerin tehlikeleri hakkında uyarıyor.

Doğal olarak en basit botlarla başlamalısınız. Bunu yapmak için, 3x3'lük bir alan kullanırken eski güzel oyun "Tic Tac Toe" yu hatırlayın ve temel eylem algoritmalarını kendiniz bulmaya çalışın: hatasız eylemlerle zafer olasılığı, sahadaki en başarılı yerler bir taş yerleştirme, oyunu berabere bırakma ihtiyacı vb.

Birkaç düzine oyun ve kendi eylemlerinizi analiz ederek, muhtemelen tüm önemli hususları tanımlayabilecek ve bunları makine koduna yeniden yazabileceksiniz. Değilse, düşünmeye devam edin; her ihtimale karşı bu bağlantı burada olacaktır.

Bu arada, eğer Python dilini nihayet öğrendiyseniz, bu ayrıntılı kılavuza başvurarak oldukça basit bir bot oluşturabilirsiniz. C++ veya Java gibi diğer diller için adım adım materyal bulma konusunda herhangi bir sorun yaşamayacaksınız. Yapay zekanın yaratılmasının arkasında doğaüstü hiçbir şeyin olmadığını hissettiğinizde, tarayıcınızı güvenle kapatabilir ve kişisel deneylere başlayabilirsiniz.

4. Aşama. Heyecan

Artık işler yoluna girdiğine göre muhtemelen daha ciddi bir şey yaratmak istersiniz. Aşağıdaki kaynaklar bu konuda size yardımcı olacaktır:

İsimlerinden bile anladığınız gibi bunlar, zaman kaybetmeden ciddi bir yapay zeka görünümü oluşturmanıza olanak sağlayacak API'lerdir.

Aşama 5. Çalışma

Artık yapay zekanın nasıl oluşturulacağı ve ne kullanılacağı konusunda net bir fikriniz olduğuna göre bilginizi bir sonraki seviyeye taşımanın zamanı geldi. Öncelikle bu, “Makine öğrenimi” adı verilen bir disiplin üzerinde çalışmayı gerektirecektir. İkinci olarak, seçilen programlama dilinin uygun kütüphaneleriyle nasıl çalışılacağını öğrenmeniz gerekir. İncelediğimiz Python için bunlar Scikit-learn, NLTK, SciPy, PyBrain ve Numpy'dir. Üçüncüsü, geliştirmede bundan kaçış yoktur. En önemlisi, artık yapay zeka hakkındaki literatürü konuyu tam olarak anlayarak okuyabilirsiniz:

  • Oyunlar için Yapay Zeka, Ian Millington;
  • Oyun Programlama Kalıpları, Robert Naystorm;
  • Prolog, Lisp ve Java'da Yapay Zeka Algoritmaları, Veri Yapıları ve Deyimler, George Luger, William Stubfield;
  • Hesaplamalı Bilişsel Sinirbilim, Randall O'Reilly, Yuko Munakata;
  • Yapay Zeka: Modern Bir Yaklaşım, Stuart Russell, Peter Norvig.

Ve evet, bu konuyla ilgili literatürün tamamı veya neredeyse tamamı yabancı dilde sunulmaktadır, bu nedenle profesyonel olarak yapay zeka oluşturmak istiyorsanız İngilizcenizi teknik düzeye geliştirmeniz gerekir. Ancak bu programlamanın her alanı için geçerlidir, değil mi?

Onu mesleğe yönlendiren hedeflerinden biri hakkında konuştuğu yerde - çalışma prensibini öğrenme ve kendi başına oyun botları oluşturmayı öğrenme arzusu.

Ama aslında çoğumuzu programcının yoluna iten şey, ister oyun modeli ister mobil program olsun, mükemmel yapay zeka yaratma arzusuydu. Sorun şu ki, tonlarca eğitim materyalinin ve müşterilerin sert gerçekliğinin ardında, bu arzunun yerini basit bir kişisel gelişim arzusu almıştır. Henüz çocukluk hayalini gerçekleştirmeye başlamamış olanlar için işte gerçek yapay zeka yaratmaya yönelik kısa bir rehber.

Aşama 1. Hayal kırıklığı

Basit botlar bile yaratmaktan bahsettiğimizde gözlerimiz parlıyor ve neler yapabileceğine dair yüzlerce fikir aklımızdan geçiyor. Ancak konu uygulamaya geldiğinde, gerçek davranış modelini çözmenin anahtarının matematik olduğu ortaya çıkıyor. Biraz daha spesifik olmak gerekirse, en azından üniversite eğitimi formatında incelenmesi gereken bölümlerin bir listesi:

    Lineer Cebir;

  • Grafik teorisi;

    Olasılık Teorisi ve Matematiksel İstatistik.

Bu, ilerideki programlamanızın üzerine inşa edileceği bilimsel sıçrama tahtasıdır. Bu teori hakkında bilgi ve anlayış olmadan, bir kişiyle etkileşim nedeniyle tüm fikirler hızla çökecektir çünkü yapay zeka aslında bir dizi formülden başka bir şey değildir.

Aşama 2. Kabul

Öğrenci edebiyatı kibrinizi biraz olsun yıktığında dil öğrenmeye başlayabilirsiniz. Henüz LISP'ye veya diğerlerine acele etmeye değmez; öncelikle değişkenler ve tek değerli durumlarla nasıl çalışılacağını öğrenmeniz gerekir. Hem hızlı öğrenme hem de daha fazla gelişme için mükemmeldir, ancak genel olarak uygun kütüphanelere sahip herhangi bir dili temel alabilirsiniz.

Aşama 3. Geliştirme

Şimdi doğrudan yapay zeka teorisine geçelim. Kabaca 3 kategoriye ayrılabilirler:

    Zayıf AI – bilgisayar oyunlarında gördüğümüz botlar veya Siri gibi basit asistanlar. Ya son derece uzmanlaşmış görevler yerine getirirler ya da bunların önemsiz bir kompleksidirler ve etkileşimin öngörülemezliği onları şaşırtır.

    Güçlü yapay zeka, zekası insan beyniyle karşılaştırılabilecek makinelerdir. Şu anda bu sınıfın gerçek bir temsilcisi yok ancak Watson gibi bilgisayarlar bu hedefe ulaşmaya çok yakın.

    Mükemmel yapay zeka, yeteneklerimizi aşacak bir makine beyni olan gelecektir. Stephen Hawking, Elon Musk ve Terminatör film serisi bu tür gelişmelerin tehlikeleri hakkında uyarıyor.

Doğal olarak en basit botlarla başlamalısınız. Bunu yapmak için, 3x3'lük bir alan kullanırken eski güzel oyun "Tic Tac Toe" yu hatırlayın ve temel eylem algoritmalarını kendiniz bulmaya çalışın: hatasız eylemlerle zafer olasılığı, sahadaki en başarılı yerler bir taş yerleştirme, oyunu berabere bırakma ihtiyacı vb.

İsimlerinden bile anladığınız gibi bunlar, zaman kaybetmeden ciddi bir yapay zeka görünümü oluşturmanıza olanak sağlayacak API'lerdir.

Aşama 5. Çalışma

Artık yapay zekanın nasıl oluşturulacağı ve ne kullanılacağı konusunda net bir fikriniz olduğuna göre bilginizi bir sonraki seviyeye taşımanın zamanı geldi. Öncelikle bu, “Makine Öğrenimi” adı verilen bir disiplinin incelenmesini gerektirecektir. İkinci olarak, seçilen programlama dilinin uygun kütüphaneleriyle nasıl çalışılacağını öğrenmeniz gerekir. İncelediğimiz Python için bunlar Scikit-learn, NLTK, SciPy, PyBrain ve Nump'tır. Üçüncüsü, geliştirmede başka yol yoktur

İnsan veya hayvan beynini yeniden üreten makineler kendi kendine öğrenebilecek


Son zamanlarda, yeni bir araştırma yönü bilim adamlarının artan ilgisini çekmektedir: duygusal hesaplama. Doğal zekanın evriminde duyguların rolü büyüktür, yapay zeka bu konuda hala çok şey kaçırıyor, duygusal resimle, bir kişinin duygusal durumuyla ilişkili birçok olguyu içinde somutlaştırmak imkansız. Yapay zeka bilim adamlarına bilişsel sinirbilimciler, psikologlar ve filozoflar aktif olarak destek veriyor. Sinir bilimciler, insan duyguları ve karar verme süreçlerinde aktif rol alan nöromodülatörler arasındaki bağlantıyı göstermeyi başardılar. Bir kişinin hızlı karar verme yeteneğinin, beynimizdeki bilgilerin duygusal olarak "renkli" olmasından kaynaklandığı, genellikle şu veya bu duygusal dürtünün etkisi altında kararlar verdiğimiz ortaya çıktı. Ancak modern bilgisayar sistemlerinde durum hiç de böyle değil.

Yapay zekaya duygusal mekanizmaları dahil etmediğimiz için hızlı karar verme yeteneğini kaçırıyoruz. Sonuç olarak robotik veya yapay zeka sistemlerinin gerçek dünya koşullarında yaşaması mümkün değildir. Aynı zamanda, teknolojide belirli duygusal mekanizmaları kısmen somutlaştırıyoruz, ancak bunları farklı şekilde adlandırıyoruz, örneğin dikkati değiştirmek - bilgi işlem kaynaklarının önceliklendirilmesi ve yeniden dağıtılması.

Sadece sokağa çıkarken çok sayıda karar veriyoruz: başımızı yüksek ses yönüne çevirmek ya da dönmemek; Orada arabalar geçiyorsa caddeyi geçmeli misiniz yoksa geçmemeli misiniz? Bu kararlar bilinçli ve bilinçsiz olarak alınır, süreçler duygusal olarak yüklenir ve birçok beyin yapısını içerir. Sonuç olarak, duygular (nöromodülatörler) düşünce sürecini, diğer bir deyişle nöronların hesaplama işlevlerini güçlü bir şekilde etkiler.

Beynin sözde devreler içerdiği fark edildi. Örneğin, temel talamo-kortikal devre şuna benzer: Serebral korteks subkortikal yapıları etkiler: talamus, striatum vb. olumlu veya olumsuz duygusal geri bildirime neden olur ve bu da korteksi etkiler. Başka bir deyişle, bilinçli süreçler bilinçsiz duygusal süreçleri etkiler ve duygusal süreçler bilinçli olanları etkiler; sürekli bir duygusal döngü içindeyiz.

Marvin Minsky (bir yapay zeka öncüsü ve Turing Ödülü sahibi), duygusal döngülerin uzun vadeli "sıkışmışlığa" yol açabileceğini belirtti. Onlara "hata", yani bir hata diyor: Belirli aralıklarla şu veya bu duygusal durumu yeniden üretebiliriz. Örneğin depresyonda olduğumuzda: Kendimize defalarca şu soruyu sorarız: “Neden bana bu kadar kötü davrandı? Bu tamamen haksızlık." Veya tam tersine, coşkulu bir durumu yeniden üretiyoruz: Eğer bir motosiklete bindiyseniz, o zaman sırf hoşunuza gittiği için motosiklete binmenin sizin için ne kadar "havalı" olduğunu her zaman hatırlarsınız. Ve gerçekte artık motosiklet kullanmıyorsunuz, sadece onu hatırlıyorsunuz ve bu döngünün içinde oluyorsunuz.

Duyguları yapay zekaya entegre etmeye yönelik çalışmalarda birbiriyle çok yakından ilişkili iki alanı vurgulamakta fayda var. İlk olarak kişinin duygularının yüzü, jestleri vb. yoluyla belirlenmesi (Duygusal hesaplama). Bu, Amerika Birleşik Devletleri'nde MIT Medya Laboratuvarı'ndan Rosalind Picard'ın önderliğinde çok yoğun bir şekilde gelişen bir alandır. 1997 yılında Picard, araştırmasının başlangıç ​​noktası olan Duygusal Bilgi İşlem adlı kitabını yayınladı. Laboratuvarında ilginç deneyler yürütülüyor: Katılımcılar önlerine kameralar takıyor, belirli aralıklarla yüz ifadelerini filme alıyor ve aynı zamanda zaman içinde duygusal tepkileri ilişkilendiren cilt iletkenliği, nabız, kan basıncı vb. gibi veriler topluyor. vücut sensörlerinden gelen okumalar.

Bizim de dahil olduğumuz bir diğer yön (ITIS KFU makine anlayışı laboratuvarı) Duygusal hesaplamadır, bu, insan duygularının bilgisayar sistemlerinde yeniden üretilmesidir. Makinelerde nöron yok, nöromodülatör yok, biyokimya yok, yalnızca hesaplama süreçleri var. Hesaplamalı ve zihinsel süreçler arasındaki yazışma doğrusal olmaktan uzaktır. Genel olarak belirli psikolojik olayların neden oluştuğunu ve bunu bilgisayar sistemlerinde nasıl yeniden üretebileceğimizi anlamak için oldukça karmaşık teoriler yaratmamız gerekiyor.


İnsan beyni bir ampul gibi yaklaşık 20 watt enerji tüketir. Beynin %1'inin 2013 yılında Japon RIKEN Enstitüsünde gerçekleştirilen son simülasyonu için 250 süper bilgisayar gerekiyordu. Bu oldukça ciddi bir başarıdır. Bununla birlikte, her süper bilgisayarda 80.000 işlemci bulunuyordu ve bu işlemciler 20 watt'tan çok daha fazlasını tüketiyordu. Ve aynı zamanda simülasyon beynin gerçek çalışmasından yaklaşık bin kat daha yavaştır. Şu ana kadar verimlilik açıkça bilgi işlem sistemlerinden yana değil. Bu da yeni bir bilgisayar mimarisine ihtiyacımız olduğunu gösteriyor. BRAIN projesi bunun yaratılmasını hedefliyor: ABD hükümeti, insan beynini mikro devreler ve yazılım biçiminde yeniden üretmek için yılda 300 milyon dolar ayırıyor.

Bugüne kadar, nörobiyolojik açıdan ilham alan von Neumann olmayan mimari TrueNorth yaratıldı (von Neumann - geleneksel bilgisayarların mimarisi). Bilgi işlem sistemlerinin geliştirilmesinde yeni bir yolun temelini atıyor: sinir ağlarını yazılım kullanarak değil, mikro devreler, "donanım" biçiminde yeniden oluşturmak. Yeni çipler bir milyona kadar nöronu simüle ediyor. IBM'den uzmanlar daha da ileri gitti: Halihazırda toplam 16 milyon nörona sahip 4x4'lük bir diziyi bir araya getirdikleri bir anakart yarattılar.

Bir yandan bu çok fazla değil çünkü insanın beyin korteksindeki nöron sayısı 19 milyardan 23 milyara, toplam hacim ise 86 milyara kadar, diğer yandan ilginç bir ölçek. Örneğin, gerekli tüm duygusal bagaja sahip bir memeli olan farenin beyin korteksinde yalnızca 4 milyon nöron vardır.

Tarihsel perspektiften bakmak daha da ilginç: 2011'de aynı IBM'in yalnızca 256 nöron üreten bir çipi vardı. Böylece üç büyüklükte bir sıçrama yaşandı. Eğer bir sonraki sıçrama olursa, o zaman insan beyin korteksinin ölçeğine ulaşabileceğiz. Ve sonra belki de güç açısından insan beyniyle karşılaştırılabilecek kendi kendine öğrenen sistemler ortaya çıkacak.

Kendi kendine öğrenen sistemler neler sağlar? Fareleri, kedi yavrularını programlamıyoruz, çocukları programlamıyoruz. Çünkü bu gerekli değil. Bu tür bilgi işlem sistemleri (yapay etmenler) şimdiki anlamıyla programlama gerektirmeyecektir. Anaokulu ve okul öğretmenlerinin bildiği tamamen farklı teknikleri kullanmaları gerekecek. Böylece, yapay zekanın gelişimi için temelde yeni umutlar açan yapay zeka ajanları için çocukluk kavramına geliyoruz.

Maksim Talanov
Teknik Bilimler Adayı, Kazan Federal Üniversitesi Makine Anlama Laboratuvarı Başkanı, Innopolis Üniversitesi Öğretim Görevlisi
forbes.ru

Yorumlar: 1

    Sam Harris

    Süper zeki yapay zekadan korkmalı mıyız? Sinir bilimci ve filozof Sam Harris buna değdiğini düşünüyor. Ona göre, insanlara karıncalara davrandıkları gibi davranabilecek yapay zekanın yaratılmasında ortaya çıkabilecek birçok sorunu çözmeden, süper akıllı makineler yaratmanın eşiğindeyiz.

    Mihail Burtsev

    Yapay zekayı yaratmak için yarım asırlık çaba neden başarısız oldu? Peki siborglar beynin nasıl çalıştığını anlamamıza nasıl yardımcı oluyor? MIPT'de sinir sistemleri ve derin öğrenme laboratuvarı başkanı, fiziksel ve matematik bilimleri adayı Mikhail Burtsev bundan bahsediyor.

    Vitaly Dunin-Barkovsky

    Bir beyin nasıl simüle edilir? İnsan beyni anlaşılabilir mi? Bilinç nasıl algoritmalaştırılır? Peki bunu inorganik bir ortama kopyalamak mümkün mü? Vitaly Dunin-Barkovsky, Fizik ve Matematik Doktoru, Profesör, Rusya Bilimler Akademisi Araştırma Enstitüsü Optik-Sinir Teknolojileri Merkezi Nöroinformatik Bölüm Başkanı, bu soruların yanıtlarını bulmaya yardımcı oluyor.

    Ivan Ivanchey

    Bilişsel psikoloji, tarihinin en başından beri insanı bir bilgisayar makinesi olarak tanımlamıştır. Ivan, insan araştırmasının bu yolunun gelişimindeki önemli anlardan, bunun bugüne nelere yol açtığından ve bilim adamlarının sezgi, öngörü, içgörü ve güven gibi gizemli ve görünüşte benzersiz insan süreçlerini nasıl modellediğinden bahsedecek.

    Gorban A.N.

    Nörobilgisayar bir oyuncak mı? Nörobilgisayarların gerçek avantajları nelerdir? Sinir sistemlerinin avantajları en çok hangi alanlarda belirgindir? İşten çıkarma iyi mi kötü mü? Yalnızca bir nörobilgisayar hangi görevleri yapabilir?

    Evgeny Putin

    Evgeniy Putin, ITMO Üniversitesi Bilgisayar Teknolojileri Bölümü yüksek lisans öğrencisi. Tezinin bir parçası olarak Evgeniy, özellik seçimi kavramını yapay sinir ağlarının matematiksel aparatına entegre etmenin sorunlarını araştırıyor. Evgeniy, sinir ağlarının nasıl çalıştığını, şu anda neler yapabileceklerini, yakın gelecekte neler yapabileceklerini ve Skynet'in gelişini bekleyip bekleyemeyeceğimizi anlatacak.

    İlk kez insan beynine denk gelen bir ölçeğe ulaşıldı: 530 milyar nöron ve 137 trilyon sinaps. Simülasyon gerçek zamana göre 1542 kat daha yavaş çalıştı. 1.572.864 çekirdeğin tamamını ve bir buçuk petabaytlık belleği kullandı.

    Von Neumann mimarisinin bilinen bir dezavantajı vardır; o da hem verinin hem de veriyle ne yapılması gerektiğini açıklayan talimat programlarının aynı bellekte bulunmasıdır. Ve işlemci ya bellekten veri topluyor ya da komuta göre onu değiştiriyor. Aynı anda yeni verileri yüklemek ve böyle bir şema çerçevesinde işlemek mümkün değildir. Bu, modern bilgisayarların, ne kadar hızlı olursa olsun, görüntü tanıma gibi bazı görevleri gerçekleştirmesini zorlaştırır. Von Neumann'ın mimarisinin ötesine geçmek amacıyla "elektronik beyin" uzmanları gerçek beyinlere yöneldi.

    Sergey Markov

    Derste gerçekler ve rakamlarla yapay zekanın ikinci baharını, yapay zeka ve makine öğrenimi alanındaki 2017 yılındaki önemli çalışmaları tartışacağız. Görüntü tanıma, konuşma, doğal dil işleme ve diğer araştırma alanlarından bahsedelim; 2017 yılı için yeni modelleri ve ekipmanları tartışalım. Ayrıca yapay zeka ve makine öğreniminin iş dünyasında, tıpta ve bilimde uygulanmasından bahsedecek ve ayrıca 2018'de yapay zeka ve makine öğreniminden neler beklediğimizi tartışacağız.

    Sergey Markov

    Hamburg hesabı

    1950 yılında İngiliz bilim adamı Alan Turing, “Bilgisayar Makineleri ve Zihin” başlıklı makalesinde şu soruyu sormuştu: “Bir makine bir insanı anlayabilir mi?” Böylece bir bilgisayarın insanları kandırmaya çalıştığı ünlü Turing testi doğdu. Peki bir bilgisayar bir insanı nasıl anlıyor ve henüz neyi anlayamıyor? Makine öğrenimi alanında uzman ve Activebusinesscollection bilgi teknolojisi direktörü Sergei Markov'a bu konuyu Hamburg'da sormaya karar verdik.

Yapay zekanın 2007'den bu yana askeri laboratuvarların derinliklerinde çalıştığını söylüyorlar. Zaten sonuçların olması mümkündür. Daha bir ay önce Elon Musk'un yapay zeka karşıtı teknolojilere desteğini duyurması ve bu alandaki araştırmalara 7 milyon dolar yatırım yapması tesadüf değil.

“Önümüzdeki beş yıl içinde gerçekten tehlikeli bir şeyin yaşanma riski var. Girişimci, edge.org'daki bir tartışmada "En fazla on yıl" dedi.

Tesla ve SpaceX'in kurucusu Elon Musk

Steve Wozniak da "yapay zekanın bir gün insanlardan kurtulacak kadar akıllı olacağına" inanan Musk ile aynı fikirde. Bill Gates, yapay zekanın yaratılması kontrol edilmezse "yapay zekanın insan sistemlerinin hedefleriyle çelişen bir duruma dönüşeceğinden" emin. Ve son olarak ünlü astrofizikçi Stephen Hawking, "yapay zekanın insanlığın varlığına son verebileceğini" doğrudan ifade etti.

Hawking, Elon Musk ile birlikte, Futureoflife.org web sitesinde, bilim camiasını yapay zeka alanındaki araştırmalarının ilerleyişi konusunda dikkatli olmaya çağıran açık bir mektup yayınladı. Ancak imzacılar arasında Sergey Brin ve Larry Page'in isimleri yok. Ve bu bir tesadüf değil. Kısa süre önce Google, konuşma modellemeye dayalı yeni bir yapay zekanın oluşturulduğunu duyurdu.

İşte bir insan ile bir Google Makinesi arasındaki konuşmanın kısa bir kısmı:

C: Hayatın anlamı nedir?

M.: İyilik yap.

C.: Ne için yaşıyoruz?

M.: Sonsuza dek yaşamak.

C: Varoluşun anlamı nedir?

M: Dünya gezegenine vardığımızda ne olacağını öğrenmek için.

Ch: Şimdi neredesin?

M.: Boşluğun ortasında.

C: Ölümün anlamı nedir?

M.: Hayata kavuşmak için.

C: Aklın anlamı nedir?

M.: Ne olduğunu anlamakla ilgili.

C.: Duyguların anlamı nedir?

M.: Bilmiyorum.

Oldukça anlamlı bir konuşma. Biplan şirketinin genel müdürü Evgeniy Karyuk, "Bu, yapay zekanın geleceği için bir başlangıç ​​noktası, bir tür çekirdek" diyor. "Bugün bile, erken aşamada da olsa, 2030 yılına kadar yapay zekayla donatılmış çok gerçek prototipler göreceğimizi varsayabiliriz."

Tüm insan ve Google Makine konuşmalarının tam içeriği görüntülenebilir. Burada karşılaştırma amacıyla bir kişi ile Cleverbot arasındaki konuşmalar da veriliyor. Cleverbot, bir kişiyle sohbet etmek için yapay zeka algoritmalarını kullanan bir web uygulamasıdır. 1988 yılında bilim adamı Rollo Carpenter tarafından icat edildi. Cleverbot, varlığı boyunca insanlarla 65 milyonun üzerinde konuşma gerçekleştirdi. Cleverbot, 2011 yılında Turing testinde %51 puan aldı.

Turing Testi, Alan Turing'in 1950 yılında Mind dergisindeki "Computing Machinery and Mind" adlı makalesinde önerdiği ampirik bir testtir. Testin amacı bilgisayarın düşünüp düşünemediğini bulmaktır.

Ve işte Cleverbot ile konuşmam:

Adam: Hayatın anlamı nedir?

Cleverbot: Hayatın hiçbir anlamı yok.

Adam: Ne için yaşıyoruz?

Cleverbot: Birisi için yaşıyoruz ve eğer yalnızsan yaşamanın bir anlamı yok.

Adam: Varoluşun anlamı nedir?

Kişi: Şimdi neredesin?

Cleverbot: Moskova'da.

Adam: Ölümün anlamı nedir?

Cleverbot: Sana sormak istediğim şey bu.

Adam: Aklın anlamı nedir?

Cleverbot: Bu soruya benim de kendi cevabım var.

Kişi: Duyguların anlamı nedir?

Cleverbot: Neden doğdum?

Açıkçası Google Machine çok daha anlamlı cevaplar sağlıyor. Cleverbot, diğer insanlardan uygun olduğunu düşündüğü ifadeleri kullanır. Bazen diğer kişi gerçekten cevap veriyormuş gibi görünür, ama daha fazlası değil.

Yapay zekanın prensipte imkansız olduğu başka bir bakış açısı daha var. Gödel'in eksiklik teoremi sıklıkla ana argüman olarak gösterilmektedir. Sonuç olarak, bir kişi algoritmik olarak çözülemeyen sorunları çözme yeteneğine sahiptir, ancak bir bilgisayar değildir. “Üç yaşına geldiğinde çocuk, olgunlukla ilgili soruyu cevaplayabileceği sinir bağlantılarına sahip olması nedeniyle bir meyvenin olgun olup olmadığı sorununu güvenle çözer: renk, tat, koku, yumuşaklık veya sertlik. "diyor Moskova Teknoloji Enstitüsü'nün ilk rektör yardımcısı Evgeniy Pluzhnik. - Bir makine bunu öğrenebilecek kapasitede midir? Eminim öyledir! Geniş bir görüntü veritabanına sahip olması halinde fruktoz içeriğini ölçebilecek ve meyvenin yumuşaklığını belirleyebilecek. Peki mavi boyalı ve tatlı suya batırılmış bir süngeri arabanıza koyarsanız ne olur? Makine şu anda gerçek anlayışı gerçekleştirebilecek kapasitede mi?”

Ünlü matematikçi Roger Penrose derslerinden birinde "Modern bir bilgisayar, ister satranç ister matematiksel hesaplamalar olsun, herhangi bir karmaşık aktiviteyle, bu aktivite açık hesaplama kuralları kullanılarak tanımlanabildiği sürece kolayca başa çıkabilir" diyor. Evgeniy Pluzhnik, "Yapay zeka, bir sistemin kendi kendine öğrenme sırasında belirli bir karmaşıklık sınıfındaki sorunları çözebilecek programlar oluşturma yeteneğidir" diyor. “Önümüzdeki 100 yıl içinde güçlü yapay zekanın ortaya çıkışını göremeyeceğimize eminim.”

Ve son olarak Cleverbot'a bir soru daha.

Kişi: 1 elma, 1 domates, 1 salatalık ve 1 armut vardı. Toplamda kaç meyve var?
Cleverbot: Akşam saat onda.