import random
random.seed(0)
def kumar(i, N, p):
para = i
while 0 < para < N:
para += 1 if random.random() < p else -1
return para == N
i, N, p = 5, 10, 0.5
N_dene = 100_000
oran = sum(kumar(i, N, p) for _ in range(N_dene)) / N_dene
print(f"simülasyon: {oran:.4f} (teori i/N = {i/N})")8 Kumarbazın İflası ve Rastgele Değişkenler
First-step analysis, fark denklemi, Bernoulli, Binom
- Blitzstein’in videosu: YouTube — Lecture 7: Gambler’s Ruin and Random Variables (≈52 dk)
- Okuma süresi: ≈28 dk
8.1 Bu Derste Ne Var?
Koşullamadan kursun ikinci büyük temasına geçiş. Blitzstein’e göre dönemin iki büyük fikri koşullama ve rastgele değişkenler.
- Kumarbazın iflası: iki kumarbaz, $1’lık bahisler. First-step analysis + fark denklemi.
- Rastgele değişken: örnek uzaydaki sonuçları sayılara eşleyen bir fonksiyon.
- Bernoulli ve Binom — ilk iki önemli dağılım.
“the two most important ideas for the entire semester … conditioning and random variables and their distributions.” — Blitzstein, 0:23
- First-step analysis = Bellman denklemi. \(p_i = p \cdot p_{i+1} + q \cdot p_{i-1}\) özyinelemesi RL’deki value iteration’ın iskeleti.
- Random walk = SGD’nin gürültülü gezintisi; difüzyon ileri süreci; MCMC. Drift (\(p \ne q\)) = küçük biasın uzun ufukta nasıl biriktiği.
- Fark denklemi = linear RNN / karakteristik kök; vanishing/exploding olgusunun ayrık kardeşi.
- Rastgele değişken = verinin fonksiyonu. Feature, istatistik, loss — hepsi RV. Bernoulli = dropout maskesi / ikili etiket; Binom = başarı sayısı.
8.2 Kumarbazın İflası: Random Walk Olarak
İki kumarbaz A ve B, $1’lık bahisler oynar. Her turda A, \(p\) olasılıkla kazanır, \(q = 1 - p\) kaybeder. A elinde $\(i\), B elinde $\((N-i)\). Oyun biri iflas edene kadar.
Random walk olarak: parçacık \(i\)’de başlar, \(p\) ile sağa, \(q\) ile sola. \(0\) ve \(N\) yutucu durum (absorbing state).
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(7)
N = 20
i0 = 10
p = 0.5
def yol(i0, N, p, max_adim=500):
yol = [i0]
while 0 < yol[-1] < N and len(yol) < max_adim:
adim = 1 if np.random.random() < p else -1
yol.append(yol[-1] + adim)
return yol
fig, ax = plt.subplots(figsize=(11, 5))
for _ in range(10):
y = yol(i0, N, p)
sonuc = y[-1]
renk = '#2C5282' if sonuc == N else '#A51C30'
ax.plot(range(len(y)), y, color=renk, alpha=0.7, linewidth=1.5)
ax.axhline(0, color='#A51C30', linewidth=3, label='B iflas eşiği')
ax.axhline(N, color='#2C5282', linewidth=3, label='A kazanır eşiği')
ax.axhline(i0, color='#9CA3AF', linestyle=':', label=f'başlangıç i={i0}')
ax.set_xlabel('tur', fontsize=12)
ax.set_ylabel('A\'nın sermayesi', fontsize=12)
ax.set_title(f'Random walk: 10 ayrı kaçış, A=\\${i0}, N={N}, p=0,5', fontsize=12)
ax.legend(loc='upper right', fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_ylim(-1, N + 1)
plt.tight_layout()
plt.show()Random walk ML’in her yerinde: SGD parametre uzayında gürültülü yürüyüş; diffusion’ın ileri süreci; MCMC örnekleyiciler. “Yutucu durum” kavramı erken durdurma, mutlak bariyerler ve RL’de terminal state ile aynı sezgi.
8.3 First-Step Analysis: Fark Denklemi
\(p_i\) = A’nın $\(i\) ile başlayıp tüm oyunu kazanma olasılığı. İlk adıma koşulla (first-step analysis):
\[ p_i = p\,p_{i+1} + q\,p_{i-1}, \qquad 1 \le i \le N-1 \]
Sınır koşulları:
\[ p_0 = 0, \qquad p_N = 1 \]
“first step analysis.” — Blitzstein, 11:48
\(p_i = p \cdot p_{i+1} + q \cdot p_{i-1}\) denklemi, RL’deki Bellman denkleminin birebir iskeleti: bir durumun değeri = komşu durumların değerlerinin olasılıkla ağırlıklı ortalaması. First-step analysis = dinamik programlamada “bir adım aç, gerisini özyineleme bırak”. Value iteration ve TD öğrenmenin temeli.
8.4 Fark Denklemini Çözmek
Tahmin: \(p_i = x^i\). Denkleme koy, \(x^{i-1}\)’e böl:
\[ px^2 - x + q = 0 \]
\(q = 1 - p\) olduğundan \(1 - 4pq = (2p - 1)^2\). Kökler:
\[ x = 1, \qquad x = \frac{q}{p} \]
\(p \ne q\) için sınır koşullarıyla:
\[ p_i = \frac{1 - (q/p)^i}{1 - (q/p)^N} \]
Adil oyunda (\(p = q = 1/2\)), L’Hôpital:
\[ p_i = \frac{i}{N} \]
\(px^2 - x + q = 0\) bir karakteristik denklem. Doğrusal bir fark denklemini (ve linear RNN’i) köklerle çözmenin yolu budur. Köklerin büyüklüğü kararlılığı belirler: \(|\text{kök}| < 1\) söner, \(> 1\) patlar — kaybolan/patlayan gradyan olgusunun ayrık kardeşi.
8.5 Moral: Minik Bias Felakettir
Adil oyun (\(p = q\)): \(P(\text{A kazanır}) = i/N\) = sermaye payı.
Adaletsiz oyun: çarpıcı. Eşit başlangıçla (\(i = N/2\)) ve \(p = 0{,}49\) (turda %1 dezavantaj):
import numpy as np
import matplotlib.pyplot as plt
def p_kazanir(i, N, p):
if abs(p - 0.5) < 1e-12:
return i / N
q = 1 - p
return (1 - (q/p)**i) / (1 - (q/p)**N)
Ns = np.array([20, 50, 100, 200, 500])
p_degerler = [0.45, 0.49, 0.50, 0.51, 0.55]
fig, ax = plt.subplots(figsize=(10, 5))
renkler = ['#A51C30', '#DD6B20', '#1f2937', '#2C5282', '#15803d']
for p_val, c in zip(p_degerler, renkler):
sonuclar = [p_kazanir(N // 2, N, p_val) for N in Ns]
ax.plot(Ns, sonuclar, 'o-', linewidth=2.2, markersize=8, color=c, label=f'p = {p_val}')
ax.set_xscale('log')
ax.set_xlabel('Toplam para N (log)', fontsize=12)
ax.set_ylabel('P(A kazanır | i = N/2)', fontsize=12)
ax.set_title('Eşit başlangıç: minik bir dezavantaj N büyüdükçe felakete dönüşür',
fontsize=12)
ax.legend(loc='center right', fontsize=11, title='A\'nın tur başına kazanma olasılığı')
ax.grid(True, which='both', alpha=0.3)
ax.set_ylim(0, 1.05)
plt.tight_layout()
plt.show()Las Vegas’ta kasa hem daha çok paraya sahip (büyük \(N\)) hem oyunlar gerçekten hafifçe aleyhinedir.
Salınım yok: \(P(\text{A kazanır}) + P(\text{B kazanır}) = i/N + (N-i)/N = 1\). Oyunun sonsuza dek sürmesi olasılık 0.
“Minik bias uzun ufukta felaket” dersi: ML’de yansız (unbiased) kestiriciler ve dikkatli adım boyutlarının önemi. “Risk of ruin” sezgisi → bankroll yönetimi, Kelly kriteri, RL’de keşif/risk dengesi. Küçük sürekli dezavantajla yeterince uzun oynayan bir ajan neredeyse kesin iflas eder.
8.6 Rastgele Değişken Nedir?
Yaygın (ve işe yaramaz) tanım: “rastgele değerler alan değişken.” Doğru tanım: bir fonksiyon
\[ X : S \to \mathbb{R} \]
Deneyin her sonucu \(s\)’yi bir sayıya eşler. Deneyin bir yönünün sayısal özeti.
“the idea is that we should think of a random variable just as a numerical summary … of an aspect of the experiment.” — Blitzstein, 41:08
Rastlantı deneyden gelir: deneyi yaparız, \(s\) gözleriz, \(X\) onu bir sayıya götürür.
“RV = (rastgele) verinin fonksiyonu” tanımı ML’in temelini netleştirir: bir feature, bir istatistik, hatta loss \(L(\theta; \text{batch})\) bile rastgele girdinin fonksiyonudur — birer rastgele değişkendir. “Loss bir RV’dir” demek, onun beklenen değeri ve varyansı hakkında düşünebilmenin (sonraki dersler) anahtarıdır.
8.7 Bernoulli ve Binom Dağılımları
Bernoulli(\(p\)). En basit RV: yalnızca \(0\) ve \(1\). \(P(X = 1) = p\), \(P(X = 0) = 1 - p\).
Binom(\(n, p\)). \(n\) bağımsız Bernoulli(\(p\)) denemesindeki başarı sayısı. PMF:
\[ P(X = k) = \binom{n}{k}\, p^k\, (1-p)^{n-k}, \qquad k = 0, 1, \ldots, n \]
Nereden geliyor? \(k\) başarı + \(n-k\) başarısızlık içeren belirli bir dizinin olasılığı \(p^k(1-p)^{n-k}\); başarıların yerini seçmenin \(\binom{n}{k}\) yolu var.
Kapanış özelliği (bağımsız binomlar):
\[ X \sim \text{Bin}(n, p), \;\; Y \sim \text{Bin}(m, p) \;\;\text{bağımsız} \;\Rightarrow\; X + Y \sim \text{Bin}(n+m, p) \]
Story proof: \(n + m\) bağımsız Bernoulli(\(p\)) denemesi → toplam başarı \(X + Y \sim \text{Bin}(n+m, p)\).
import math
import numpy as np
import matplotlib.pyplot as plt
n = 20
ps = [0.2, 0.4, 0.5, 0.7]
ks = np.arange(0, n + 1)
fig, ax = plt.subplots(figsize=(10, 5))
renkler = ['#A51C30', '#DD6B20', '#1f2937', '#2C5282']
for p, c in zip(ps, renkler):
pmf = [math.comb(n, k) * p**k * (1 - p)**(n - k) for k in ks]
ax.plot(ks, pmf, 'o-', linewidth=2, markersize=7, color=c, label=f'p = {p}')
ax.set_xlabel('k (başarı sayısı)', fontsize=12)
ax.set_ylabel('P(X = k)', fontsize=12)
ax.set_title(f'Binom(n=20, p) PMF — p değiştikçe tepe konumu np civarında kayar',
fontsize=12)
ax.legend(loc='upper right', fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_xticks(ks[::2])
plt.tight_layout()
plt.show()Bernoulli = dropout maskesi (her birim \(p\) olasılıkla tutulur), ikili sınıf etiketi, gösterge değişkeni. Binom = başarı sayısı; Binom/Bernoulli’nin log-olabilirliği tam olarak binary cross-entropy loss’tur. Bağımsız binomların toplamının kapalılığı, iki batch’in başarı sayımlarını birleştirmek gibi pratik durumlarda işine yarar — Ders 2 Vandermonde’un olasılıksal yüzü.
8.8 Bu Dersin Özeti
- Kumarbazın iflası: A $\(i\), B $\((N-i)\). Random walk (\(0, N\) yutucu).
- First-step analysis: \(p_i = p \cdot p_{i+1} + q \cdot p_{i-1}\); \(p_0 = 0, p_N = 1\).
- Çözüm: \(p_i = x^i\) → kökler \(1\) ve \(q/p\). \(p \ne q\): \(p_i = (1 - (q/p)^i)/(1 - (q/p)^N)\); \(p = q\): \(p_i = i/N\).
- Moral: adil oyunda kazanma = sermaye payı; minik dezavantaj büyük \(N\)’de felaket. Salınım olasılığı 0.
- Rastgele değişken: fonksiyon \(X: S \to \mathbb{R}\); deneyin sayısal özeti.
- Bernoulli(\(p\)): \(\{0, 1\}\). Binom(\(n, p\)): \(n\) bağımsız Bernoulli’de başarı sayısı; bağımsız toplam yine Binom.
Bir adıma koşullayıp özyineleme bırakmak (first-step analysis) kumarbazın iflasını bir fark denklemine indirger; rastgele değişken örnek uzayı sayılara eşleyen bir fonksiyon olarak, önümüzdeki tüm dağılım dünyasını açar.
8.9 Kontrol Soruları
Cevap: \(p_i = i/N\). \(i = 30, N = 40 \to 30/40 = \mathbf{3/4}\). Adil oyunda kazanma = sermaye payı.
Cevap: Aynı yapı: durumun değeri = komşu değerlerin geçiş olasılıklarıyla ağırlıklı ortalaması. First-step analysis = value iteration + TD. Sınır koşulları terminal state değerlerine karşılık.
Cevap: \(X \sim \text{Bin}(10, 1/2)\). \(P(X = 3) = \binom{10}{3}/2^{10} = 120/1024 \approx \mathbf{0{,}117}\).
Cevap: Her nöron Bernoulli(\(p\)), bağımsız. Aktif sayı = toplam = \(\text{Binom}(n, p)\). Beklenen aktif \(np\) (sonraki ders).
8.10 Egzersizler
Egzersiz 1. Adil oyun: A=$1, B=$9. A kazanma olasılığı? Sonucun küçüklüğüne dikkat.
Egzersiz 2. Adaletsiz: \(p = 0{,}6\), A=$5, N=10. \(q/p = 2/3\), formülü kullan.
Egzersiz 3. Zar atışı + \(X\) = atılan sayının karesi. (a) \(S\)? (b) \(X\) her sonucu neye eşler? (c) \(X\) değerleri kümesi?
Egzersiz 4. (Python — kumarbazın iflası simülasyonu)
Egzersiz 5. (Sonraki ders) Binom PMF toplamının \(1\) olduğunu binom teoremiyle göster: \(\sum_k \binom{n}{k} p^k (1-p)^{n-k} = (p + (1-p))^n = 1\).
8.11 Sonraki Ders İçin Hazırlık
Ders 8: Rastgele Değişkenler ve Dağılımları
PMF ve CDF, hipergeometrik dağılım, RV bağımsızlığı.
- Egzersizleri çöz — özellikle 4 (kumar simülasyon).
- “First-step analysis = Bellman” + “RV = fonksiyon” sezgilerini pekiştir.
- Ana cümleyi tekrar oku: “Bir adıma koşullayıp özyineleme bırakmak…”
8.12 Anahtar Kavramlar (Cheat Sheet)
| Kavram | Tanım | Blitzstein’de |
|---|---|---|
| Kumarbazın iflası | A $\(i\), B $\((N-i)\); kazanma olasılığı | 2m42 |
| Random walk | \(0\) ve \(N\) yutucu durum | 7m43 |
| First-step analysis | İlk tura koşulla → özyineleme | 11m48 |
| Fark denklemi | \(p_i = p \cdot p_{i+1} + q \cdot p_{i-1}\) | 15m52 |
| Çözüm (\(p \ne q\)) | \((1 - (q/p)^i)/(1 - (q/p)^N)\) | 24m04 |
| Çözüm (\(p = q\)) | \(i/N\) | 26m56 |
| Rastgele değişken | \(X: S \to \mathbb{R}\) fonksiyon | 39m55 |
| Bernoulli(\(p\)) | \(\{0, 1\}, P(X=1)=p\) | 43m06 |
| Binom(\(n, p\)) | \(\binom{n}{k} p^k (1-p)^{n-k}\) | 46m01 |
| PMF | \(P(X = k)\); ayrık dağılım tarifi | 49m49 |
| Binom toplamı | Bin(\(n,p\)) + Bin(\(m,p\)) = Bin(\(n+m,p\)) | 50m47 |
8.13 ML Bağlantıları Özeti
- First-step analysis → Bellman denklemi, value iteration, TD.
- Random walk → SGD, diffusion ileri süreci, MCMC.
- Fark denklemi → linear RNN, karakteristik kök, vanishing/exploding.
- Minik bias birikir → yansız kestirici, Kelly, risk of ruin.
- RV = veri fonksiyonu → feature, istatistik, loss birer RV.
- Bernoulli → dropout, ikili etiket, binary cross-entropy.
- Binom → başarı sayısı, batch birleştirme, Vandermonde olasılıksal yüzü.
Zor bir özyinelemeli problemi ilk adıma koşullayarak bir fark denklemine indir (Bellman’ın atası); rastgele değişkeni “değer alan değişken” değil, örnek uzayı sayılara eşleyen bir fonksiyon olarak gör.