import numpy as np
Q = np.array([[1/3, 2/3, 0, 0], [1/2, 0, 1/2, 0], [0, 0, 0, 1], [1/2, 0, 1/4, 1/4]])
print("Satır toplamı:", Q.sum(axis=1))
# Yakınsama
for s0 in [np.array([1.,0,0,0]), np.array([0,0,0,1.])]:
s = s0.copy()
for _ in range(50):
s = s @ Q
print(f" {s0} → {np.round(s, 4)}")
# Durağan
vals, vecs = np.linalg.eig(Q.T)
i = np.argmin(np.abs(vals - 1))
pi = np.real(vecs[:, i]); pi /= pi.sum()
print(f"Durağan (özvektör): {np.round(pi, 4)}")32 Markov Zincirleri
Markov özelliği, geçiş matrisi, durağan dağılım
- Blitzstein’in videosu: YouTube — Lecture 31 (≈47 dk)
- Okuma süresi: ≈22 dk
32.1 Bu Derste Ne Var?
- Markov özelliği: geçmiş ⊥ gelecek | şimdi.
- Geçiş matrisi \(Q\): \(q_{ij} = P(i \to j)\), satır toplamı 1.
- \(n\)-adım: \(X_n \sim s\) → \(X_{n+m} \sim sQ^m\).
- Durağan dağılım: \(sQ = s\).
- MCMC (Markov Chain Monte Carlo) — Bayesçi çıkarımın motoru, Metropolis-Hastings, Gibbs, HMC.
- Diffusion modelleri — ileri/geri Markov zinciri.
- RL = MDP (Markov Decision Process) — Bellman’ın temeli.
- PageRank — web grafının durağan dağılımı.
- n-gram dil modelleri = \((n-1)\). dereceden Markov; Transformer Markov varsayımını kırar.
- HMM forward = \(sQ\) belief güncellemesi.
32.2 Markov Özelliği
\[ P(X_{n+1} = j \mid X_n = i, X_{n-1}, \ldots, X_0) = P(X_{n+1} = j \mid X_n = i) \]
Yalnız son durum önemli. Geçmiş ve gelecek şimdi verildiğinde koşullu bağımsız.
“Past and future are conditionally independent given the present.” — Blitzstein, 11:43
Homojen: \(q_{ij} = P(X_{n+1} = j \mid X_n = i)\), \(n\)’den bağımsız.
32.3 Geçiş Matrisi \(Q\)
Örnek (4 durum):
\[ Q = \begin{pmatrix} 1/3 & 2/3 & 0 & 0 \\ 1/2 & 0 & 1/2 & 0 \\ 0 & 0 & 0 & 1 \\ 1/2 & 0 & 1/4 & 1/4 \end{pmatrix} \]
Her satır 1’e toplanır (stokastik matris).
32.4 \(n\)-Adım Geçişler
\(X_n\) dağılımı satır vektörü \(s\). LOTP:
\[ P(X_{n+1} = j) = \sum_i s_i q_{ij} = (sQ)_j \]
\[ X_n \sim s \;\Rightarrow\; X_{n+m} \sim sQ^m \]
\[ P(X_{n+m} = j \mid X_n = i) = (Q^m)_{ij} \]
32.5 Durağan Dağılım
\[ \boxed{sQ = s} \]
Bir kez girilince sonsuza dek \(s\). \(Q\)’nun özdeğer-1 sol özvektörü.
Dört soru: Var mı? Tek mi? Yakınsar mı? Nasıl hesaplanır?
Hafif koşullarda → evet, evet, evet.
import numpy as np
import matplotlib.pyplot as plt
Q = np.array([
[1/3, 2/3, 0, 0],
[1/2, 0, 1/2, 0],
[ 0, 0, 0, 1],
[1/2, 0, 1/4, 1/4],
])
# Durağan dağılım
vals, vecs = np.linalg.eig(Q.T)
i = np.argmin(np.abs(vals - 1))
pi = np.real(vecs[:, i]); pi /= pi.sum()
# Yakınsama
fig, ax = plt.subplots(figsize=(11, 5))
renkler = ['#A51C30', '#DD6B20', '#2C5282', '#6B46C1']
labels = ['Durum 1', 'Durum 2', 'Durum 3', 'Durum 4']
for s0, ls in [(np.array([1.,0,0,0]), '-'), (np.array([0,0,0,1.]), '--')]:
s = s0.copy()
history = [s.copy()]
for _ in range(40):
s = s @ Q
history.append(s.copy())
history = np.array(history)
for k, c in enumerate(renkler):
ax.plot(history[:, k], color=c, linewidth=2, linestyle=ls, alpha=0.85,
label=f'{labels[k]} (init {s0})' if ls == '-' else None)
for k, c in enumerate(renkler):
ax.axhline(pi[k], color=c, linestyle=':', linewidth=1.5, alpha=0.6)
ax.set_xlabel('adım n', fontsize=12)
ax.set_ylabel('P(durum)', fontsize=12)
ax.set_title(f'Markov zinciri: farklı başlangıçlar → aynı durağan dağılım π ≈ {np.round(pi, 3)}',
fontsize=11)
ax.legend(loc='upper right', fontsize=10, ncol=2)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()MCMC: durağan dağılımı hedef posterior olan zincir kur (Metropolis-Hastings, Gibbs, HMC), çalıştır, örnekle. Bayesçi ML’in motoru. Diffusion modelleri: ileri süreç gürültü ekleyen zincir, geri süreç onu çözen — üretim = zinciri tersine çalıştırma.
32.6 Tarihsel İki Kullanım
- Modelleme: gerçek sistem (Pushkin’in sesli/sessiz harfleri, hava durumu).
- MCMC: kendi zincirini kur, durağan dağılımı hedeflediğin dağılım.
“You can construct your own Markov chain that will converge to a distribution you’re interested in.” — Blitzstein, 23:19
32.7 Bu Dersin Özeti
- Markov özelliği: koşullu bağımsızlık.
- \(Q\): stokastik, satır toplamı 1.
- \(sQ^m\): \(m\) adım sonra.
- \(sQ = s\): durağan.
Markov zinciri: gelecek geçmişe yalnız şimdi üzerinden bağlı. Tüm davranış \(Q\)’da; kuvvetleri zamanı sarar; durağan \(sQ = s\) uzun-vade dengesi. MCMC, diffusion, RL (MDP), PageRank, n-gram, HMM — hepsi.
32.8 Kontrol Soruları
Cevap: Koşullu bağımsızlık (şimdi verildiğinde). \(X_n\) bilinmiyorsa \(X_{n-1}\) hala bilgi taşır.
Cevap: Her satır 1’e toplanır (negatif olmayan). Sütun toplamak zorunda değil.
Cevap: \(sQ^3\) dağılım; \((Q^3)_{ij}\) nokta olasılığı.
Cevap: Bir adım sonra dağılım değişmez → sonsuza dek \(s\). Özdeğer-1 sol özvektör.
32.9 Egzersizler
Egzersiz 1. Geçerli \(Q\)? (a) (.3,.7;.6,.4), (b) (.5,.5;.8,.3), (c) (1,0;.2,.8).
Egzersiz 2. \(Q=\) (.9,.1;.5,.5). \((Q^2)_{11}\)?
Egzersiz 3. \(s = (1, 0)\). \(sQ, sQ^2\) hangi yöne?
Egzersiz 4. Yukarıdaki Q için durağan dağılım çöz.
Egzersiz 5. (Python — Markov + durağan)
32.10 Sonraki Ders İçin Hazırlık
Ders 32: Markov Sınıflandırma + Tersinirlik — irreducibility, periyot, detailed balance (MCMC’nin temeli).
- Egzersizleri çöz.
- Durağan denklemi içselleştir.
32.11 Anahtar Kavramlar (Cheat Sheet)
| Kavram | Tanım | Not |
|---|---|---|
| Markov özelliği | \(P(X_{n+1}\|X_n, \ldots) = P(X_{n+1}\|X_n)\) | Geçmiş ⊥ gelecek | şimdi |
| \(q_{ij}\) | \(P(X_{n+1}=j \mid X_n=i)\) | Homojen |
| \(Q\) | \((q_{ij})\) | Satır toplamı 1 |
| Evrim | \(sQ\) | Satır vektörü |
| \(m\)-adım | \(sQ^m\), \((Q^m)_{ij}\) | Matris kuvveti |
| Durağan | \(sQ = s\) | Özdeğer-1 sol özvektör |
32.12 ML Bağlantıları Özeti
- MCMC → Metropolis-Hastings, Gibbs, HMC.
- Diffusion → ileri/geri zincir.
- RL (MDP) → Bellman, value iteration.
- PageRank → durağan dağılım.
- n-gram = \((n-1)\). Markov; Transformer kırar.
- HMM forward = \(sQ\).
Markov: gelecek yalnız şimdi üzerinden bağlı. \(Q\) davranışı, \(Q^n\) zaman, \(sQ = s\) uzun-vade. MCMC + diffusion + RL + PageRank hepsi.