İlan

Daha önce “Markov zinciri” terimini duymuş olabilirsiniz, ancak olasılık teorisi hakkında birkaç ders almadıysanız veya bilgisayar bilimi algoritmaları Tüm Stres Olmadan Programlama Nasıl ÖğrenilirBelki bir kariyer için ya da bir hobi olarak programlama yapmaya karar verdiniz. Harika! Ama belki bunalmış gibi hissediyorsunuzdur. Çok iyi değil. İşte yolculuğunuzu kolaylaştırmak için yardım. Daha fazla oku , muhtemelen ne olduklarını, nasıl çalıştıklarını ve neden bu kadar önemli olduklarını bilmiyorsunuzdur.

Bir Markov zinciri kavramı “kaputun altında” bir kavramdır, yani onlardan faydalanmak için ne olduklarını gerçekten bilmenize gerek yoktur. Ancak, nasıl çalıştıklarını anlamaktan kesinlikle faydalanabilirsiniz. Basit ama pek çok açıdan kullanışlıdır.

İşte bir çarpışma rotası - Markov zincirleri hakkında bilmeniz gereken her şey tek bir sindirilebilir makaleye dönüştürüldü. Daha derine inmek istiyorsanız, ücretsiz bilgi teorisi kursu Khan Academy (ve diğer çevrimiçi kurs sitelerini de düşünün

instagram viewer
Ücretsiz Kolej Kursları için En İyi 8 SiteÜniversite düzeyinde ücretsiz kurslara erişmek ister misiniz? İşte ücretsiz çevrimiçi kurslar almak için en iyi sitelerden bazıları. Daha fazla oku ).

Markov Zincirler 101

Diyelim ki yarın havanın nasıl olacağını tahmin etmek istiyorsunuz. Gerçek bir tahmin - uzman meteorologlar tarafından yapılan tür Android için En İyi 7 Ücretsiz Hava Durumu UygulamasıBu ücretsiz hava durumu uygulamaları, Android cihazınızla hava durumunu takip etmenize yardımcı olacaktır. Daha fazla oku - sürekli değişen yüzlerce, hatta binlerce farklı değişkeni içerir. Hava sistemleri inanılmaz derecede karmaşık ve modellenmesi imkansız, en azından sizin ve benim gibi iş adamları için. Ancak olasılık tahminlerini kullanarak sorunu basitleştirebiliriz.

Otuz yıllık hava durumu verilerine erişiminiz olduğunu düşünün. Başlangıçta, 1. Günün güneşli olduğunu belirterek başlarsınız. Gün 2'nin de güneşli olduğunu, ancak Gün 3'ün bulutlu olduğunu, ardından Gün 4'ün yağmurlu olduğunu ve 5. Gün'de fırtınaya yol açtığını ve ardından 6. Gün'de güneşli ve berrak gökyüzünü izleyerek devam edersiniz.

İdeal olarak, daha ayrıntılı olursunuz, günlük analiz yerine saatlik bir analiz yapmayı tercih edersiniz, ancak bu sadece konsepti göstermek için bir örnektir, bu yüzden bana katilin!

Bunu, 30 yıllık veri kümesinin tamamında (11.000 günlük utangaç olurdu) yaparsınız ve bugünün hava durumuna bağlı olarak yarının hava durumunun nasıl olacağını hesaplarsınız. Örneğin, bugün güneşliyse:

  • Yarının tekrar güneşli olma ihtimali yüzde 50.
  • Yarın bulutlu olma ihtimali yüzde 30.
  • Yarının yağmurlu olma ihtimali yüzde 20.

Şimdi bunu her olası hava durumu için tekrarlayın. Bugün bulutluysa, yarının güneşli, yağmurlu, sisli, gök gürültülü fırtına, dolu fırtına, kasırga vb. Olma ihtimali nedir? Çok yakında, sadece yarının hava durumunu değil, ertesi günün hava durumunu ve ertesi günü tahmin etmek için kullanabileceğiniz bir olasılık sisteminiz var.

