Gizli Markov modelleri ve sinir ağları arasındaki farklar nelerdir?


40

Sadece ayaklarımın istatistiklerini ıslattığım için üzgünüm, eğer bu soru mantıklı gelmiyorsa. Gizli aramaları (haksız kumarhaneler, zar atma vb.) Ve sinir ağlarını tahmin etmek için Markov modellerini ve kullanıcıların arama motorundaki tıklamaları incelemek için kullandım. Her ikisinde de gözlemleri kullanarak çözmeye çalıştığımız gizli durumlar vardı.

Anladığım kadarıyla ikisi de gizli durumları öngörüyor, bu yüzden Markov modellerini ne zaman sinir ağları üzerinde kullanacağını merak ediyorum. Bunlar sadece benzer sorunlara farklı yaklaşımlar mı?

(Öğrenmeye ilgi duyuyorum ama başka bir motivasyonum da var, gizli Markov modellerini kullanarak çözmeye çalıştığım bir sorunum var ama bu da beni heyecanlandıran başka bir şey kullanıp kullanamayacağımı görmekle ilgileniyordu.)


2
Buraya bakmak isteyebilirsiniz: stats.stackexchange.com/questions/4498/…
Nucular

Bir cevap seçmeyi veya aradığınızı daha fazla netleştirmeyi ister misiniz?
conjugateprior

Yanıtlar:


27

Ne gizli ve ne gözlenir

Gizli bir Markov modelinde saklanan şey, ayrık bir karışım modelinde saklanan ile aynıdır, bu nedenle netlik için, gizli durumun dinamiklerini unutun ve örnek olarak sonlu bir karışım modeline sadık kalın. Bu modeldeki 'durum', her bir gözlemlemeye neden olan bileşenin kimliğidir. Bu model sınıfında bu tür nedenler hiçbir zaman gözlenmez, bu nedenle 'gizli sebep', kaynak bileşen bilindiğinde ortadan kaldırılan gözlenen verilerin marjinal bağımlılıklara sahip olduğu iddiasına istatistiksel olarak dönüştürülür. Ve kaynak bileşenlerin bu istatistiksel ilişkiyi doğru kılan şey olduğu tahmin edilmektedir.

Sigmoid orta üniteli ileri beslemeli çok katmanlı bir sinir ağında gizlenen şey, çıkarımın hedefi olan çıktılar değil, bu ünitelerin durumlarıdır. Ağın çıktısı bir sınıflandırma olduğunda, yani olası çıktı kategorilerine göre olasılık dağılımı olduğunda, bu gizli birimler değerleri, kategorilerin ayrılabileceği bir alanı tanımlar. Böyle bir modeli öğrenmenin püf noktası, içinde problemin doğrusal olduğu gizli bir alan oluşturmaktır (giriş birimlerinin haritasını düzenleyerek). Sonuç olarak, doğrusal olmayan karar sınırları sistemden bir bütün olarak mümkündür.

Üretken ve ayrımcı

Karışım modeli (ve HMM), bazen olabilirlik veya 'ileri model' olarak adlandırılan veri üretme sürecinin bir modelidir. Her bir durumun önceki olasılıkları hakkındaki bazı varsayımlarla birleştiğinde, Bayes teoremini (üretken bir yaklaşım) kullanarak gizli durumun olası değerleri üzerinde bir dağılım elde edebilirsiniz. 'Öncelik' olarak adlandırıldığında, hem önceki hem de olasılıktaki parametrelerin genellikle verilerden öğrenildiğine dikkat edin.

Karışım modelinin (ve HMM) aksine, sinir ağı doğrudan çıktı kategorileri üzerinde bir posterior dağılım öğrenir (ayırt edici bir yaklaşım). Bu mümkündür çünkü çıktı değerleri tahmin sırasında gözlendi. Ve gözlemlendiklerinden, karışım gibi olabilirlik olasılığı için önceki ve spesifik bir modelden bir posterior dağılım oluşturmak gerekli değildir. Posterior, daha verimli ve daha az modele bağımlı olan verilerden doğrudan öğrenilir.

