چیت‌شیت

احتمال و آمار برای یادگیری ماشین

Probability and Statistics for ML

توزیع‌ها، بیز، آزمون‌ها، بوت‌استرپ، نمونه‌گیری از لاجیت‌ها و زنجیره‌های مارکوف. پایتون از صفر و SciPy.

  • ۱۲ بخش
  • ۵ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. از لاجیت‌ها تا یک توکن
  2. آزمون A/B بیزی
  3. وظایف در کد
  4. نمونه‌گیری از صفر
  5. فراخوانی‌های کتابخانه
  6. فرمول‌های کلیدی
  7. توزیع‌ها
  8. انتخاب آزمون
  9. اعداد و مقادیر پیش‌فرض
  10. عیب‌یابی
  11. پرسش‌ها
  12. نکات

از لاجیت‌ها تا یک توکن

معماری
احتمالات (probs)سپسلاجیت‌هایکی به ازای هر توکندما (Temperature)تقسیم بر Tسافت‌مکسابتدا بیشینه را کم کنیدTop-kنگه‌داشتن k مورد، نرمال‌سازی مجددTop-pکوچک‌ترین مجموعه با جمع تجمعی >= pنمونه‌گیریsample_from_probs

آزمون A/B بیزی

گام‌به‌گام
  1. پیشینشروع هر واریانت با Beta(1, 1). توزیع یکنواخت است.
  2. دادهنسخه A به ازای 1000 بازدید، 50 کلیک می‌گیرد. نسخه B به ازای 1000 بازدید، 65 کلیک می‌گیرد.
  3. به‌روزرسانیتابع beta_update(alpha, beta_param, successes, failures) تعدادها را جمع می‌زند.
  4. پسین‌هاتوزیع A برابر Beta(51, 951) با میانگین 0.051. توزیع B برابر Beta(66, 936) با میانگین 0.066.
  5. مونت‌کارلو100,000 نمونه از هر کدام بگیرید. P(B > A) کسری است که B برنده می‌شود.
  6. تصمیم‌گیریبالای 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. نقطه‌ی شروع هر نمونه‌گیر
Normal68%، 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 alpha0.05رد H0 وقتی p زیر این مقدار باشد
z for a 95% interval1.96x_bar به علاوه یا منهای z ضرب در s / sqrt(n)
n_bootstrap5000بازه‌ی توصیه‌شده‌ی درس 1000 تا 10000 است
CLT sample sizen >= 30استفاده از n >= 100 برای داده‌های چوله
Cohen's d, large effect0.80.2 کوچک، 0.5 متوسط
MH acceptance, Gaussian proposal0.234ابعاد بالا
Top-k `k`40تنظیمات معمول
Temperature with top-p0.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 (حریصانه) استفاده کنید.