تخطّي إلى المحتوى
Kudos AI
Read in English
الاستدلال الاحتمالي

الشبكات البايزية والاستدلال الاحتمالي

كيف يقوم مخطّط وبضعة جداول صغيرة مقام توزيع مشترك بآلاف المدخلات، وكيف يُجاب عن استعلام عليه إجابةً دقيقة بالتعداد وإزالة المتغيّرات، وما العمل حين يتعذّر الاستدلال الدقيق: أخذ العيّنات بالرفض، والترجيح بالإمكان، وأخذ عيّنات غيبس، كلٌّ منها محلول على الشبكتين نفسيهما.

قراءة 8 دقيقةKudos AI

المتطلبات المسبقة: مبرهنة بايز وتحديث الاعتقاد

خمس عقد وعشرة أعداد تجتمع في مخطّط، ثم حدث كامل واحد يُتتبَّع من الأعلى إلى الأسفل بينما تتضارب عوامله الخمسة نزولًا إلى 0.000628.

تخبرك مبرهنة بايز كيف تحدّث اعتقادًا واحدًا على شاهد واحد. أما العميل الحقيقي فيحمل اعتقادات عن عشرات المتغيّرات في آنٍ واحد، وللتوزيع المشترك عليها - وهو الكائن الذي يجيب عن كل سؤال - 2n2^n مدخلة لأجل nn متغيّرًا بوليانيًا. ولا أحد يستطيع كتابته. وهذا المقال عن التمثيل الذي يجعل التوزيع المشترك قابلًا للاستعمال، وعن الخوارزميات التي تستعلم منه.

أ. الشبكة هي التوزيع المشترك

الشبكة البايزية مخطّط موجَّه لا دوري. كل عقدة فيه متغيّر عشوائي؛ والسهم من XX إلى YY يجعل XX أبًا لـYY؛ وكل عقدة تحمل جدول احتمالات شرطية يعطي P(Xi∣Parents(Xi))P(X_i \mid \mathrm{Parents}(X_i))، بصفّ لكل تركيبة من قيم الآباء. والعقدة البوليانية ذات kk أبًا بوليانيًا تحتاج إلى 2k2^k عددًا.

ومثال راسل ونورفيغ جهاز إنذار. يستجيب للسطو، وبموثوقية أقلّ للزلازل؛ وجاران، جون وماري، يتّصلان حين يسمعانه، فجون يخلط أحيانًا بين الهاتف والإنذار، وماري يفوتها أحيانًا خلف الموسيقى الصاخبة. الأسهم B→AB \to A وE→AE \to A وA→JA \to J وA→MA \to M، وعشرة أعداد:

P(b)=0.001P(e)=0.002P(a∣b,e)=0.95P(a∣b,¬e)=0.94P(a∣¬b,e)=0.29P(a∣¬b,¬e)=0.001P(j∣a)=0.90P(j∣¬a)=0.05P(m∣a)=0.70P(m∣¬a)=0.01\begin{array}{ll} P(b) = 0.001 & P(e) = 0.002 \\[4pt] P(a \mid b, e) = 0.95 & P(a \mid b, \lnot e) = 0.94 \\ P(a \mid \lnot b, e) = 0.29 & P(a \mid \lnot b, \lnot e) = 0.001 \\[4pt] P(j \mid a) = 0.90 & P(j \mid \lnot a) = 0.05 \\ P(m \mid a) = 0.70 & P(m \mid \lnot a) = 0.01 \end{array}

ومعنى الصورة معادلة واحدة. فلأي إسناد كامل،

P(x1,…,xn)=∏i=1nP(xi∣parents(Xi)).P(x_1, \dots, x_n) = \prod_{i=1}^{n} P\big(x_i \mid \mathrm{parents}(X_i)\big).

فاحتمال أن ينطلق الإنذار بلا سطو ولا زلزال، ويتّصل الجاران كلاهما، هو

P(j,m,a,¬b,¬e)=0.90×0.70×0.001×0.999×0.998=0.000628.P(j, m, a, \lnot b, \lnot e) = 0.90 \times 0.70 \times 0.001 \times 0.999 \times 0.998 = 0.000628 .

