الاحتمالات
الموديل عمره ما بيقول «ده قطة». بيقول «٩٤٪ قطة».
الاحتمال = رقم بين صفر وواحد
صفر يعني مستحيل، و ١ يعني أكيد. احتمال إن زهر النرد يجيب ٦ هو ١ من ٦ أو حوالي ١٧٪. وأسهل طريقة تتأكد من احتمال هي إنك تجرّب كتير وتعد:
import random random.seed(42) # fixed seed -> same result every run rolls = 100_000 sixes = sum(1 for _ in range(rolls) if random.randint(1, 6) == 6) print(f"Simulated: {sixes / rolls:.3f}") print(f"Theory: {1 / 6:.3f}")
الاحتمال الشرطي
احتمال حاجة بشرط إن حاجة تانية حصلت. احتمال إن الجو يمطر النهارده حاجة، واحتمال إنه يمطر بشرط إن السما مغيّمة حاجة تانية خالص. بيتكتب P(A | B) وبيتقرا «احتمال A بمعلومية B».
نظرية بايز: أشهر فخ في التفكير
أغلب الناس هتقول ٩٩٪. خلينا نحسب:
p_disease = 0.01 # 1% of people are sick p_pos_if_sick = 0.99 # test catches 99% of sick people p_pos_if_healthy = 0.05 # 5% false positives # Total chance of a positive result (sick OR healthy) p_pos = p_disease * p_pos_if_sick + (1 - p_disease) * p_pos_if_healthy # Bayes: P(sick | positive) p_sick_if_pos = p_disease * p_pos_if_sick / p_pos print(f"Chance you're actually sick: {p_sick_if_pos:.1%}")
حوالي ١٧٪ بس! ليه؟ تخيل ١٠٠٠٠ شخص: ١٠٠ عيانين (٩٩ منهم هيطلعوا إيجابي)، و ٩٩٠٠ سليمين (٤٩٥ منهم هيطلعوا إيجابي غلط). يبقى من ٥٩٤ إيجابي، ٩٩ بس عيانين فعلاً.
التوزيع الطبيعي
أطوال الناس، أوزانهم، درجات امتحان كبير... أغلبهم متجمعين حوالين المتوسط، والقليل في الأطراف. الشكل ده اسمه Normal Distribution أو منحنى الجرس. قاعدة مفيدة: حوالي ٦٨٪ من الداتا بتبقى في حدود انحراف معياري واحد من المتوسط، و ٩٥٪ في حدود اتنين.
Softmax: إزاي الموديل بيطلع احتمالات
موديل بيصنف صورة، طلّع درجات (scores) لكل احتمال. الدرجات دي ممكن تبقى أي أرقام، فبنحولها لاحتمالات مجموعها ١ بدالة اسمها softmax:
import math labels = ["cat", "dog", "rabbit"] scores = [2.0, 1.0, 0.1] # raw model outputs (logits) exps = [math.exp(s) for s in scores] total = sum(exps) probs = [e / total for e in exps] for label, p in zip(labels, probs): print(f"{label:7} {p:.1%}") print("sum =", round(sum(probs), 2))