Karıştır ve Eşleştir

İşleri daha kafa karıştırıcı hale getirmek için, bu yaklaşımlar birlikte kullanılabilir, örneğin karışım modeli (veya HMM) durumu bazen gözlemlendiğinde. Bu doğru olduğunda ve burada ilgili olmayan diğer bazı durumlarda, farklı bir üretici modelde ayrımcı bir şekilde eğitim almak mümkündür. Benzer şekilde, bir HMM'nin karışım modeli eşlemesini daha esnek bir ileri model, örneğin bir sinir ağı ile değiştirmek de mümkündür.

Sorular

Dolayısıyla her iki modelin de gizli durumu öngördüğü doğru değil. HMM'ler , yalnızca ileri modelin beklediği türden de olsa, gizli durumu tahmin etmek için kullanılabilir. Sinir ağları henüz gözlemlenmemiş bir durumu tahmin etmek için kullanılabilir , örneğin tahmin edicilerin mevcut olduğu gelecekteki durumlar. Bu tür bir devlet prensipte gizli değildir, henüz henüz gözlemlenmemiştir.

Birini diğerinden ziyade ne zaman kullanırsınız? Sinir ağları benim deneyimimde oldukça garip zaman serisi modelleri oluşturuyor. Ayrıca çıktıyı gözlemlediğinizi de varsayıyorlar. HMM'ler değil ama gizli durumun gerçekte ne olduğuna dair hiçbir kontrolünüz yok. Yine de uygun zaman serisi modelleridir.


2
+1 Bu çok iyi. : Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network.P (emisyon | p) emisyon olasılıklarını ileri besleme NN ile değiştirmek mi istiyorsunuz? Birkaç yerde buna rastladım ama hiçbiri bir açıklama yapmıyor; sadece uyguladıklarından bahsettiler. Öğrenme emisyonları için MLE adımının yerini aldıklarını, ancak nasıl yapılacağını anlayamadım. Herhangi bir kod veya açıklayıcı bir örnek biliyor musunuz? Herhangi bir işaretçi hoş geldiniz, teşekkürler.
Zhubarb

Etrafında bu şekilde daha az kullanılmış görünüyor (burada daha fazla ML çalışanı beni düzeltebilir). Tha, durum vektörünü bilmek (veya en azından bir EM algoritmasında olduğu gibi beklenen değerini bilmek) durumuna bağlı olarak NN parametrelerini haritalamak için durum vektörünü tahmin etmek , gözlemlenen girdi ve çıktı verileriyle çalışmakla aynı görev olduğunu söyledi. Bu kısım hakkında söylenecek özel bir şey yok.
conjugateprior

Bunun cevabı iyidir, ancak: Sinir ağları ayırt edici (ileri besleme vb.) Ya da üretken (kısıtlı bolzmann makineleri vb.) Olabilir. Ayrıca, LSTM ve Rezervuar Hesaplama modelleri gibi tekrarlayan sinir ağları zaman serisinin yanı sıra HMM'yi de modelleyebilir - ve bazen HMM'den bile daha iyi, özellikle güçlü doğrusal olmayan dinamikleri ve uzun süreli korelasyonu olan zaman serileri durumunda.
GuSuku

10

Gizli Markov Modelleri bir dilin üretilmesi, yani bir dizge ailesinin elemanlarının listelenmesi için kullanılabilir. Örneğin, bir dizi diziyi modelleyen bir HMM'niz varsa, modellediğimiz dizilerin grubuna girecek dizileri listeleyerek bu ailenin üyelerini oluşturabilirsiniz.

Sinir Ağları, yüksek boyutlu bir alandan girdi alır ve basitçe daha düşük boyutlu bir alana eşler (Sinir Ağlarının bu girişi haritalandırması, eğitime, topolojisine ve diğer faktörlere dayanır). Örneğin, bir sayının 64 bit görüntüsünü alabilir ve bu sayının 1 veya 0 olduğunu açıklayan doğru / yanlış bir değerle eşleyebilirsiniz.