وكل واحد من المدخلات الـ32 للتوزيع المشترك متاح على هذا النحو، من عشرة أعداد بدل 31. وليس الوفر حيلة: بل هو الدعوى، التي تقرّرها الأسهم الغائبة، بأن كل متغيّر مستقلّ شرطيًا عن غير أحفاده بمعلومية آبائه. بل أقوى من ذلك: كل عقدة مستقلّة عن كل العقد الأخرى بمعلومية غطاء ماركوف الخاصّ بها - آبائها وأبنائها والآباء الآخرين لأبنائها. فبمعلومية الإنذار والزلزال، لا تقول المكالمتان شيئًا زائدًا عن السطو.

ب. الاستدلال الدقيق

يسأل الاستعلام عن P(X∣e)\mathbf{P}(X \mid \mathbf{e}). ولمّا كانت كل مدخلة من التوزيع المشترك جداءً لمدخلات من الجداول، فالاستعلام مجموع مُعيَّر لجداءات على المتغيّرات المخفية. اتّصل الجاران كلاهما؛ أهو سطو؟

P(b∣j,m)=α P(b)∑eP(e)∑aP(a∣b,e) P(j∣a) P(m∣a).P(b \mid j, m) = \alpha\, P(b) \sum_{e} P(e) \sum_{a} P(a \mid b, e)\,P(j \mid a)\,P(m \mid a).

أربعة حدود لأجل bb، وأربعة لأجل ¬b\lnot b، كلٌّ منها جداء خمسة أعداد:

P(B∣j,m)=α ⟨0.00059224, 0.00149186⟩=⟨0.284, 0.716⟩.\mathbf{P}(B \mid j, m) = \alpha\, \langle 0.00059224,\ 0.00149186 \rangle = \langle 0.284,\ 0.716 \rangle .

فبلاغان مستقلّان يرفعان احتمالًا قبليًا قدره واحد في الألف إلى 28 بالمئة، ولا أبعد من ذلك، لأن كتلة اللاسطو تأتي من ثلاث طرق متقاربة: إنذار بلا سبب ثم المكالمتان، ‎0.0006280.000628‎؛ ولا إنذار مع اتصال الجارين مع ذلك، ‎0.0004980.000498‎؛ وإنذار بسبب زلزال ثم المكالمتان، ‎0.0003650.000365‎. ومعًا تزن هذه الطرق 2.5 ضعف طريق السطو، ‎0.0005920.000592‎.

والتعداد يحسب هذا شجرةً بالعمق أوّلًا، والشجرة تكرّر نفسها: فالجداء P(j∣a) P(m∣a)P(j \mid a)\,P(m \mid a) يُحسب مرّة تحت ee ومرّة أخرى تحت ¬e\lnot e. وعلى nn متغيّرًا بوليانيًا تكون الكلفة O(2n)O(2^n)، وهي أفضل من O(n 2n)O(n\,2^n) لبناء كل مدخلة من التوزيع المشترك على حدة، لكن جلّها إعادة حساب. أما إزالة المتغيّرات فتخزّن كل جزء عاملًا - جدولًا على المتغيّرات التي ما زال يتوقّف عليها - وتركّب العوامل بالجداء النقطي وبالجمع على متغيّر. فالجمع على AA يعطي عاملًا على (B,E)(B, E):

f6(B,E)=e¬eb0.5985250.592230¬b0.1830550.001130f_6(B, E) = \begin{array}{c|cc} & e & \lnot e \\ \hline b & 0.598525 & 0.592230 \\ \lnot b & 0.183055 & 0.001130 \end{array}

والجمع على EE في مقابل P(E)P(E) يترك f7(B)=⟨0.592243, 0.001493⟩f_7(B) = \langle 0.592243,\ 0.001493 \rangle، والضرب في P(B)P(B) ثم التعيير يعيد ⟨0.284,0.716⟩\langle 0.284, 0.716 \rangle وقد حُسب كل جداء من جداءات الأوراق مرّة واحدة.

وسرعة هذا تتوقّف على شكل المخطّط. فعلى الشجرة المتعدّدة (polytree) - أي بمسار غير موجَّه واحد على الأكثر بين أي عقدتين، كما هنا - تكون إزالة المتغيّرات خطّية في حجم الشبكة. أضف مسارًا ثانيًا فقد تنمو العوامل الوسيطة أسّيًا في أسوأ الحالات. والمسألة العامّة صعبة من صنف #P: بصعوبة عدّ الإسنادات المُرضية لصيغة قضوية. وذلك هو سبب وجود بقية هذا المقال.

