Fenotropik Program Tasarımı


15

Son zamanlarda Jaron Lanier tarafından "fenotropik programlama" adı verilen bir fikirle karşılaştım.

Fikir, tipik olarak bir "klasik" programın felaketle çökmesine neden olacak küçük hataları gidermek için istatistik kullanan bilgisayar programlarında tek nokta arayüzleri yerine 'yüzey' arayüzleri kullanmaktır.

İki satırlı açıklama burada:

Jaron'a göre, 'protokolün bağlılığı olan mevcut yazılım fikri ile tartıştığı, örüntü tanıma fikri arasındaki gerçek fark, yarattığımız hata türleriyle ilgilidir' ve eğer ' yazılımları düşünmenin ve oluşturmanın farklı bir yolunu bulamıyoruz, işlemcilerimiz ne kadar hızlı olursa olsun yaklaşık 10 milyon satır koddan daha büyük programlar yazmayacağız. '

Biraz daha uzun açıklama burada . Ve daha da uzun açıklama burada .

Öyleyse, insanların seçme eğiliminde olduğu aşikâr robot derebeyi çağrışımlarının ötesine geçen soru, aslında bir "fenotropik program" nasıl tasarlanır ve yazılır?


1
Hiçbir suç ama bağlı makaleler çok belirsiz ve naif. Neyi anladığınız konusunda daha kesin olabilir misiniz phenotropic program?
Simon Bergot

Her zamankinden daha fazla okuyun. Bunu kanlı ayrıntılarla açıklar.
adv

4
Ben buna cevap vermenin tek yolu "fenotropik programın" ne olduğunu tanımlamaktır. Bu durumda cevap görüşe dayalı hale gelir. Dolayısıyla, bir "fenotropik programın" nasıl yazılacağını sormadan önce, "fenotropik programın" ne olduğunu sorun.
Euphoric

1
@Simon: Soru temelde aynı şeyi soruyor, bu yüzden OP aslında soruyu kendisi cevaplamadan isteğinizin mümkün olduğunu bilmiyorum.
Robert Harvey

1
İlgili konu (metnin yazarını düşünün): mail-archive.com/fonc@vpri.org/msg03808.html
Thiago Silva

Yanıtlar:


23

Lanier, belirli tanımlanabilir özelliklere sahip bilgisayar programları oluşturmak için bir hesaplama modelini tanımlayan belirli bir fikir kümesinin etrafına bir ağ yerleştirmek için 50 cent'lik bir kelime icat etti.

Kelimenin anlamı:

İşlev çağırma veya mesaj geçirme yerine örüntü tanıma veya yapay biliş kullanan bileşen etkileşimi için bir mekanizma.

Fikir büyük ölçüde biyolojiden geliyor. Gözünüz dünya ile arayüzleşir, böyle bir işlevle değilSee(byte[] coneData) , retina denilen bir yüzeyle . Bu önemsiz bir ayrım değil; bir bilgisayarın tüm baytları coneDatatek tek taraması gerekirken, beyniniz tüm bu girişleri aynı anda işler.

resim açıklamasını buraya girin

Lanier, ikinci arayüzün daha fazla hataya dayanıklı olduğunu iddia ediyor (ki tek bir kayma biti coneDatatüm sistemi kırabilir). Desen eşleştirmeyi ve normalde bilgisayarları zor olan bir dizi başka özelliği etkinleştirdiğini iddia ediyor.

Bir bilgisayar sistemindeki özlü "fenotropik" mekanizma Yapay Sinir Ağı (YSA) olacaktır. Tanımlı bir Arayüz yerine giriş olarak bir "yüzey" alır. Bazı örüntü tanıma ölçüsü elde etmek için başka teknikler de vardır, ancak sinir ağı biyolojiye en yakın olanıdır. YSA yapmak kolaydır; güvenilir bir şekilde yerine getirmesini istediğiniz görevi gerçekleştirmesini sağlamak birkaç nedenden dolayı zordur:

  1. Giriş ve çıkış "yüzeyleri" neye benziyor? Kararlı mılar, yoksa zamanla boyut olarak değişiyorlar mı?
  2. Ağ yapısını nasıl doğru buluyorsunuz?
  3. Ağı nasıl eğitiyorsunuz?
  4. Yeterli performans özelliklerini nasıl elde edersiniz?

