---
title: "Olasılık ve Sayma"
subtitle: "Belirsizlik nasıl sayılır: örnek uzay, naif tanım, çarpma kuralı, binom"
---
::: {.callout-note title="Bölüm bilgisi"}
- **Blitzstein'in videosu:** [YouTube — Lecture 1: Probability and Counting](https://www.youtube.com/watch?v=KbB0FjPg0mw) (≈46 dk)
- **Kaynak:** [Stat 110 ana sayfası](https://stat110.net) — Joe Blitzstein, Harvard
- **Okuma süresi:** ≈25 dk
:::
## Bu Derste Ne Var? {#sec-bu-derste}
Bu, kursun ilk gerçek konu dersi. Blitzstein iki şey kuruyor: (1) olasılığın **ne** olduğu — yani belirsizliği nasıl sayıya çeviririz, ve (2) bunu hesaplayabilmek için ihtiyacımız olan ilk araç — **sayma (counting)**.
**Üç temel fikir:**
1. **Örnek uzay ve olay** — bir deneyin tüm olası sonuçlarının kümesi (örnek uzay) ve ilgilendiğimiz sonuç alt-kümesi (olay).
2. **Olasılığın naif tanımı** — "lehte sonuç / toplam sonuç". Basit ama iki güçlü varsayıma dayanıyor: tüm sonuçlar eşit olası ve sonlu sayıda.
3. **Sayma** — naif tanımın payını ve paydasını bulabilmek için çarpma kuralı, binom katsayısı ve örnekleme tablosu.
```{mermaid}
%%| label: fig-concept-map
%%| fig-cap: "Ders 1'in kavram haritası: örnek uzay → naif tanım → sayma araçları"
flowchart LR
A["🎲 Deney"] --> B["Örnek Uzay S<br/>(tüm sonuçlar)"]
B --> C["Olay A ⊆ S<br/>(ilgilenilen alt-küme)"]
C --> D["💡 Naif Tanım<br/>P(A) = |A| / |S|"]
D --> E["Saymak gerek!"]
E --> F["Çarpma Kuralı<br/>n₁ · n₂ · ⋯ · nᵣ"]
F --> G["Binom Katsayısı<br/>C(n,k) = n! / (n−k)!k!"]
G --> H["📊 Örnekleme Tablosu<br/>(2×2 = 4 hücre)"]
style A fill:#fdf2f8,stroke:#A51C30,stroke-width:2px
style D fill:#fff7ed,stroke:#DD6B20,stroke-width:2px
style H fill:#eef2ff,stroke:#6B46C1,stroke-width:3px
```
> *"Math is the logic of certainty, statistics is the logic of uncertainty."* — Blitzstein, 14:12
::: {.callout-tip title="Builder Notu — ML Köprüleri"}
- **Softmax çıktısı = olasılık dağılımı.** Örnek uzay = sınıflar, $P(\text{sınıf} \mid \text{girdi})$.
- **Cross-entropy loss** = $-\log P(\text{doğru etiket})$. Olasılığı maksimize etmek = loss'u minimize etmek (MLE).
- **Generative modeller** (LLM, diffusion, VAE) doğrudan olasılık dağılımı öğrenir ve ondan örnekler üretir.
- **Saymanın disiplini** = kombinatorik patlama. Bir LLM neden bütün cümleleri tek tek deneyemiyor: $V^L$ olası dizi var. Bu yüzden örnekleme, beam search, MCMC.
- Tek cümle: **olasılık, bir modelin "emin değilim ama şu kadar eminim" demesinin matematiğidir.**
:::
## Olasılık Nereye Uygulanır? Belirsizliğin Mantığı {#sec-uygulamalar}
Blitzstein dersin başında olasılığın nerelerde kullanıldığını sıralıyor — fizik (kuantum mekaniği baştan sona olasılık), genetik, ekonomi/ekonometri, oyun teorisi. Sonra daha az bariz örnekler: **tarih**. Mosteller ve Wallace, *The Federalist Papers*'ın (ABD Anayasası'nın onaylanmasıyla ilgili kritik metinler) tartışmalı yazarlığını **Bayes kuralıyla** çözmeye çalıştı — kim hangi makaleyi yazdı sorusunu olasılıkla yanıtladılar.
Olasılığın tarihsel kökü ise **kumar**. Konu buradan doğdu:
- 1650'lerin ortasında **Fermat** ve **Pascal**, kumar oyunlarını analiz eden uzun mektuplar yazıştılar. O zamana kadar kimse bu kuralları matematiksel türetmemişti — ikisi mektuplaşarak olasılık teorisini sıfırdan kurdular.
- **Isaac Newton**'a bile kumarbazlar zar soruları soruyordu, çünkü o devirde olasılığı bilen başka kimse yoktu. İlginç olan: Newton hesabı doğru yaptı ama **sezgisi** bir zar probleminde yanıldı.
Bu son nokta dersin ruhunu veriyor: olasılık **derinden sezgi-karşıtı**. Newton'ın bile sezgisi yanılabiliyorsa, bizimki de yanılacak — bu yüzden işi matematiksel kesinliğe bağlamak zorundayız.
> *"we're going to do a lot of things that are deeply, deeply counterintuitive to almost everyone. ... to me, that makes this more fun than calculus."* — Blitzstein, 19:03
İstatistik, kalkülüsten farklı olarak insanı şaşırtır. Blitzstein'in özlü tanımı: matematik kesinliğin mantığı, istatistik belirsizliğin mantığı. Herkesin belirsizliği vardır; olasılık ve istatistik, inançlarımızı **niceliklendirme** ve **güncelleme** yöntemidir.
::: {.callout-tip title="Builder Notu — İnanç Güncelleme"}
"İnançları güncelleme" ifadesini aklında tut — bu, birazdan göreceğin **Bayes kuralının** tam tanımı ve modern Bayesian ML'in (posterior güncelleme, belief propagation) çekirdeği. Mosteller-Wallace'ın 1960'larda yazar tespiti için yaptığı şey, bugün bir spam filtresinin (naive Bayes) yaptığıyla matematiksel olarak aynı: metin kanıtından yazar/sınıf olasılığını güncellemek. **Diffusion** modellerin ters adımı da bir Bayes güncellemesi: gürültülü görüntü $x_t$ verildiğinde temiz $x_0$'ın posterior'ı.
:::
## Örnek Uzay ve Olay {#sec-ornek-uzay}
Olasılığı tanımlamadan önce iki kavram gerekiyor.
**Örnek uzay (sample space)**, bir deneyin tüm olası sonuçlarının kümesidir. Blitzstein "deney" kelimesini olabildiğince geniş yorumlamamızı istiyor — herhangi bir süreç, yeter ki farklı olası sonuçları olsun ve hangisinin gerçekleşeceğini önceden bilmeyelim.
> *"you should interpret the word experiment in an extremely broad manner. ... as long as there are certain possible outcomes."* — Blitzstein, 15:28
Örnek uzayı genelde büyük $S$ harfiyle gösteririz. Bir parayı iki kez attığımız deneyde örnek uzay dört sonuçtan oluşur (H = yazı/heads, T = tura/tails — Blitzstein'in notasyonunu koruyoruz):
$$
S = \{HH,\ HT,\ TH,\ TT\}
$$
**Olay (event)**, örnek uzayın bir **alt-kümesidir**. Yani ilgilendiğimiz sonuçların bir koleksiyonu. "Her iki atış da tura" olayı:
$$
A = \{TT\}, \quad A \subseteq S
$$
> *"An event is a subset of the sample space."* — Blitzstein, 16:33
Olasılık teorisinin matematiksel bir konu olabilmesini sağlayan büyük atılım tam da buydu: olayları **küme** olarak düşünmek. Bundan önce insanlar olasılık problemlerini sezgiyle çözmeye çalışıyordu ve çoğu sezgisel kural yanlış çıkıyordu. Kümeler (birleşim $\cup$, kesişim $\cap$, tümleyen) sayesinde "$A$ olayı **veya** $B$ olayı", "$A$ **ve** $B$" gibi sezgisel ifadeler kesin matematiğe dönüştü. Bu kursta çok sayıda **Venn diyagramı** göreceksin.
```{python}
#| label: fig-venn-iki-para
#| fig-cap: "İki para atışının örnek uzayı $S = \\{HH, HT, TH, TT\\}$ ve üç ilginç olay: $A$ = ilk atış tura, $B$ = ikinci atış tura, $A \\cap B$ = her ikisi tura."
#| fig-width: 11
#| fig-height: 4.5
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle, Circle, FancyBboxPatch
fig, axes = plt.subplots(1, 3, figsize=(11, 4.5))
# Sol: tüm sonuçlar grid'i
ax = axes[0]
sonuclar = [('HH', 0, 1), ('HT', 1, 1), ('TH', 0, 0), ('TT', 1, 0)]
for s, x, y in sonuclar:
ax.add_patch(Rectangle((x, y), 0.95, 0.95, facecolor='#fef3c7',
edgecolor='#A51C30', linewidth=2))
ax.text(x + 0.475, y + 0.475, s, ha='center', va='center',
fontsize=18, weight='bold', color='#6B0E1B')
ax.set_xlim(-0.1, 2.05); ax.set_ylim(-0.1, 2.05)
ax.set_aspect('equal'); ax.set_title('Örnek uzay $S$ — 4 eşit-olası sonuç', fontsize=11)
ax.set_xticks([]); ax.set_yticks([])
for sp in ax.spines.values(): sp.set_visible(False)
# Orta: A = ilk T (TH, TT)
ax = axes[1]
for s, x, y in sonuclar:
renk = '#fb923c' if s.startswith('T') else '#f3f4f6'
kenar = '#c2410c' if s.startswith('T') else '#9ca3af'
ax.add_patch(Rectangle((x, y), 0.95, 0.95, facecolor=renk,
edgecolor=kenar, linewidth=2))
ax.text(x + 0.475, y + 0.475, s, ha='center', va='center',
fontsize=18, weight='bold')
ax.set_xlim(-0.1, 2.05); ax.set_ylim(-0.1, 2.05)
ax.set_aspect('equal')
ax.set_title('Olay $A$ = ilk atış T\n$|A| = 2$, $P(A) = 2/4 = 1/2$', fontsize=11)
ax.set_xticks([]); ax.set_yticks([])
for sp in ax.spines.values(): sp.set_visible(False)
# Sağ: A ∩ B = TT
ax = axes[2]
for s, x, y in sonuclar:
if s == 'TT':
renk, kenar = '#dc2626', '#7f1d1d'
elif s.startswith('T') or s.endswith('T'):
renk, kenar = '#fed7aa', '#9a3412'
else:
renk, kenar = '#f3f4f6', '#9ca3af'
ax.add_patch(Rectangle((x, y), 0.95, 0.95, facecolor=renk,
edgecolor=kenar, linewidth=2))
ax.text(x + 0.475, y + 0.475, s, ha='center', va='center',
fontsize=18, weight='bold',
color='white' if s == 'TT' else 'black')
ax.set_xlim(-0.1, 2.05); ax.set_ylim(-0.1, 2.05)
ax.set_aspect('equal')
ax.set_title('$A \\cap B$ = her iki atış T\n$|A \\cap B| = 1$, $P = 1/4$', fontsize=11)
ax.set_xticks([]); ax.set_yticks([])
for sp in ax.spines.values(): sp.set_visible(False)
plt.tight_layout()
plt.show()
```
::: {.callout-tip title="Builder Notu — Destek ve State Space"}
Örnek uzay, bir olasılık dağılımının **desteği (support)** ile aynı kavram. Bir dil modelinde örnek uzay = **sözlük (vocabulary)**; bir sonraki token'ın olası tüm değerleri. "Olay" ise bu sözlüğün bir alt-kümesi — örneğin "üretilen token bir noktalama işareti" bir olaydır. RL'de örnek uzayın karşılığı **state space**'tir. Olayları küme işlemleriyle birleştirme alışkanlığı, ileride birleşik / koşullu olasılıkları (joint / conditional) doğru kurmanın temeli.
:::
## Olasılığın Naif Tanımı {#sec-naif-tanim}
Artık olasılığı tanımlayabiliriz. Tüm kurs boyunca büyük $P$ harfi "olasılık" demektir: $P(A)$, yani "$A$ olayının olasılığı".
Naif tanım şöyle der: bir $A$ olayının olasılığı, $A$'ya **lehte (favorable)** sonuçların sayısının, **toplam** olası sonuç sayısına oranıdır.
$$
P(A) = \frac{|A|}{|S|}
$$
Burada $|A|$ = $A$'ya lehte sonuç sayısı ($A$ kümesinin eleman sayısı), $|S|$ = örnek uzaydaki toplam sonuç sayısı. Pay "kaç tanesi istediğimiz şey", payda "toplam kaç olasılık var".
**Örnek:** parayı iki kez at. Örnek uzay $S = \{HH, HT, TH, TT\}$, yani $|S| = 4$. "Her iki atış da tura" olayı $A = \{TT\}$, yani $|A| = 1$. O hâlde:
$$
P(A) = \frac{1}{4}
$$
Bu, lisede gördüğün olasılık tanımının ta kendisi: kaç olasılık var say, kaçı istediğin durum say, böl.
> *"we just count how many of those happen, divide by a number of things, that's it. That's the naive definition."* — Blitzstein, 24:34
::: {.callout-tip title="Builder Notu — Uniform = Maksimum Entropi"}
Naif tanım aslında **sonlu bir küme üzerindeki düzgün (uniform) dağılımdır** — her sonuca eşit ağırlık. Bilgi-teorik olarak bu, "elimde sadece sonlu sonuç var, başka hiçbir şey bilmiyorum" durumunun **maksimum entropili** dağılımıdır. ML'de karşılığı: bir sınıflandırıcıyı eğitmeye başlamadan önceki **uniform prior**, ya da rastgele tahmin eden **baseline** (10 sınıf varsa şans seviyesi 1/10). Payı/paydayı sayarak olasılık bulmak, dağılım gerçekten uniform olduğunda yapılan **kesin (exact) çıkarımdır** — Monte Carlo gibi yaklaşıklığa gerek kalmaz.
:::
## Naif Tanımın İki Varsayımı (ve Nerede Çöker) {#sec-varsayimlar}
Naif tanım bedava değil. İki güçlü varsayıma yaslanır:
1. **Tüm sonuçlar eşit olası.**
2. **Sonlu sayıda sonuç var** — yoksa payda sonsuz olur ve oran anlamını yitirir.
> *"It assumes that all outcomes are equally likely. ... it also assumes that there are finitely many outcomes."* — Blitzstein, 24:48
Birinci varsayım ne zaman makul? **Simetri** olduğunda. Altı yüzü simetrik bir zar atıyorsan, her yüzün $1/6$ olması mantıklı. Ama zar **hileli (loaded)** ise — bir tarafa ağırlık verilmişse — eşit olasılık varsayımı çöker. Yani "eşit olası" bedava bir varsayım değil; onu **gerekçelendirmen** gerekir (genelde simetriyle).
Gerekçesiz uygulanırsa naif tanım saçmalığa götürür. Blitzstein'in klasik örneği: "Neptün'de yaşam olma olasılığı nedir? Ya vardır ya yoktur, iki olasılık, demek ki $1/2$."
> *"either there is or there isn't, that's two possibilities. ... so it'd be 1/2."* — Blitzstein, 26:19
Bu açıkça saçma. Daha da kötüsü: "Neptün'de **akıllı** yaşam olma olasılığı?" Yine ya vardır ya yoktur → $1/2$. Oysa akıllı yaşam, herhangi bir yaşamdan **kesinlikle daha az olası** olmalı (akıllı yaşam $\subseteq$ yaşam). Naif tanım bu kesin eşitsizliği yakalayamıyor — çünkü "iki seçenek var" demek onları eşit olası yapmaz.
Ders bu yüzden hızla naif tanımın ötesine geçecek. Ama naif tanım hâlâ önemli: hem konunun tarihsel doğuşu, hem de simetrinin geçerli olduğu (zar, kart, yazı-tura) bir sürü problemde doğru araç.
::: {.callout-important title="Builder Notu — Base-Rate Neglect"}
"Eşit olası varsayımı gerekçe ister" dersi, ML'de **uniform prior'ın tehlikesidir**. Neptün safsatası = kendi uydurduğun bir bölümleme üzerine uniform dağılım dayatmak. Pratik karşılığı: sınıflar dengesizken (örneğin %1 dolandırıcılık) modelin uniform sınıf prior'ı varsayması onu **kalibrasyonsuz** yapar — gerçek **base rate**'i veriden öğrenmen gerekir. "İki seçenek var, demek ki 1/2" hatası, naive sınıflandırıcıları vuran **base-rate neglect**'in ta kendisidir; Bayesian prior tam da bunu düzeltir. Kısaca: dağılımları **varsayma**, veriden **öğren**.
:::
## Neden Saymak? Çarpma Kuralı {#sec-carpma-kurali}
Naif tanımda payı ve paydayı bulmak için sonuçları saymamız gerekiyor. Dört sonuçlu para örneğini elle yazdık, ama gerçek problemlerde sonuçları tek tek listelemek imkânsız hâle gelir. Bu yüzden Blitzstein kursun ilk büyük teknik konusunu sayma olarak koyuyor:
> *"the first major topic in this class is, how do we count?"* — Blitzstein, 28:20
İlk ve en temel araç **çarpma kuralı (multiplication rule)**. Kural şöyle: bir deney sırayla $r$ aşamadan oluşuyorsa ve
- Aşama 1'de $n_1$ olası sonuç,
- her Aşama 1 sonucu için Aşama 2'de $n_2$ olası sonuç,
- ve önceki aşamalardan bağımsız olarak Aşama $r$'de $n_r$ olası sonuç varsa,
birleşik deneyin toplam sonuç sayısı bu çarpımdır:
$$
n_1 \times n_2 \times \cdots \times n_r
$$
Blitzstein'in dondurma örneği bunu somutlaştırır: 3 çeşit (çikolata, vanilya, çilek) ve 2 tip külah (kek, waffle). Kaç seçenek var? Bir **ağaç diyagramı** çiz — önce külah dalı 2'ye ayrılır, sonra her dal çeşit için 3'e ayrılır: $2 \times 3 = 6$. Önce çeşidi seçsen de sonuç değişmez: $3 \times 2 = 6$.
```{mermaid}
%%| label: fig-agac-dondurma
%%| fig-cap: "Dondurma ağacı: 2 külah × 3 çeşit = 6 sonuç. Hangi sırayla seçtiğin önemsiz."
flowchart TD
Root["🍦 Dondurma seç"]
Root --> K1["Kek külah"]
Root --> K2["Waffle külah"]
K1 --> CC1["Çikolata"]
K1 --> CV1["Vanilya"]
K1 --> CS1["Çilek"]
K2 --> CC2["Çikolata"]
K2 --> CV2["Vanilya"]
K2 --> CS2["Çilek"]
style Root fill:#fdf2f8,stroke:#A51C30,stroke-width:2px
```
> *"once you understand this example completely, then all this stuff I wrote here becomes obvious."* — Blitzstein, 32:17
Kritik sezgi: bu çarpımlar **üstel** hızla büyür. Her adımda 2 seçenek ve 10 adım olsa $2^{10} = 1024$ sonuç eder. İşte bu yüzden sonuçları elle listelemek umutsuz — saymanın kurallarına ihtiyacımız var.
```{python}
#| label: fig-ustel-buyume
#| fig-cap: "Çarpma kuralı üstel büyür. Her adımda $V$ seçenek ve $L$ adım olunca $V^L$ olası dizi. Bir LLM'de $V \\approx 50{,}000$, $L = 50$ token → $50000^{50}$ ≈ $10^{234}$ dizi. Bütünü deneyemezsin."
#| fig-width: 9
#| fig-height: 5
import numpy as np
import matplotlib.pyplot as plt
L = np.arange(1, 21)
fig, ax = plt.subplots(figsize=(9, 5))
for V, color, label in [(2, '#fb923c', 'Yazı-tura: $V=2$'),
(6, '#A51C30', 'Zar: $V=6$'),
(52, '#2C5282', 'Kart: $V=52$'),
(1000, '#6B46C1', 'Mini sözlük: $V=1000$')]:
ax.semilogy(L, V**L.astype(float), 'o-', color=color, linewidth=2.2,
markersize=7, label=label)
ax.set_xlabel('Adım sayısı $L$', fontsize=12)
ax.set_ylabel('Toplam dizi sayısı $V^L$ (log ölçek)', fontsize=12)
ax.set_title('Kombinatorik patlama — çarpma kuralı üstel hızda büyür',
fontsize=12)
ax.legend(loc='lower right', fontsize=10)
ax.grid(True, which='both', alpha=0.3)
ax.set_xticks(np.arange(1, 21, 2))
plt.tight_layout()
plt.show()
```
::: {.callout-tip title="Builder Notu — Zincir Kuralı ve Beam Search"}
Çarpma kuralı, olasılığın **zincir kuralının (chain rule)** iskeletidir:
$$p(x_1, \ldots, x_n) = p(x_1) \cdot p(x_2 \mid x_1) \cdots p(x_n \mid x_1, \ldots, x_{n-1})$$
Bir **autoregressive dil modeli** tam da budur — her token bir aşama, sözlük boyutu $V$ kadar seçenek; $L$ token'lık bir dizi için $V^L$ olası dizi vardır. Bu kombinatorik patlama modern üretimin neden **bütün dizileri deneyemediğini** ve neden örnekleme / beam search yaptığını açıklar. Blitzstein'in ağaç diyagramı, beam search'ün gezdiği **arama ağacının** ta kendisidir.
:::
## Binom Katsayısı {#sec-binom}
Çarpma kuralından çıkan en önemli sayma aracı **binom katsayısı**: "$n$'den $k$ seç". $n$ nesneden, **sırası önemsiz** olacak şekilde $k$ tanesini seçmenin kaç yolu olduğunu verir.
$$
\binom{n}{k} = \frac{n!}{(n-k)!\, k!}
$$
($k > n$ ise tanım gereği $0$'dır — 10 kişiden 11 tanesini seçemezsin.)
> *"We'll be seeing a lot of these in this course, those are called a binomial coefficient."* — Blitzstein, 36:01
**Bu formül nereden geliyor?** Doğrudan çarpma kuralından. Önce $n$ kişiden $k$ tanesini **sıralı** seçtiğimizi düşün: ilki için $n$, ikincisi için $n-1$, üçüncüsü için $n-2$ seçenek… $k$. seçim için $n-k+1$ seçenek:
$$
n (n-1)(n-2) \cdots (n-k+1)
$$
Ama biz sırayı umursamıyoruz. Aynı $k$ kişilik grubu $k!$ farklı sırada seçebilirdik — yani her grubu $k!$ kez fazladan saydık. Bu fazlalığı düzeltmek için $k!$'e böleriz:
$$
\binom{n}{k} = \frac{n (n-1) \cdots (n-k+1)}{k!} = \frac{n!}{(n-k)!\, k!}
$$
İki ifade aynıdır: faktöriyelleri açıp sadeleştirirsen $(n-k)!$ kısmı iptal olur ve ortadaki çarpım kalır.
```{python}
#| label: fig-pascal
#| fig-cap: "Pascal üçgeni: her hücre $\\binom{n}{k}$. Yatay simetri $\\binom{n}{k} = \\binom{n}{n-k}$ ve toplam $\\sum_k \\binom{n}{k} = 2^n$ (her satırın toplamı bir sonraki $2$'nin kuvveti)."
#| fig-width: 11
#| fig-height: 5.5
import math
import matplotlib.pyplot as plt
import numpy as np
N = 10 # 0..10 satır
fig, ax = plt.subplots(figsize=(11, 5.5))
ust_max = math.comb(N, N//2)
for n in range(N + 1):
for k in range(n + 1):
c = math.comb(n, k)
# üçgen yerleştirme
x = k - n/2
y = -n
renk_yogunluk = c / ust_max
ax.add_patch(plt.Circle((x, y), 0.40,
facecolor=plt.cm.OrRd(0.2 + 0.7*renk_yogunluk),
edgecolor='#6B0E1B', linewidth=0.8))
ax.text(x, y, str(c), ha='center', va='center',
fontsize=10 if c < 1000 else 8,
color='white' if renk_yogunluk > 0.55 else '#6B0E1B',
weight='bold')
ax.set_xlim(-N/2 - 1, N/2 + 1)
ax.set_ylim(-N - 1, 1)
ax.set_aspect('equal')
ax.set_title('Pascal üçgeni — C(n, k) değerleri (renk yoğunluğu = büyüklük)',
fontsize=12)
ax.set_xticks([]); ax.set_yticks([])
for s in ax.spines.values(): s.set_visible(False)
# Satır toplamı annotation
for n in [3, 5, 7, 10]:
ax.annotate(f'satır toplamı = $2^{{{n}}}$ = {2**n}',
xy=(N/2 + 0.5, -n), xytext=(N/2 + 0.7, -n),
fontsize=9, color='#6B0E1B', va='center')
plt.tight_layout()
plt.show()
```
::: {.callout-tip title="Builder Notu — Alt-Küme Sayma"}
Binom katsayısı "kaç farklı alt-küme" sorusunun cevabıdır. **Dropout**'ta her adımda hangi nöronları söndüreceğini seçmek bir alt-küme seçimidir; $n$ nöronun $k$ tanesini söndürmenin $\binom{n}{k}$ yolu vardır. Olası konfigürasyonları sayma, istatistiksel fizikteki **partition function** ve bilgi teorisindeki entropi hesaplarının temelidir. Ayrıca binom katsayıları, **binom dağılımının** ($n$ bağımsız denemede $k$ başarı olasılığı) çekirdeğidir — onu [Ders 8](08-rd-dagilimlari.qmd)'de göreceğiz.
:::
## Worked Example: Poker'de Full House {#sec-full-house}
Naif tanımı gerçek bir problemde çalıştıralım. 52 kartlık standart desteden 5 kart çekiyorsun ve deste tam karılmış, yani **tüm 5'li eller eşit olası** (simetri var, naif tanım meşru). Bir **full house**, üç tanesi bir değerden (rank), iki tanesi başka bir değerden olan eldir — örneğin üç tane 7 ve iki tane 10.
Naif tanım: payda = olası el sayısı, pay = full house el sayısı.
**Payda:** 52 karttan 5 kart seçmenin yolu, sıra önemsiz:
$$
\binom{52}{5}
$$
**Pay (ağaç gibi düşün, çarpma kuralı):**
- Üç tanesine sahip olduğumuz değeri seç: 13 olasılık (as, 2, …, papaz).
- O değerin 4 kartından 3'ünü seç: $\binom{4}{3}$.
- İki tanesine sahip olduğumuz değeri seç: ilk değer hariç 12 olasılık.
- O değerin 4 kartından 2'sini seç: $\binom{4}{2}$.
Hepsini çarpma kuralıyla birleştir:
$$
P(\text{full house}) = \frac{13 \cdot \binom{4}{3} \cdot 12 \cdot \binom{4}{2}}{\binom{52}{5}}
$$
Sayıları koyalım: $\binom{4}{3} = 4$, $\binom{4}{2} = 6$, yani pay $= 13 \cdot 4 \cdot 12 \cdot 6 = 3744$. Payda $\binom{52}{5} = 2{,}598{,}960$. Sonuç $\approx 0{,}00144$ — yani yaklaşık her 694 elde bir full house.
> *"it helps to think in terms of the tree — think in terms of the multiplication rule."* — Blitzstein, 40:59
Blitzstein'in vurgusu: başka doğru yollar da var, ama ağaç/çarpma kuralı üzerinden düşünmek daha **yapısal** ve hata yapma olasılığın daha düşük.
```{python}
#| label: fig-poker
#| fig-cap: "Poker el olasılıkları log ölçekte. Full house (kırmızı) $\\approx 0{,}144\\%$, four-of-a-kind ondan altı kat daha nadir. Royal flush 0,00015%."
#| fig-width: 10
#| fig-height: 5.5
import matplotlib.pyplot as plt
import numpy as np
import math
# Standart poker el sayıları (sıra önemsiz, 5 kartlık eller)
eller = [
('Royal Flush', 4),
('Straight Flush', 36),
('Four of a Kind', 624),
('Full House', 3744),
('Flush', 5108),
('Straight', 10200),
('Three of a Kind', 54912),
('Two Pair', 123552),
('One Pair', 1098240),
]
toplam = math.comb(52, 5)
isimler = [e[0] for e in eller]
olasiliklar = [e[1] / toplam for e in eller]
renkler = ['#A51C30' if i == isimler.index('Full House') else '#6B7280'
for i in range(len(eller))]
fig, ax = plt.subplots(figsize=(10, 5.5))
y_pos = np.arange(len(eller))
ax.barh(y_pos, olasiliklar, color=renkler, edgecolor='#1f2937')
ax.set_yticks(y_pos)
ax.set_yticklabels(isimler)
ax.set_xscale('log')
ax.set_xlabel('Olasılık (log ölçek)', fontsize=12)
ax.set_title('Poker el olasılıkları — full house vurgulu',
fontsize=12)
ax.invert_yaxis()
for i, p in enumerate(olasiliklar):
ax.text(p * 1.3, i, f'{p:.5f}', va='center', fontsize=9,
color='#A51C30' if i == 3 else '#1f2937')
ax.grid(True, axis='x', which='both', alpha=0.3)
plt.tight_layout()
plt.show()
```
::: {.callout-tip title="Builder Notu — Konfigürasyon Sayma ve Permütasyon Simetrisi"}
Bu problem aslında **konfigürasyon sayma** — belirli bir yapının kaç farklı şekilde gerçekleşebileceğini saymak. İstatistiksel fizikte aynı sayma "mikrodurum sayısı"dır ve doğrudan **entropiye** (log of count) bağlanır. Payı çarpma kuralıyla aşamalara bölmek, bir **birleşik dağılımı koşullu parçalara çarpanlamakla** ($p(a,b,c) = p(a) \cdot p(b \mid a) \cdot p(c \mid a,b)$) aynı disiplindir. "Sırayı umursama, $k!$'e böl" hamlesi ise **permütasyon simetrisidir**; Deep Sets gibi permütasyon-değişmez (permutation-invariant) mimariler tam olarak bu simetriyi modele gömer.
:::
## Örnekleme Tablosu (2×2) {#sec-ornekleme}
Tüm sayma problemlerini tek çatıda toplayalım. **Örnekleme (sampling):** $n$ nesneli bir popülasyondan $k$ nesne çekiyoruz. İki ikili seçim var:
- **Yerine koyarak mı, koymadan mı?** (with/without replacement) — çektiğimizi geri koyup tekrar seçebilir miyiz?
- **Sıra önemli mi, değil mi?** (order matters or not)
Bu iki ikili seçim $2 \times 2$ tablo verir:
| Örnekleme | Sıra önemli | Sıra önemsiz |
|-------------------|----------------------------|--------------------------|
| Yerine koyarak | $n^k$ | $\binom{n+k-1}{k}$ |
| Yerine koymadan | $n(n-1)\cdots(n-k+1)$ | $\binom{n}{k}$ |
Üç tanesi çarpma kuralından **anında** çıkar:
- **Yerine koyarak, sıralı:** her seçimde $n$ seçenek, $k$ kez → $n^k$.
- **Yerine koymadan, sıralı:** $n, n-1, \ldots$ azalan → $n(n-1)\cdots(n-k+1)$.
- **Yerine koymadan, sırasız:** tam da binom katsayısı → $\binom{n}{k}$.
Dördüncüsü (**yerine koyarak, sırasız**) çok daha incedir — Blitzstein "bir derece daha zor" diyor ve sonucu $\binom{n+k-1}{k}$ olarak veriyor, ispatını bir sonraki derse bırakıyor.
> *"I don't want you to memorize this table, I want you to understand."* — Blitzstein, 44:15
Yani amaç tabloyu ezberlemek değil; her hücrenin neden öyle olduğunu çarpma kuralından **türetebilmek**.
::: {.callout-tip title="Builder Notu — Bootstrap, SGD, Set Modelleri"}
Bu $2 \times 2$ tablo ML'de her gün karşına çıkar:
- **Yerine koyarak örnekleme** = **bootstrap**: bagging ve random forest, veriden yerine koyarak tekrar örnekleyerek çeşitlilik üretir.
- **Yerine koymadan örnekleme** = **SGD'de her epoch'ta** veriyi karıştırıp minibatch'leri yerine koymadan çekmek.
- **Sıra önemli/önemsiz** ekseni ise mimari seçiminin kalbidir: sıraya duyarlı modeller (RNN, positional encoding'li transformer) vs. sıra-değişmez küme modelleri (Deep Sets, pozisyonsuz attention).
Aynı $k$ nesneyi farklı sırada "aynı" saymak, modele **permütasyon simetrisi** öğretmektir.
:::
## Bu Dersin Özeti {#sec-ozet}
1. **Örnek uzay**, bir deneyin tüm olası sonuçlarının kümesidir ($S$); **olay**, örnek uzayın bir alt-kümesidir ($A \subseteq S$).
2. **Olasılığın naif tanımı:** $P(A) = |A| / |S|$ — lehte sonuç sayısı bölü toplam sonuç sayısı.
3. Naif tanım iki varsayım ister: **tüm sonuçlar eşit olası** ve **sonlu** sayıda. "Eşit olası" bedava değil, gerekçe (genelde simetri) ister; "Neptün'de yaşam → $1/2$" örneği gerekçesiz kullanımın saçmalığını gösterir.
4. **Sayma**, kursun ilk büyük aracıdır — çünkü payı ve paydayı elle listelemek çabuk imkânsızlaşır.
5. **Çarpma kuralı:** $r$ aşamalı bir deneyde toplam sonuç sayısı $n_1 \cdot n_2 \cdots n_r$. Ağaç diyagramıyla görselleştir; **üstel** hızla büyür.
6. **Binom katsayısı** $\binom{n}{k} = \frac{n!}{(n-k)!\,k!}$: $n$ nesneden sırasız $k$ seçme. Sıralı seçip $k!$'e bölerek türetilir.
7. **Örnekleme tablosu ($2 \times 2$):** yerine koyarak/koymadan × sıra önemli/önemsiz → $n^k$, $n(n-1)\cdots(n-k+1)$, $\binom{n}{k}$, $\binom{n+k-1}{k}$.
::: {.callout-important title="Tek bir cümle"}
Olasılık, belirsizliği saymaya indirger: eşit-olası ve sonlu bir dünyada bir olayın olasılığı "kaç yol lehte / kaç yol toplam"dır — ve bu yolları doğru saymak **çarpma kuralı** ile **binom katsayısının** işidir.
:::
## Kontrol Soruları {#sec-sorular}
::: {.callout-note collapse="true" title="Soru 1: Adil parayı 3 kez at. Örnek uzayda kaç sonuç var ve tam olarak iki tura (T) gelme olasılığı nedir?"}
**Cevap:** Çarpma kuralıyla $|S| = 2 \times 2 \times 2 = 2^3 = 8$ sonuç. "Tam iki T" olayının lehte sonuçları: TTH, THT, HTT — yani 3 tane (ya da $\binom{3}{2} = 3$, üç atıştan T gelecek ikisini seçmek). Hepsi eşit olası olduğundan $P = 3/8$.
:::
::: {.callout-note collapse="true" title="Soru 2: 52 kartlık desteden 5 kart çekersen 'dört aynı (four of a kind)' olma olasılığı nedir?"}
**Cevap:** Payda yine $\binom{52}{5}$. Pay için çarpma kuralı: dört kartın değerini seç (13 olasılık) × o değerin 4 kartının hepsini al ($\binom{4}{4} = 1$) × kalan 5. kartı diğer 48 kart arasından seç (48). Pay $= 13 \cdot 1 \cdot 48 = 624$. Yani $P = 624 / 2{,}598{,}960 \approx 0{,}00024$ — full house'tan çok daha nadir, mantıklı, çünkü dört aynı daha güçlü bir el.
:::
::: {.callout-note collapse="true" title="Soru 3: Sıralı seçim $n(n-1)\cdots(n-k+1)$, sırasız seçim $\\binom{n}{k}$ yol verir. $k = n$ özel durumunda ikisi ne verir, ne doğrular?"}
**Cevap:** $k = n$ iken sıralı seçim $n(n-1)\cdots 1 = n!$ verir ($n$ nesnenin tüm permütasyonları). Sırasız seçim $\binom{n}{n} = 1$ verir ($n$ nesnenin tümünü almanın tek bir yolu var — hepsini al). Aralarındaki oran $n!/1 = n!$, yani "sırayı umursamayınca $k! = n!$'e böl" kuralıyla birebir tutarlı: aynı tek grubu $n!$ farklı sırada dizebilirsin.
:::
::: {.callout-note collapse="true" title="Soru 4: (Builder) Naif tanımın 'eşit olası' varsayımı bir sınıflandırıcının hangi varsayımına denk düşer ve ne zaman tehlikelidir?"}
**Cevap:** Uniform sınıf prior'a denk düşer — her sınıfı eşit olası saymak. Sınıflar dengesizse tehlikelidir: örneğin %99 sağlam, %1 arızalı bir veride modelin (veya naif bir kuralın) sınıfları eşit olası varsayması **base rate**'i yok sayar ve kalibrasyonsuz, yanıltıcı olasılıklar üretir. Tıpkı "Neptün'de yaşam ya var ya yok → 1/2" safsatası gibi. Doğrusu: prior'ı veriden (gerçek sınıf frekanslarından) öğrenmek, gerekirse class weighting veya olasılık kalibrasyonu uygulamak.
:::
## Egzersizler {#sec-egzersizler}
**Egzersiz 1.** Bir adil zarı iki kez atıyorsun. (a) Örnek uzayda kaç sonuç var? (b) İki atışın toplamının 7 olma olasılığı nedir? (c) Toplamın 7 olmama olasılığı nedir? (İpucu: önce $|S|$'yi çarpma kuralıyla bul, sonra lehte sonuçları say.)
**Egzersiz 2.** 52 kartlık desteden 5 kartlık bir el çekiyorsun. Beş kartın da aynı türden (suit) olma olasılığını naif tanımla, binom katsayıları cinsinden yaz. (İki aşama: önce türü seç, sonra o türün 13 kartından 5'ini seç.) İfadeyi sadeleştirmeden $\binom{\cdot}{\cdot}$ cinsinden bırakabilirsin.
**Egzersiz 3.** Bir sayma argümanıyla (formülü açmadan, tek cümleyle) şunu açıkla: $\binom{n}{k} = \binom{n}{n-k}$. (İpucu: $k$ tanesini "seçmek", aslında dışarıda bırakılacak $n-k$ tanesini seçmekle aynı şeydir.)
**Egzersiz 4.** *(Python — full house Monte Carlo)* Full house olasılığını hem formülle hem de simülasyonla doğrula. İkinci kısım, bu dersin "örnekleme" fikrinin pratiğidir.
```{python}
#| label: ex-full-house
#| code-fold: false
import math, random
from collections import Counter
# 1) Formül
pay = 13 * math.comb(4, 3) * 12 * math.comb(4, 2)
payda = math.comb(52, 5)
formul = pay / payda
print(f"formül: {formul:.5f}")
# 2) Monte Carlo (yerine koymadan örnekleme)
deste = [(r, s) for r in range(13) for s in range(4)]
def full_house(el):
sayim = sorted(Counter(r for r, s in el).values())
return sayim == [2, 3]
random.seed(0)
N = 200_000
isabet = sum(full_house(random.sample(deste, 5)) for _ in range(N))
print(f"simülasyon: {isabet / N:.5f} (N = {N:,})")
```
**Egzersiz 5.** *(Sonraki dersin habercisi)* Örnekleme tablosunun en zor hücresi "yerine koyarak, sırasız" → $\binom{n+k-1}{k}$. $n = 2$, $k = 3$ için tüm olasılıkları elle listele (yani $\{1, 2\}$ kümesinden, sırası önemsiz, tekrarlı 3 seçim) ve bunların sayısının formülün verdiği $\binom{4}{3} = 4$ ile eşleştiğini göster. Ders 2'de bunun neden böyle olduğunu ("stars and bars" / Bose-Einstein) ispatlayacağız.
## Sonraki Ders İçin Hazırlık {#sec-sonraki}
**Ders 2: Story Proof'lar ve Olasılık Aksiyomları**
Ders 2'de naif tanımın ötesine geçiyoruz. Örnek uzayın sonlu ve eşit-olası olma zorunluluğunu kaldıran **genel (aksiyomatik) olasılık tanımını** kuracağız. Ayrıca formül cebiriyle değil, doğrudan bir **sayma hikâyesiyle** ispat yapma tekniği olan "story proof"u öğreneceğiz — ve örnekleme tablosunun bıraktığımız zor hücresini ($\binom{n+k-1}{k}$) bu yöntemle ispatlayacağız.
**Ana konular:**
- Olasılığın **aksiyomları:** negatif olmama, $P(S) = 1$, ve ayrık olaylar için toplanabilirlik.
- **Story proof:** bir kombinatorik kimliği iki farklı sayma yoluyla kanıtlama.
- "Yerine koyarak, sırasız" örneklemenin ispatı (**stars and bars / Bose-Einstein**).
::: {.callout-warning title="Ders 2 öncesi yapılacak"}
- Bu dersin egzersizlerini çöz — özellikle 4 (Python) ve 5 (elle listeleme).
- Python'da `math.comb` ve `itertools` ile küçük sayma deneyleri yap.
- Ana cümleyi tekrar oku: *"Olasılık, belirsizliği saymaya indirger."*
:::
## Anahtar Kavramlar (Cheat Sheet) {#sec-cheat-sheet}
| Kavram | Tanım | Blitzstein'de |
|--------|-------|---------------|
| **Örnek uzay** ($S$) | Bir deneyin tüm olası sonuçlarının kümesi | 15m20 |
| **Olay** | Örnek uzayın bir alt-kümesi ($A \subseteq S$) | 16m33 |
| **Naif tanım** | $P(A) = |A| / |S|$ | 24m34 |
| **İki varsayım** | Eşit olası + sonlu; eşit olası simetriyle gerekçelenir | 24m48 |
| **Neptün safsatası** | Gerekçesiz "ya var ya yok → 1/2" hatası | 26m19 |
| **Çarpma kuralı** | $r$ aşamalı deneyde $n_1 \cdot n_2 \cdots n_r$ | 29m05 |
| **Ağaç diyagramı** | Çarpma kuralının görseli (dondurma: $2 \times 3 = 6$) | 32m11 |
| **Binom katsayısı** | $\binom{n}{k} = n! / ((n-k)!\,k!)$, sırasız $k$ seçme | 36m01 |
| **$k!$'e bölme** | Sıralı seçim $\div k!$ = sırasız seçim | 38m26 |
| **Full house** | $13 \cdot \binom{4}{3} \cdot 12 \cdot \binom{4}{2} / \binom{52}{5} \approx 0{,}00144$ | 39m01 |
| **Yerine koyarak, sıralı** | $n^k$ | 43m47 |
| **Koymadan, sıralı** | $n(n-1)\cdots(n-k+1)$ | 44m23 |
| **Koymadan, sırasız** | $\binom{n}{k}$ | 44m03 |
| **Yerine koyarak, sırasız** | $\binom{n+k-1}{k}$ (Ders 2'de ispat) | 45m26 |
## ML Bağlantıları Özeti {#sec-ml-baglantilar}
::: {.callout-tip title="7 köprü"}
1. **Örnek uzay / olay** → bir olasılık dağılımının desteği; dil modelinde sözlük, RL'de state space, olay = ilgilenilen alt-küme.
2. **Naif tanım (uniform)** → uniform prior ve rastgele baseline; sonlu destek üzerinde maksimum entropili dağılım.
3. **"Eşit olası gerekçe ister"** → dengesiz veride **base-rate neglect** tehlikesi; prior'ı veriden öğren ve modeli kalibre et.
4. **Çarpma kuralı** → olasılığın **zincir kuralı** $p(x_1, \ldots, x_n) = \prod_i p(x_i \mid x_{<i})$; autoregressive dil modelinin token-token üretimi.
5. **Kombinatorik patlama ($n^k$, $V^L$)** → bütün dizileri deneyemezsin; bu yüzden sampling, beam search, MCMC gibi yaklaşık yöntemler.
6. **Binom katsayısı** → alt-küme sayma; dropout maskeleri, partition function, ve binom dağılımı (Ders 8).
7. **Örnekleme tablosu** → **bootstrap** (yerine koyarak) vs **SGD minibatch** karıştırma (koymadan); sıra önemi → sequence modelleri (RNN, positional transformer) vs set modelleri (Deep Sets, pozisyonsuz attention).
:::
::: {.callout-important title="Tek bir şey alıp gideceksen"}
Olasılık, "**kaç yol?**" sorusudur. Eşit-olası ve sonlu bir dünyada her olasılık bir sayma problemine indirgenir — ve saymanın iki temel aleti **çarpma kuralı** ile **binom katsayısıdır**. Ders 2'den itibaren yapacağımız şey, bu "eşit-olası" varsayımını gevşetip gerçek dünyaya açılmak.
:::