الشبكة أدناه هي هذه الشبكة، وكل رقم فيها دقيق: فالاحتمالات البعدية تأتي من جمع الإسنادات الاثنين والثلاثين جميعًا، لا من أخذ عيّنات. انقر عقدةً لتقول ما تعرفه. ابدأ باتّصال الجارين معًا: يرتفع احتمال السطو إلى 28.4٪، وهذا وحده جدير بالتأمل، فالاتّصالان دليل ممتاز على الإنذار، والإنذار شاهد رديء على السطو. ثم أضف الزلزال: إنه يجعل الاتّصالين أكثر احتمالًا، ويعيد السطو إلى ما يقارب العدم.

تفاعلي: قل ما تعرفه، وراقب ما يترتّب

انقر عقدةً لتتنقّل بين: مجهول، وقع، مستبعَد.

سطو0.1%زلزال0.2%إنذار0.3%اتّصال جون5.2%اتّصال ماري1.2%
احتمال السطو
0.1%
احتمال الزلزال
0.2%
احتمال الإنذار
0.3%
احتمال المشاهدات
1.000000

لا شيء معلوم بعد، فكل عقدة عند احتمالها القبلي: السطو عند 0.1٪ والزلزال عند 0.2٪. انقر أحد الجارين وراقب التأثير يصعد الأسهم إلى الإنذار ثم ينزل إلى الجار الآخر، مع أنه لا سهم يربط الجارين أصلًا.

ج. أخذ العيّنات حين يستحيل الدقيق

لشبكة الرشّاش أربعة متغيّرات بوليانية ومساران من Cloudy\mathit{Cloudy} إلى WetGrass\mathit{WetGrass}، أحدهما عبر الرشّاش والآخر عبر المطر:

P(c)=0.5P(s∣c)=0.10P(s∣¬c)=0.50P(r∣c)=0.80P(r∣¬c)=0.20P(w∣s,r)=0.99P(w∣s,¬r)=0.90P(w∣¬s,r)=0.90P(w∣¬s,¬r)=0.00\begin{array}{ll} P(c) = 0.5 & \\[4pt] P(s \mid c) = 0.10 & P(s \mid \lnot c) = 0.50 \\ P(r \mid c) = 0.80 & P(r \mid \lnot c) = 0.20 \\[4pt] P(w \mid s, r) = 0.99 & P(w \mid s, \lnot r) = 0.90 \\ P(w \mid \lnot s, r) = 0.90 & P(w \mid \lnot s, \lnot r) = 0.00 \end{array}

أخذ العيّنات القبلي يسحب كل متغيّر من جدوله بترتيب الآباء أوّلًا. واحتمال إنتاج حدث ما هو جداء المدخلات التي رُجع إليها، وهو التوزيع المشترك نفسه: فـ[c,¬s,r,w][c, \lnot s, r, w] يخرج باحتمال 0.5×0.9×0.8×0.9=0.3240.5 \times 0.9 \times 0.8 \times 0.9 = 0.324. فتتقارب التردّدات إذن إلى الاحتمالات، ويكون التقدير متّسقًا.

وأخذ العيّنات بالرفض يجيب عن استعلام شرطي برفض كل عيّنة تخالف الشواهد. فلأجل P(Rain∣Sprinkler=true)P(\mathit{Rain} \mid \mathit{Sprinkler} = \text{true})، وقيمته الدقيقة 0.30.3، رفضت تشغيلة ذات بذرة ثابتة من 1,000 عيّنة قبلية 703 منها وأبقت 79 فيها مطر في مقابل 218 بلا مطر، بتقدير قدره 0.2660.266. فسبعون بالمئة من الجهد ذهب سدًى، وتلك هي الحالة الرحيمة: فمعدّل البقاء هو P(e)P(\mathbf{e})، وهو يهبط أسّيًا مع عدد متغيّرات الشواهد. فاسأل شبكة السطو عن P(B∣j,m)\mathbf{P}(B \mid j, m) فلا يبقى إلا نحو 21 عيّنة من كل 10,000.

Python

يعمل في متصفحك. تُنزّل عملية التشغيل الأولى بيئة بايثون (~10 ميغابايت)، ثم تُخزّن مؤقتًا.