Biyolojiye katılmaya istekli iseniz, biyolojik modelden (gerçek biyolojik nöronların çalışmasını simüle etmeye çalışan) dağıtabilir ve dijital bilgisayar sisteminin (mantık) gerçek "nöronları" ile daha yakın bir ağ oluşturabilirsiniz. kapıları). Bu ağlara Uyarlanabilir Mantık Ağları (ALN) denir. Çalışma şekilleri bir eğriye yaklaşan bir dizi doğrusal fonksiyon oluşturmaktır. Süreç şöyle görünür:

resim açıklamasını buraya girin

... burada X ekseni ALN'ye bir girişi, Y ekseni de bir çıkışı temsil eder. Şimdi, doğruluğu artırmak için gerektiği kadar genişleyen doğrusal fonksiyonların sayısını düşünün ve tamamen AND ve OR mantık kapıları ile uygulanan n keyfi boyutta gerçekleşen sürecin ve bir ALN'nin neye benzediğine dair bir fikriniz olduğunu hayal edin.

ALN'lerin kesin, çok ilginç özellikleri vardır:

  1. Oldukça kolay eğitilebilirler,
  2. Çok öngörülebilirler, yani girdideki küçük değişiklikler çıktıda vahşi dalgalanmalara neden olmaz,
  3. Şimşek çakıyorlar, çünkü bir mantık ağacı şeklinde inşa edilmişler ve ikili bir arama gibi çalışıyorlar.
  4. İç mimarileri eğitim setinin bir sonucu olarak doğal olarak evrilir

Yani bir fenotropik program şöyle görünecektir; girdi için bir "yüzeye", öngörülebilir bir mimariye ve davranışa sahip olacak ve gürültülü girdilere karşı toleranslı olacaktır.


Risk Değerlendirmesine İlişkin Bir Uygulama ile Uyarlanabilir Mantık Ağlarına Giriş Okuma
"Nesne Odaklı" ve "Mesaj Odaklı", Alan Kay


1
Eğer yanılıyorsam beni düzeltin, ama bir "yüzey" girdisi, bağımsız (ya da çoğunlukla bağımsız) bileşenlerden oluşan bir koleksiyon gibi geliyor. Göz örneğinde, şöyle görünebilirdi See(List<Cone> cones)(her birinin birbirinden Conebağımsız olduğu yerde ), değil mi?
FrustratedWithFormsDesigner

1
@Frustrated Bir yüzeyi bayt dizisiyle simüle edebilirsiniz, ancak mesaj geçişini ve işlev çağrışımını biliş ve kalıp tanıma ile değiştiren Lanier tanımına geri dönebilirsiniz. Bu ölçeklenebilirlik problemi tarif ile bağlar burada . Hata toleransı da denklemin bir parçasıdır. "Daha akıllı arayüzler" düşünün.
Robert Harvey

3
Re: "daha fazla hataya dayanıklı". Lanier hiç optik yanılsama gördü mü? Daha önce beynin psikolojisine baktı. Beyin, HER ZAMAN girdilerinin söylediklerinden bir anlam çıkarmaya çalışır, SONUÇLAR NEDEN OLDUĞUNUN ÖNEMLİDİR. Beynin çalışma şekli son derece hatalı. Bu nedenle, programın tipik bir insan gibi oldukça sık arızalanmasının önemi olmadığı sürece, atıfta bulunulan modelin iyi olduğunu varsayalım. Ancak, çoğu zaman insanlar bilgisayarların doğru olmasını beklerler. Çoğu zaman kazaları önleyen bilgisayarlı bir araba satmak zor olacaktır.
Dunk

2
@Dunk: ... ancak çoğu zaman kazalardan kaçınmayı başaran insan sürücüleri için araba inşa etmek ve satmak yasaldır.
Doc Brown

2
@Sorun nokta, hataların varlığı değildir - aksi takdirde her şeyi kanıtlamak için klasik matematik yoluna giderdik. Nokta 1: başarısızlık etkisinin kapsamı (bir goril için bir tavşanı yanıltırsam evren çökmez - aslında, bundan sonra hala bir insan olarak işlev görüyorum, beynim de oğlum da öyle), 2 : odanın fiziksel / biyolojik varlıkları iyileşmek, geri bildirimde bulunmak ve "işleri yolunda tutarsız bir şekilde bile devam ettirmek" için sonda alternatifleri sunmak zorundadır; ve 3: bu özelliklerin onları yapay sistemlerimizde istememize zorladığı fikri
Thiago Silva

1