Her iki yöntem de bir öğenin bir sınıfın üyesi olup olmadığını ayırt etmeyi (en azından denemeyi) mümkün olsa da, Sinir Ağları yukarıda açıklandığı gibi bir dil oluşturamaz.

Saklı Markov Modellerinin alternatifleri var; örneğin, sorunun HMM’lerin güçsüzlüğünün içinde olduğuna inanıyorsanız, daha genel bir Bayesian Ağı, farklı bir topoloji veya Stokastik Bağlamsız Dilbilgisi (SCFG) kullanabilirsiniz. Sorununuzu modelleyin - yani, daha karmaşık hipotezler arasında ayrım yapabilen ve / veya çok daha karmaşık verilerin davranışını tanımlayabilen bir algoritmaya ihtiyacınız varsa.


6
+1 İkinci paragraf için. Bu cevabın tüm unsurlarını açıkça anlayan birinin muhtemelen asıl soruyu sormayacağını belirtmek isterim. Resmi gramerlerden bahsetmek, muhtemelen "İstatistikleri sadece ayaklarımı ıslatıyorum ..." ile başlayan birine söylenemez. Buradaki ikinci paragrafta OP'nin sorduğu şeyin özü anlatılmaktadır. İlk paragrafın yerine şunu söyleyebilirsiniz: HMM, her bir durumun gözlemler üzerinde olasılık dağılımına sahip olduğu gizli durumların koşullu bağımlılıklarını modellemektedir.
Phillip Cloud

7
Bu cevap sadece yanlıştır. Buradaki Sinir Ağı'nın ileriye dönük olduğu varsayılıyor. Bu sadece bir sinir ağı sınıfıdır. Tekrarlayan modeller sadece bir alt boyutlu gösterimi tek girdileri aşağı eşleşmeyen ve onlar yapabilirsiniz dili oluşturur. Bakınız, örneğin arxiv.org/abs/1308.0850
rd11 14.06.216

Bir dizi oluşturmak (bağlantılı kağıttaki gibi) bir dil oluşturmak ile aynı değildir. Bunları bir kümenin elemanları arasında ayırt etmek için uygulayabileceğinizi ve başka bir şekilde isterseniz, yinelenen bir modelin tekrarlanan bir bireysel girişi kapsayan ve bir büyük çıktı döndürdüğü şeklinde öngörülebilir. Tekrarlayan Sinir Ağının size herhangi bir giriş olmadan çıkışları sağlayabildiğinden emin değilim.
Andrew,

Hmm. Bir HMM'nin üretebileceğini düşündüğünüz ve bir RNN ile üretilemeyeceğine inandığınız bir şeye bir örnek verebilir misiniz?
rd11,

Akla gelen örnek şudur: Bir HMM verildiğinde, HMM'nin temsil ettiği dile ait bir dizi element elde edebilirsiniz. Bir RNN'in bunu yapması için üzerine ve üstüne bir şeyler eklemeniz gerekir (örneğin, farklı girişleri deneyin ve bir girişi sınıfın bir üyesi olarak işaretleyin) veya - RNN'ler durumunda, muhtemelen birden fazla girişe bakıyor olsanız da (birbiri ardına) tek bir "maddeyi" temsil ettiği için. HMM'ler, bir dil oluşturmak için daha doğal olarak uygundur.
Andrew,

3

Bu soruya bulduğum şeye en iyi cevap şudur: Kılık değiştirmiş bir Markov zincirini derinlemesine öğrenmek . Bu tam olarak anladığım şeydi, ancak Internet’te başka bir yerde bir tartışma olduğundan, bağlantıyı buraya koyuyorum.

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2)...

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2,x1)p(x4|x3,x2,x1)...

Tek bir karakter yerine girdi olarak bir karakter dizisi kullanabiliriz. Bu şekilde devleti daha iyi yakalayabiliriz (içeriğe bağlı olarak).

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.