والترجيح بالإمكان يثبّت متغيّرات الشواهد بدل سحبها، فيصير كل حدث متّسقًا، ويرجّح كل حدث باحتمال الشواهد بمعلومية الآباء الذين اختارهم الساحب. فلأجل P(Rain∣c,w)\mathbf{P}(\mathit{Rain} \mid c, w) بالترتيب C,S,R,WC, S, R, W: يبدأ الوزن من 11، وCC من الشواهد فـw←0.5w \leftarrow 0.5؛ وSS يُسحب من ⟨0.1,0.9⟩\langle 0.1, 0.9 \rangle، ولنقل خطأً؛ وRR من ⟨0.8,0.2⟩\langle 0.8, 0.2 \rangle، ولنقل صوابًا؛ وWW من الشواهد فـw←0.5×P(w∣¬s,r)=0.45w \leftarrow 0.5 \times P(w \mid \lnot s, r) = 0.45. فيُعدّ الحدث تحت المطر بوزن 0.450.45. ولا شيء يُرفض، ولمّا كان احتمال السحب مضروبًا في الوزن يساوي التوزيع المشترك، فالعدّ المرجَّح متّسق: ألف عيّنة على البذرة نفسها تعطي 0.97580.9758 في مقابل قيمة دقيقة 0.97580.9758. وتتدهور الطريقة حين تكون الشواهد غير مرجّحة تحت القيم المسحوبة، لأن بضعة أوزان ثقيلة تهيمن عندئذٍ على كل شيء.

وأخذ عيّنات غيبس هو مونتي كارلو بسلاسل ماركوف. ثبّت الشواهد، وابدأ من أي حالة، وأعد مرارًا سحب متغيّر واحد من غير الشواهد مشروطًا بغطاء ماركوف الخاصّ به. وذلك التوزيع الشرطي جداء حفنة من مدخلات الجداول:

P(xi′∣mb(Xi))=α P(xi′∣parents(Xi))∏Yj∈Children(Xi)P(yj∣parents(Yj)).P(x_i' \mid \mathrm{mb}(X_i)) = \alpha\, P\big(x_i' \mid \mathrm{parents}(X_i)\big) \prod_{Y_j \in \mathrm{Children}(X_i)} P\big(y_j \mid \mathrm{parents}(Y_j)\big).

فلأجل P(Rain∣s,w)\mathbf{P}(\mathit{Rain} \mid s, w) من الحالة [c,s,¬r,w][c, s, \lnot r, w]، تستعمل إعادة سحب CC الجداءَ P(C) P(s∣C) P(¬r∣C)P(C)\,P(s \mid C)\,P(\lnot r \mid C)، فيعطي P(c∣s,¬r)=0.048P(c \mid s, \lnot r) = 0.048؛ ولنقل إنه خرج خطأً. ثم تستعمل إعادة سحب RR الجداءَ P(R∣¬c) P(w∣s,R)P(R \mid \lnot c)\,P(w \mid s, R)، فيعطي P(r∣¬c,s,w)=0.216P(r \mid \lnot c, s, w) = 0.216. وكل حالة تُزار عيّنة. وألف خطوة على بذرة ثابتة تقدّر 0.3150.315 في مقابل القيمة الدقيقة 0.3200.320.

وسبب نجاح هذا أن للسلسلة توزيعًا مستقرًّا، وأن خطوة غيبس تحقّق التوازن التفصيلي بالنسبة إلى التوزيع البعدي، ما يُلزم الاثنين بالتطابق: فنسبة الزمن المقضيّ في كل حالة على المدى الطويل هي P(x∣e)P(\mathbf{x} \mid \mathbf{e}). فلا عيّنة تُرفض ولا وزن ينهار. والكلفة ترابط بين الحالات المتعاقبة، فتحتاج السلسلة إلى وقت لتنسى من أين بدأت.

الاتّساق قولٌ عن نهاية حدّية، ولذلك يضع الشكل أدناه تلك النهاية على الشاشة: فالخط المتقطّع هو التوزيع البعدي المضبوط، محسوبًا بتعداد التوزيع المشترك، ولا يشارك أيًّا من المُعايِنَين سطرًا واحدًا. اسحب حجم العيّنة وراقب التقديرين يمشيان نحوه. ثم انتقل إلى سؤال السطو، حيث تُبقي معاينة الرفض 21 عيّنة من كل 10,000، ويُبقي الترجيح بالإمكان جميعها ويتعثّر مع ذلك، لأن تثبيت الشواهد يرفع الهدر لا التباين.

