Ürkütücü derecede hassas bir yapay zeka tarafından desteklenen 20 soruluk basit çevrimiçi oyun.
Nasıl bu kadar iyi tahmin ediyorlar?
Ürkütücü derecede hassas bir yapay zeka tarafından desteklenen 20 soruluk basit çevrimiçi oyun.
Nasıl bu kadar iyi tahmin ediyorlar?
Yanıtlar:
Bunu İkili Arama Algoritması olarak düşünebilirsiniz. Her yinelemede, olası kelime seçimlerinin kabaca yarısını ortadan kaldırması gereken bir soru soruyoruz. Toplam N kelime varsa, log2 (N) sorudan sonra bir cevap almayı bekleyebiliriz.
20 soruyla, 2 ^ 20 = 1 milyon kelime arasından bir kelimeyi en iyi şekilde bulabilmeliyiz.
Aykırı değerleri (yanlış cevapları) ortadan kaldırmanın kolay bir yolu, muhtemelen RANSAC gibi bir şey kullanmaktır . Bu, cevaplanan tüm soruları hesaba katmak yerine, rastgele bir şekilde daha küçük bir alt küme seçmeniz anlamına gelir; bu, size tek bir cevap vermek için yeterlidir. Şimdi bunu farklı rastgele alt kümeler ile birkaç kez tekrarlıyorsunuz, ta ki çoğu zaman aynı sonucu aldığınızı görene kadar. o zaman doğru cevaba sahip olduğunuzu anlarsınız.
Elbette bu, bu sorunu çözmenin birçok yolundan sadece bir tanesidir.
code
, görmek için bağlantıya tıklayabilirsiniz : openbookproject.net/py4fun/animal/animal.html
Bir karar ağacı bu tür bir uygulamayı doğrudan destekler. Karar ağaçları genellikle yapay zekada kullanılır.
Karar ağacı, sol ve sağ çocukları tarafından temsil edilen koleksiyonları ayırt etmek için her dalda "en iyi" sorusunu soran ikili bir ağaçtır. En iyi soru, 20 soru uygulamasının yaratıcılarının ağacı oluşturmak için kullandıkları bazı öğrenme algoritmaları tarafından belirlenir. Sonra, diğer posterlerin de işaret ettiği gibi, 20 seviye derinliğinde bir ağaç size milyonlarca şey verir.
Her noktada "en iyi" soruyu tanımlamanın basit bir yolu, koleksiyonu en eşit şekilde ikiye bölen bir mülk aramaktır. Bu şekilde, bu soruya evet / hayır cevabı aldığınızda, her adımda koleksiyonun yaklaşık yarısından kurtulursunuz. Bu şekilde ikili aramayı yaklaşık olarak tahmin edebilirsiniz.
Wikipedia daha eksiksiz bir örnek veriyor:
http://en.wikipedia.org/wiki/Decision_tree_learning
Ve biraz genel geçmiş:
Oyun hakkında burada okumanızı tavsiye ederim: http://en.wikipedia.org/wiki/Twenty_Questions
Özellikle Bilgisayarlar bölümü:
Oyun, rastgele bir nesneyi tanımlamak için gereken bilginin (Shannon'ın entropi istatistiği ile ölçüldüğü üzere) yaklaşık 20 bit olduğunu öne sürüyor. Oyun, insanlara bilgi teorisi hakkında bilgi verirken genellikle bir örnek olarak kullanılır. Matematiksel olarak, her soru nesnelerin yarısını ortadan kaldıracak şekilde yapılandırılmışsa, 20 soru, sorgulayan kişinin 2 20 veya 1.048.576 konu arasında ayrım yapmasına olanak sağlayacaktır . Buna göre, Yirmi Soru için en etkili strateji, kalan olasılıklar alanını her seferinde kabaca ikiye bölecek sorular sormaktır. İşlem, bilgisayar bilimindeki ikili arama algoritmasına benzer.
Kendini "internetteki sinir ağı" olarak faturalandırır ve anahtar burada yatar. Muhtemelen soru / cevap olasılıklarını yedek bir matriste depolar. Bu olasılıkları kullanarak, bir sonraki soruyu en iyi şekilde daraltacak olan hangi sorunun sorulacağını belirlemek için bir karar ağacı algoritması kullanabilir. Birkaç düzine olası yanıt sayısını daralttıktan sonra veya zaten 20 soruya ulaşırsa, en olası olanı okumaya başlar.
20q.net'in gerçekten ilgi çekici yönü, bildiğim çoğu karar ağacı ve sinir ağı algoritmasının aksine, 20q'nin seyrek bir matrisi ve artımlı güncellemeleri desteklemesi.
Düzenleme: Cevabın bunca zamandır internette olduğu ortaya çıktı. Mucit Robin Burgener, algoritmasını 2005 patent başvurusunda ayrıntılı olarak açıkladı .
Bir öğrenme algoritması kullanıyor.
k-NN bunlardan birine güzel bir örnektir.