Geçiş Durumları

Bu bir Markov zincirinin özüdür. Her bir durumun diğerine geçiş yapabileceği bireysel durumlarınız (bu durumda hava koşulları) var (örneğin güneşli günler bulutlu günlere geçebilir) ve bu geçişler olasılıklara dayanır. Bir hafta içinde havanın nasıl olabileceğini tahmin etmek istiyorsanız, önümüzdeki yedi gün içinde çeşitli olasılıkları keşfedebilir ve hangilerinin daha olası olduğunu görebilirsiniz. Böylece bir Markov “zinciri”.

Markov kimdir? Geçiş şansını başka hiçbir faktörün etkilemediği belirli bir olasılığa dayanarak doğrudan bir başka devlete giden bir devlet fikrini ortaya çıkaran bir Rus matematikçiydi. Temel olarak, Markov zincirini, dolayısıyla adlandırma icat etti.

Markov Zincirleri Gerçek Dünyada Nasıl Kullanılır

Açıklamanın dışında, kullanışlı oldukları bazı gerçek dünya uygulamalarını inceleyelim. Markov zincirlerini tüm bunları bilmeden kullandığınızı görünce şaşırabilirsiniz!

İsim Üretimi

Hiç masa üstü oyunlara, MMORPG oyunlarına ve hatta kurgu yazarlığına katıldınız mı? Karakterlerinizin isimlendirilmesinde acı çekmiş olabilirsiniz (en azından bir noktada veya başka bir yerde) - ve beğendiğiniz bir ismi düşünemediğinizde, muhtemelen çevrimiçi ad oluşturucuya başvurdu En İyi Online İsim Jeneratörleri ile Yeni Bir Takma Ad Oluşturun [Tuhaf & Harika Web]Adın sıkıcı. Neyse ki, Internetz'de bulunan sayısız isim üreticisinden birini kullanarak çevrimiçi olabilir ve yeni bir takma ad seçebilirsiniz. Daha fazla oku .

Bu isim üreticilerinin nasıl çalıştığını hiç merak ettiniz mi? Görünüşe göre, çoğu Markov zincirlerini kullanıyor ve bu da onu en çok kullanılan çözümlerden biri haline getiriyor. (Tabii ki, aynı derecede etkili olan başka algoritmalar da var!)

İhtiyacınız olan tek şey, her harfin olası olası takip harflerinin bir listesine sahip olduğu bir harf koleksiyonudur. Örneğin, “M” harfinin “A” harfine yol açma şansı yüzde 60, “I” harfine yol açma şansı yüzde 40'tır. Bunu bir sürü diğer harf için yapın, ardından algoritmayı çalıştırın. Boom, mantıklı bir ismin var! (Çoğu zaman, her neyse.)

Google PageRank

Markov zincir teorisinin ilginç sonuçlarından biri, zincirin uzunluğu arttıkça (yani, devlet geçişlerinin sayısı) ), belirli bir duruma inme olasılığınız sabit bir sayıya yaklaşır ve bu olasılık, başladığınız yerden bağımsızdır sistemi.

Tüm dünya çapında web'i, her web sayfasının bir durum olduğu ve web sayfaları arasındaki bağlantıların olasılıklı geçişler olduğu bir Markov sistemi olarak düşündüğünüzde son derece ilginçtir. Bu teorem temel olarak şöyle diyor: hangi web sayfasına başlarsanız başlasın, belirli bir X web sitesine iniş yapma şansınız sabit bir olasılıktır ve sörfün “uzun süre” olduğunu varsayar..

Markov zincirli Örnek-google-pagerank
Resim Kredisi: 345Kai via Wikimedia

Ve bu, Google'ın web sayfalarını nasıl sıraladığının temelidir. Gerçekten de, PageRank algoritması Markov zincir algoritmasının değiştirilmiş (read: daha gelişmiş) bir formudur.

