چیتشیت
احتمال و آمار برای یادگیری ماشین
Probability and Statistics for ML
توزیعها، بیز، آزمونها، بوتاسترپ، نمونهگیری از لاجیتها و زنجیرههای مارکوف. پایتون از صفر و SciPy.
فهرست مطالب
از لاجیتها تا یک توکن
معماریآزمون A/B بیزی
گامبهگام- پیشینشروع هر واریانت با Beta(1, 1). توزیع یکنواخت است.
- دادهنسخه A به ازای 1000 بازدید، 50 کلیک میگیرد. نسخه B به ازای 1000 بازدید، 65 کلیک میگیرد.
- بهروزرسانیتابع
beta_update(alpha, beta_param, successes, failures)تعدادها را جمع میزند. - پسینهاتوزیع A برابر Beta(51, 951) با میانگین 0.051. توزیع B برابر Beta(66, 936) با میانگین 0.066.
- مونتکارلو100,000 نمونه از هر کدام بگیرید. P(B > A) کسری است که B برنده میشود.
- تصمیمگیریبالای 0.95 نسخه B را اعمال کنید. زیر 0.05 نسخه A را اعمال کنید. در غیر این صورت دادهی بیشتری جمع کنید.
وظایف در کد
کار و کد| وظیفه | کد |
|---|---|
| پسین حاصل از یک آزمون | bayes(prior=0.0001, likelihood=0.99, false_positive_rate=0.01) |
| تکرار آزمون | sequential_bayes(prior, likelihood, false_positive_rate, num_tests) |
| فیلتر هرزنامه با هموارسازی یکیافزودن (add-one) | `NaiveBayes(smoothing=1.0)`, then `classifier.train(train_docs, train_labels)` |
| تابع زیان (loss) از لاجیتها | cross_entropy_loss(logits, target_index) |
| بازهی اطمینان بوتاسترپ | bootstrap_statistic(data, stat_func, n_bootstrap=5000, ci=95) |
| آزمون Welch t-test، آزمون تی جفتشده | `two_sample_ttest(data1, data2)`, `paired_ttest(data1, data2)` |
| اندازهی اثر | `cohens_d(data1, data2)`, then `interpret_cohens_d(d)` |
| تصحیح برای آزمونهای متعدد | bonferroni_correction(p_values, alpha=0.05) |
نمونهگیری از صفر
کدpython
x = sample_exponential_inverse_cdf(lam) # -log(u) / lam
x = rejection_sample(target_pdf, proposal_sample, proposal_pdf, M) # نرخ پذیرش 1/M
est = importance_sampling_estimate(f, target_pdf, proposal_pdf, proposal_sample, n)
idx = temperature_sample(logits, temperature) # z / T، سپس سافتمکس
idx = top_k_sample(logits, k) # نگهداشتن k لاجیت بزرگتر
idx = top_p_sample(logits, p) # توقف هنگامی که جمع تجمعی >= p شود
z = reparam_sample(mu, sigma) # mu + sigma * epsilon
y = gumbel_softmax_sample(log_probs, temperature) # one-hot نرم (soft)
فراخوانیهای کتابخانه
کدpython
normal = stats.norm(loc=0, scale=1)
normal.cdf(1.96) # P(X < 1.96)
normal.ppf(0.975) # معکوس CDF
samples = normal.rvs(size=10000)
probs = softmax(logits) # از scipy.special
rng = np.random.default_rng(42)
token = rng.choice(len(logits), p=probs)
distribution = distribution @ P # روش توانی، 100 بار تکرار
eigenvalues = np.linalg.eigvals(P)
spectral_gap = 1 - sorted(np.abs(eigenvalues))[-2] # زمان آمیختگی نزدیک 1/gap
فرمولهای کلیدی
مفهومها- بیز
- $P(A \mid B) = \frac{P(B \mid A) \cdot P(A)}{P(B)}$. مخرج $P(B)$ نرمالساز است.
- واریانس
- $\mathrm{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2$. واریانس نمونه بر $n-1$ تقسیم میشود.
- سافتمکس با دما
- $p_i = \exp(z_i / T) / \sum_j \exp(z_j / T)$.
- هموارسازی لاپلاس
- به هر فراوانی عدد 1 و به کل، اندازهی واژگان را اضافه کنید.
- بهروزرسانی بتا
- پیشین Beta(a, b) با s موفقیت و f شکست به Beta(a + s, b + f) تبدیل میشود.
- وزن اهمیت
- $w(x) = p(x) / q(x)$. میانگینگیری از $f(x_i) \, w(x_i)$ روی $x_i \sim q$.
- متروپلیس-هیستینگز
- پذیرش با $\min(1, a)$. یک پیشنهاد متقارن نتیجه میدهد: $a = p(x') / p(x)$.
- لانژون
- $x_{t+1} = x_t - dt \, \nabla U(x_t) + \sqrt{2 T \, dt} \, z_t$.
توزیعها
دستورها| دستور | کاربرد |
|---|---|
Bernoulli | میانگین p، واریانس p(1-p). طبقهبندی دودویی |
Categorical | مجموع احتمالات برابر 1. خروجی سافتمکس |
Poisson | میانگین و واریانس هر دو لاندا. شمارش رخدادها |
Uniform(0, 1) | E[U] = 0.5، واریانس 1/12. نقطهی شروع هر نمونهگیر |
Normal | 68%، 95% و 99.7% درون 1، 2 و 3 سیگما |
Beta(a, b) | میانگین a/(a+b). پیشین مزدوج برای برنولی |
Exponential | معکوس CDF نتیجه میدهد: x = -ln(u) / lambda |
Brownian motion | متغیر B(t) نرمال با میانگین 0 و واریانس t است |
انتخاب آزمون
دستورها| دستور | کاربرد |
|---|---|
One-sample t-test | میانگین در برابر mu_0. درجات آزادی n - 1 |
Welch t-test | دو گروه مستقل. بدون فرض برابری واریانس |
Paired t-test | فولدهای یکسان برای هر دو مدل. آزمون d_i در برابر 0 |
Chi-squared | فراوانیهای مشاهدهشده در برابر مورد انتظار |
Mann-Whitney U | دو گروه بدون فرض نرمال بودن |
Wilcoxon signed-rank | دادههای جفتشده. مناسب برای 5 یا 10 فولد |
Spearman rho | رابطهی یکنوا روی رتبهها. مقاوم در برابر دادههای پرت |
Bootstrap | هر معیاری. 95% بازهی اطمینان از صدکهای 2.5ام و 97.5ام |
اعداد و مقادیر پیشفرض
پیشفرضها| تنظیم | پیشفرض | نکته |
|---|---|---|
Significance level alpha | 0.05 | رد H0 وقتی p زیر این مقدار باشد |
z for a 95% interval | 1.96 | x_bar به علاوه یا منهای z ضرب در s / sqrt(n) |
n_bootstrap | 5000 | بازهی توصیهشدهی درس 1000 تا 10000 است |
CLT sample size | n >= 30 | استفاده از n >= 100 برای دادههای چوله |
Cohen's d, large effect | 0.8 | 0.2 کوچک، 0.5 متوسط |
MH acceptance, Gaussian proposal | 0.234 | ابعاد بالا |
Top-k `k` | 40 | تنظیمات معمول |
Temperature with top-p | 0.7 + top-p 0.9 | چندمنظوره |
عیبیابی
عیبیابیسرریز exp(102) در سافتمکس
- علت
- لاجیتهای بزرگ
- راهحل
- ابتدا بیشینهی لاجیت را کم کنید
احتمال توالی برابر 0.0 است
- علت
- زیرریز پس از حدود 30 جمله
- راهحل
- جمع زدن لگاریتم احتمالات
امتیاز بیز ساده برابر 0 است
- علت
- کلمهی دیدهنشده شمارش MLE برابر 0 دارد
- راهحل
- هموارسازی لاپلاس با افزودن یک
آزمون با دقت 99% حدود 1% بیمار را نشان میدهد
- علت
- غلبهی احتمال پیشین نادر
- راهحل
- استفاده از نرخ پایه. اجرای آزمون دوم
یکی از 20 معیار معنادار است
- علت
- احتمال 64% برای مثبت کاذب
- راهحل
- بونفرونی: alpha / m
مقدار p-value بسیار کوچک روی بهبود ناچیز 0.03%
- علت
- مقدار بسیار بزرگ n
- راهحل
- اندازهی اثر را نیز گزارش کنید
گیر کردن یا کندی زنجیرهی MH
- علت
- مقیاس پیشنهاد بسیار بزرگ یا بسیار کوچک است
- راهحل
- تنظیم به سمت نرخ پذیرش حدود 23%
چند نمونهی محدود بر برآورد مسلط هستند
- علت
- فاصلهی زیاد پیشنهاد q از p
- راهحل
- نرمالسازی خودکار وزنها
پرسشها
پرسش و پاسخ- آیا p-value همان احتمال درست بودن H0 است؟
- خیر. برابر است با P(دادههایی به این شدت با فرض H0).
- یک بازهی اطمینان 95% به چه معناست؟
- 95% از بازههای آزمایشهای تکراری شامل میانگین واقعی هستند.
- چرا ترفند بازپارامتریسازی؟
- نمونهگیری مانع عبور گرادیان است. فرمول z = mu + sigma * epsilon مشتقپذیر است.
- چرا top-p به جای top-k؟
- رویکرد top-p مجموعهی نامزدها را با میزان اطمینان مدل تطبیق میدهد.
- یک زنجیره با چه سرعتی میآمیزد؟
- شکاف طیفی 0.2 به حدود 5 گام نیاز دارد. 0.01 به حدود 100 گام.
- ارتباط MAP با منظمسازی چگونه است؟
- پیشین گوسی معادل L2 است. پیشین لاپلاس معادل L1 است.
نکات
نکتهها- هر دو مدل را روی همان مجموعهی آزمون و همان فولدها ارزیابی کنید.
- مقدار p-value و اندازهی اثر را همراه با هم گزارش کنید.
- خطای مونتکارلو در هر بعدی از مرتبهی O(1 / sqrt(N)) است.
- نمونههای اولیهی گرمکردن (burn-in) را دور بریزید. چند زنجیره از نقاط شروع مختلف اجرا کنید.
- یک گشت تصادفی پس از n گام حدود sqrt(n) از مبدا دریفت میکند.
- برای پاسخهای واقعگرایانه و وظایف قطعی از T = 0.0 (حریصانه) استفاده کنید.