تفاعلي: مُعايِنان في مواجهة الجواب المضبوط

القيمة المضبوطة من تعداد التوزيع المشترك، لا من أيٍّ من المُعايِنَين.

0.3000
المضبوط
0.3000
معاينة الرفض
0.3045
الترجيح بالإمكان
0.3029
ما أبقاه الرفض
289

تقرأ معاينة الرفض 0.3045 من 289 عيّنة أبقتها من 1,000، ويقرأ الترجيح 0.3029 من جميعها، والجواب المضبوط 0.3000. وكلا المقدِّرين متّسق، وذلك قولٌ عن نهاية حدّية: فاسحب حجم العيّنة وراقب الرقمين يمشيان نحو الثالث. وما يُطرح ليس ضجيجًا بل 70.00% من العمل.

أين يتركك هذا

الشبكة البايزية توزيع مشترك يمكنك فعلًا كتابته. والاستدلال الدقيق مجموع جداءات تؤدّيه إزالة المتغيّرات بلا تكرار، رخيص على الأشجار المتعدّدة ومستعصٍ في الحالة العامّة. وحين يكون المخطّط أشدّ تشابكًا، يعطي أخذ العيّنات تقديرات متّسقة بكلفة تتوقّف على كيفية معالجة الشواهد: فالرفض يهدر، والترجيح يركّز، وغيبس يتجوّل - وكلٌّ منها هو الاختيار الصحيح في موضع ما. والمسار التدريبي الاستدلال الاحتمالي بالشبكات البايزية يحلّ كل واحدة من هذه الحسابات باليد وبالشفرة.

المراجع والقراءات الإضافية

  • Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· مكتبة مراجع Kudos AI

تُذكر الأعمال المحمية بحقوق النشر للمرجعية فقط ولا تُستضاف هنا؛ يرجى الرجوع إلى الناشر للوصول إليها.

قراءات ذات صلة

قراءة 3 دقيقةالاستدلال الاحتمالي

مئة ألف عيّنة، أربعمئة منها حقيقيّة

على شبكة السطو مع اتّصال الجارين معًا، تُبقي المعاينة بالرفض 183 سحبًا من 100,000، وتُبقي المعاينة بالترجيح بالأرجحيّة كلَّ السحوب بحجم عيّنة فعّال قدره 396. والتقديران يبتعدان نحو 10% عن احتمال بعدي قدره 0.284172، والسبب يُحسب بالضبط: 252 عيّنة تحمل 76% من الوزن و99.975% من مربّع الوزن.

الذكاء الاصطناعيالاحتمالات
قراءة 4 دقيقةالاستدلال الاحتمالي

الأسبوع الذي لم يكن ممكنًا

خذ أرجح حالة في كل يوم واكتبها بالترتيب، فيخرج لك تقرير يعطيه النموذج احتمالًا يساوي الصفر تمامًا: في مثال لمراقبة آلة على أربعة أيام يكون الجواب يومًا بيوم سليمة، سليمة، معطّلة، معطّلة، والانتقال من سليمة إلى معطّلة انتقال لا يقع. ما السؤالان فعلًا، ولماذا يجيب التنعيم وفيتربي عن سؤالين مختلفين، وماذا يعني احتمال بعدي قدره 0.411 لأفضل مسار لمن عليه أن يتصرّف.

الذكاء الاصطناعيالاحتمالات
قراءة 9 دقيقةالاستدلال الاحتمالي

تعلّم الأعداد في نموذج احتمالي

من أين تأتي أعداد الشبكة البايزية أو التوزيع الغاوسي فعلًا: وصفة الإمكان الأعظم ذات الخطوات الثلاث مطبَّقة على معالم منفصلة ثم متصلة، وتوزيع بيتا القبلي الذي يصلح ما تفعله بحدث لم يُشاهد قط، وبايز الساذج والتكرار الصفري الواحد الذي يدمّره، وخوارزمية EM للحالة التي يتعذّر فيها العدّ أصلًا - وكل رقم محسوب لا مُدّعى.

الاحتمالاتالإحصاءالذكاء الاصطناعي
← العودة إلى كل المقالات