Belirli bir web sayfasına ulaşmanın “sabit olasılığı” ne kadar yüksekse, PageRank değeri o kadar yüksek olur. Bunun nedeni, daha yüksek bir sabit olasılığın web sayfasının gelen birçok bağlantıya sahip olduğunu ima etmesidir diğer web sayfaları - ve Google, bir web sayfasında çok fazla gelen bağlantı varsa, değerli. Gelen bağlantılar ne kadar fazlaysa, o kadar değerli olur.

Elbette bundan daha karmaşık, ama mantıklı. 2ll.me gibi bir site neden arama sonucu sayfalarında daha yüksek önceliğe sahiptir? Çünkü kullanıcıların internette gezinirken oraya varma eğiliminde oldukları ortaya çıkıyor. İlginç, değil mi?

Kelime Tahmin Yazma

Cep telefonları on yıllardır tahminli bir şekilde yazılmıştır, ancak bu tahminlerin nasıl yapıldığını tahmin edebilir misiniz? Android kullanıp kullanmadığınız (alternatif klavye seçenekleri Android için En İyi Alternatif Klavye Nedir?Play Store'daki en iyi klavyelerden bazılarına göz atıyor ve test ediyoruz. Daha fazla oku ) veya iOS (alternatif klavye seçenekleri En İyi 10 iPhone Klavye Uygulaması: Süslü Yazı Tipleri, Temalar, GIF'ler ve Daha FazlasıVarsayılan iPhone klavyesinden bıktınız mı? Bu alternatif iPhone klavye uygulamaları GIF'ler, temalar, arama ve daha fazlasını sunar. Daha fazla oku ), seçtiğiniz uygulamanın Markov zincirlerini kullanma şansı yüksektir.

Bu yüzden klavye uygulamaları yazma alışkanlıklarınız hakkında veri toplayıp toplayamadıklarını sorar. Örneğin, Google Klavye’de, Parçacıkları paylaş "Google Klavye'yi geliştirmek için Google uygulamalarına ne ve nasıl yazdığınızın snippet'lerini paylaşmanızı" ister. Temel olarak, kelimeleriniz analiz edilir ve uygulamanın Markov zincir olasılıklarına dahil edilir.

Bu yüzden klavye uygulamaları genellikle üç veya daha fazla seçenek sunar, genellikle en olasıdan en az olası olana doğru. Bundan sonra ne yazmak istediğinizi tam olarak bilemez, ancak bundan daha sık doğrudur.

Alt Düzenleme Simülasyonu

Reddit'i hiç kullanmadıysanız, en azından şu büyüleyici denemeye göz atmanızı öneririz. /r/SubredditSimulator.

Basitçe söylemek gerekirse, Subreddit Simulator, Reddit’in sayısız topluluğunda yapılan yorum ve başlıkları TÜM büyük bir kitleye alır, ardından her cümlenin kelime kelime yapısını analiz eder. Bu verileri kullanarak, kelime-kelime olasılıkları üretir - daha sonra bu olasılıkları sıfırdan başlıklar ve yorumlar oluşturmak için kullanır.

Markov zincirli Örnek-subreddit-simülatörü

Bu denemenin ilginç bir katmanı, yorumların ve başlıkların verilerin geldiği topluluk tarafından kategorize edilmesidir. / r / food’un veri kümesi tarafından oluşturulan yorum ve başlık türleri / r / soccer’nin verileri tarafından oluşturulan yorum ve başlıklardan çok farklıdır. Ayarlamak.

Ve en komik - ya da belki de en rahatsız edici kısmı, üretilen yorumların ve başlıkların gerçek insanlar tarafından yapılanlardan sıklıkla ayırt edilemez olmasıdır. Kesinlikle büyüleyici.

Markov zincirleri için başka havalı kullanımlar biliyor musunuz? Hala yanıtlanması gereken sorularınız mı var? Aşağıdaki bir yorumda bize bildirin!

Joel Lee'nin bir B.S. Bilgisayar Bilimi ve altı yılı aşkın profesyonel yazma deneyimi. MakeUseOf'un Genel Yayın Yönetmeni.