Sanırım oraya ulaşmak için atılacak adımlardan birinin başındayız ve bu, analiz edilebilecek formatlarda birçok veri topluyor. İnternet, Google aramaları, Fitbit (Attığınız her adım, yaptığınız her hareket, sizi izleyeceğim.), FourSquare, akıllı telefon coğrafi konumu, Facebook gönderileri ve SO soru verileri toplanıyor. Ortalama bir insanın yaşam süresi boyunca derlediği duyusal veri miktarına yakın bir yerde değiliz, ama yaklaşıyoruz.

Milyonlarca kuş resmini kategorilere ayırmaya ve insanlardan kuş olmadığını söyleyenlerden bir geri bildirim almaya başlayın ve bir algoritma oluşturmaya başlayabilirsiniz. Oradan daha bulanık bir izlenim (buna bir model diyebilirim, ama kodlamaya çalıştığımız şey için çok kesin.) Oluşturulabilir.

class Birdish

Bir evcil köpek sahibi hakkında çok şey biliyor mu? Çünkü onu çok izliyor. Köpek, araba yoluna çeken ve köpek gibi göründüğü ön kapıyı açan sahibin sesiyle bir arabayı tanıyabildiğini ilişkilendiren arabaları dinledi. Bunu da yapabiliriz, ancak buna katılmak için hiçbir neden görmüyoruz. Ve mevcut yazılımda yanlış olan şey, kullanıcının ne yaptığına dikkat etmiyor. Sadece kullanıcının BT'den yapmasını beklediği şeyi yapmasını bekler.

Bir çalar saat ayarlamak kadar basit bir şey, mevcut alışkanlıklarımın küçük bir gözlemi / analizi ile yapılabilir. Teknoloji dijital ile değiştirilmeden önce VCR zamanlayıcılarını ayarlamaktan vazgeçtik. Ve TV Rehberini VCR ile birbirine bağlayabilirsek, bu kadar hızlı olur muydu? Aynı TV şovunu aynı anda arka arkaya 4 hafta izledim, ancak 5. TV'yi bile açmadım. Belli ki kaydedilmesini istiyorum. Bu yazıyı yazarken işte geç kalacağımı söyleyemez misiniz ve tipik işe gidip gelirken zamanında evde olmaz. Verilere sahipsiniz, matematiği yapın.

Daha fazla veri toplayın ve daha sonra bunları analiz etmenin, tanımanın ve gizlemenin daha iyi yollarını bulabilirsiniz. Sadece telefon kameralarımız ve yakında göz cam kameralarımızla klavyeden girilebilecek şeylerin ötesine geçiyoruz. Bu sadece başlangıç.



-1

Son zamanlarda aldığım bir düşünce:

Diğer sistemlere uzaktan prosedür çağrılarını sarmak için Haskell's Maybe Monad gibi üst düzey fikirler kullandıysanız. Sunucuya bir istek gönderirsiniz. Ama hiçbir şey geri gelmez (sunucu bozuldu). Veya bir Promise geri gelir (sunucu meşgul) ve programlarınız bu None veya Promised değerleriyle çalışmaya devam eder. Lanier'in aradığı hata toleransı gibi.

Belki başka olasılıkları da içine alma yolları vardır. Örneğin, bir tür arka plan müzakere ile zaman içinde gittikçe daha da rafine edilen bir yaklaşımla geri gelen uzak çağrılar. yani. geri gelen bir söz gibi bir şey ama sadece “buna devam et ve onunla çalışmaya devam et ve uygun bir değer kısa sürede ortaya çıkacak” ama “buna devam et ve onunla çalışmaya devam et ve daha kısa bir süre daha iyi bir yaklaşım ortaya çıkacak”. (Ve tekrar tekrar ve tekrar). Bu, ağ protokollerinin programcıdan çok düşük seviyeli bir ağ hatasını gizlemesi gibi, programcıdan çok sayıda hatayı gizleyebilir.


bu sorulan soruya nasıl cevap veriyor?
gnat

Doğru anlarsam Fenotropik Programlama büyük (genellikle çok bilgisayarlı), sağlam sistemleri programlamanın bir yoludur. Sorun şu ki, tüm biyolojik metaforlar onu pratik programlama terimlerine çevirmeyi belirsiz ve zorlaştırıyor. Burada belirsiz olmayan bazı programlama yapılarının (yani Monads, Promises vb.) Lanier'in somut ve pratik olarak bu fikirlerinden bazılarını yapmanın bir yolu olabileceğini öneriyorum.
interstar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.