أساسيات تعلم الآلة1984متوسط11 دقيقة قراءة
الاسترخاء العشوائي وتوزيعات غيبس والاستعادة البايزية للصور
Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images
Geman, S. · Geman, D. — IEEE Transactions on Pattern Analysis and Machine Intelligence
المشكلة
الصور الحقيقية تتعرّض للتشويش والتمويه والتشوّه، واستعادة الصورة الأصلية منها مسألة عكسية غير محدّدة المعالم: يوجد عدد هائل من الصور النظيفة التي كان يمكن أن تُنتج الصورة المُشوَّشة نفسها. الطرق التقليدية إما اعتمدت على مرشّحات مصمَّمة يدوياً دون آلية مبدئية لإدماج المعرفة المسبقة عن طبيعة الصور، أو صاغت مسائل أمثَلة سرعان ما تعلق في حلول محلية رديئة لأنّ فضاء الحلول ضخم ضخامة فلكية.
الإسهام
إطار من ثلاثة محاور يوحّد الفيزياء الإحصائية مع التحليل البايزي للصور. المحور الأول: أثبتت الورقة أنّ حقول ماركوف العشوائية — حيث تعتمد كل نقطة على جيرانها فقط — مكافئة رياضياً لتوزيعات غيبس في الميكانيكا الإحصائية. المحور الثاني: قدّمت عيّنة غيبس التي تحدّث متغيراً واحداً في كل خطوة بالسحب من توزيعه الشرطي بمعلومية جيرانه، فتتولّد سلسلة ماركوف تتقارب نحو التوزيع البَعدي المطلوب. المحور الثالث: دمجت أخذ العيّنات مع التلدين المحاكي — أي خفض تدريجي لدرجة الحرارة — للوصول إلى البَعدية (MAP)، متفاديةً الحلول المحلية التي تعلق فيها الطرق الحتمية.
الأثر
أسّست هذه الورقة الثورة الحديثة في طرق مونت كارلو بسلاسل ماركوف. غدت عيّنة غيبس الأداة المحورية للحوسبة البايزية في الإحصاء والفيزياء وعلم الوراثة ومعالجة اللغة الطبيعية والتعلّم الآلي. فتحت الباب أمام الأساليب البايزية للتعامل مع مسائل تحوي آلاف أو ملايين المتغيرات — من نماذج الموضوعات (LDA) إلى التنبؤ ببنية البروتينات. وأصبح التكافؤ بين حقول ماركوف العشوائية وتوزيعات غيبس ركيزة أساسية في النماذج البيانية .
تخيّل أحجية (بازل) فقدتَ نصف قطعها. حلّها دفعةً واحدة مستحيل، لكنك تستطيع التقدّم قطعة بقطعة: اختر مكاناً فارغاً، تأمّل القطع المجاورة، ثم جرّب قطعة عشوائية تبدو منسجمة مع ما حولها. إن لم تتوافق بدّلها بأخرى. استمرّ بالتنقّل بين الفراغات واحداً تلو الآخر، وستلاحظ أنّ الصورة تتبلور شيئاً فشيئاً.
في البداية تتصرّف بجرأة — تجرّب ألواناً غير متوقّعة لأنّ هدفك هو . ومع تراكم الثقة تصبح أكثر صرامة، فلا تقبل إلا القطعة التي تتوافق مع محيطها بدقة عالية. هذا الانتقال التدريجي من الاستكشاف إلى الدقة هو جوهر التلدين المحاكي، أما استراتيجية تحديث فراغ واحد في كل خطوة فهي عيّنة غيبس.
المشكلة: استعادة الصور من ملاحظات مُشوَّشة
عندما تلتقط الكاميرا مشهداً ما، يتسلّل إلى كل بكسل في الصورة. النتيجة أنّ الصورة المُلاحَظة هي نسخة مشوَّهة من الصورة الأصلية : قد تكون العلاقة بسيطة مثل ، أو أكثر تعقيداً وتتضمن تمويهاً وتشوّهاً غير خطي. السؤال المطروح: إذا كان لدينا ، كيف نسترجع ؟
هذه مسألة عكسية غير محدّدة المعالم — أي أنّ صوراً نظيفة كثيرة كان يمكن أن تُنتج الملاحَظة نفسها. لاختيار الأفضل بينها نحتاج إلى مكوّنين من :
-
— كيف تبدو الصور النظيفة في العادة؟ البكسلات المتجاورة تميل إلى التشابه، والحواف الحادة قليلة نسبياً.
-
— لو كانت الصورة النظيفة هي ، ما احتمال أن نحصل على الصورة المشوَّشة التي نراها؟
مبرهنة بايز تدمج هذين المكوّنين في . أفضل استعادة ممكنة هي الصورة التي تُعظِّم هذا التوزيع البَعدي، وهو ما يُعرف بتقدير الأرجحية القصوى البَعدية (MAP).
لكنّ التحدي الحقيقي يكمن في حجم الفضاء: صورة بأبعاد 256×256 بكسل و256 مستوى رمادي تُنتج فضاءً من الصور الممكنة حجمه حالة. لا توجد خوارزمية قادرة على فحصها جميعاً. ما نحتاجه هو طريقة لاستكشاف هذا الفضاء بكفاءة، يقودها التوزيع البَعدي. وهنا بالضبط يظهر دور وعيّنة غيبس.
الجسر: حقول ماركوف العشوائية تساوي توزيعات غيبس
الفكرة الجوهرية الأولى في الورقة هي الكشف عن رابط عميق بين عالَمين يبدوان مختلفين تماماً.
العالم الأول: حقول ماركوف العشوائية — وهي أسلوب لنمذجة الصور بحيث تعتمد قيمة كل بكسل على جيرانه المباشرين فقط، لا على بكسلات بعيدة. وهذا طبيعي جداً للصور: هل البكسل فاتح أم داكن؟ الإجابة في الغالب تتحدّد بما يحيط به مباشرة.
العالم الثاني: توزيعات غيبس القادمة من الفيزياء الإحصائية — وهي احتمالية على تشكيلات نظام ما، تُعرَّف من خلال . الفكرة مستوحاة من الفيزياء: ذرّات البلّورة ترتّب نفسها لتقليل الطاقة، والتشكيلات منخفضة الطاقة (الشبكات البلورية المنتظمة) أكثر احتمالاً بفارق أُسّي مقارنةً بالتشكيلات عالية الطاقة (الحالات المضطربة).
مبرهنة هامرسلي-كليفورد أثبتت أنّ هذين العالَمين هما في الحقيقة شيء واحد: كل حقل ماركوف عشوائي يقابله توزيع غيبس والعكس صحيح. النتيجة العملية لهذا التكافؤ أننا نستطيع تصميم نماذج للصور بمجرد كتابة دالة طاقة — وهذا أسهل بكثير وأكثر بديهية من محاولة تحديد لكل بكسل على حدة.
تصوّر الأمر كأنك تنظر إلى تضاريس جغرافية: دالة الطاقة ترسم تلالاً ووديان فوق فضاء جميع الصور الممكنة. كل وادٍ يمثّل صورة معقولة. توزيع غيبس يُحدّد لك احتمال كل نقطة في هذه التضاريس — كلما كان الوادي أعمق ازداد احتمال التشكيلة المقابلة. أما الحرارة فهي تتحكّم في مدى حدّة تمركز الاحتمال في الوديان: عند حرارة مرتفعة يتجوّل النظام بحرّية في كل مكان، وعند حرارة منخفضة يستقرّ في أعمق الوديان.
بناء دالة الطاقة: الزُّمَر والجوار
تُبنى الطاقة من مساهمات محلية صغيرة تُسمّى جهود الزُّمَر. والزُّمرة هي مجموعة بكسلات كلّها جيران لبعضها البعض — وفي أبسط صورها مجرد زوج من بكسلين متلاصقين.
في سياق استعادة الصور، تتكوّن الطاقة من شقّين:
-
طاقة المُسبق — تُعاقب التشكيلات التي لا تبدو كصور طبيعية. مثال بسيط: . هذا الحدّ يُعاقب الفروق الكبيرة بين الجيران، فيدفع الصورة نحو النعومة. نماذج أكثر تقدماً تُضيف حدوداً تحفظ الحوافّ وتسمح بانتقالات حادة بين المناطق.
-
طاقة البيانات — تُعاقب التشكيلات التي تبتعد عن الصورة المُشوَّشة المرصودة. الشكل المعتاد: في حالة تشويش غاوسي تجميعي.
الطاقة الكلية تُحقّق التوازن بين النعومة والأمانة للبيانات. المُعامل هو من يتحكّم في هذه المقايضة: قيمة كبيرة لـ تعني ثقة أكبر بالبيانات، وقيمة صغيرة تعني اتّكالاً أكبر على المُسبق.
عيّنة غيبس: تحديث متغيّر واحد في كل مرة
أناقة عيّنة غيبس تكمن في بساطتها. إذا أردت من توزيع مشترك معقّد ، لا يلزمك أن تعرف هذا التوزيع كاملاً دفعة واحدة. يكفي أن تعرف كيف تسحب قيمة لكل متغير بشرط تثبيت بقية المتغيرات.
تمرّ الخوارزمية على جميع البكسلات واحداً تلو الآخر. عند كل بكسل :
-
ثبّت جميع البكسلات الأخرى عند قيمها الحالية.
-
احسب التوزيع الشرطي — وبفضل خاصية ماركوف هذا التوزيع يعتمد على الجيران فقط.
-
اسحب قيمة جديدة لـ من هذا التوزيع الشرطي.
حين تمرّ على كل بكسل مرة واحدة تكون قد أتممت مسحة كاملة، أي تكرارة واحدة. والمبرهنة الأساسية تقول: كلما زاد عدد المسحات، تقارب توزيع التشكيلة بأكملها نحو التوزيع المشترك المستهدف . بمعنى آخر، كل مسحة تُقرّب الصورة من كونها عيّنة حقيقية من التوزيع البَعدي.
التلدين المحاكي: من أخذ العيّنات إلى الأمثَلة
عيّنة غيبس عند حرارة ثابتة تُولّد عيّنات من التوزيع البَعدي — وهذا مفيد لحساب المتوسّطات وتقدير حالة عدم اليقين. لكنّ جيمان وجيمان كانا يريدان شيئاً آخر لاستعادة الصور: الصورة الأفضل على الإطلاق، أي تقدير MAP. وهذه مسألة لا مسألة أخذ عيّنات.
الحيلة مستوحاة من الفيزياء: التلدين المحاكي. عند حرارة عالية، يكون توزيع غيبس شبه منتظم فيتجوّل المُعيّن بحرّية ويستكشف الفضاء. ومع انخفاض الحرارة تدريجياً يتركّز الاحتمال على الحالات الأقل طاقةً. وحين تقترب من الصفر يتجمّع كل الاحتمال في .
الشرط الأساسي هو أنّ التبريد يجب أن يكون بطيئاً بما يكفي. أثبت جيمان وجيمان أنّه إذا انخفضت الحرارة وفق حيث ثابت كبير بدرجة كافية، فإنّ الخوارزمية تتقارب نحو الحل الأمثل الشامل باحتمال 1. كان هذا أول ضمان صارم للتلدين المحاكي على مسألة عامة.
من الناحية العملية، الجدول اللوغاريتمي بطيء للغاية. لذلك يستخدم الممارسون عادةً تبريداً أسرع (أُسّياً أو خطياً) ويقبلون بحلول تقريبية — وهي في الغالب حلول ممتازة. لكنّ قيمة الضمان النظري تبقى كبيرة لأنه أثبت أنّ الأساليب العشوائية قادرة على حلّ مسائل الأمثَلة الشاملة في فضاءات توافقية، وهذه نتيجة امتدّ أثرها إلى علم الأمثَلة في كل فروع الحوسبة.
عيّنة غيبس مقابل ميتروبوليس-هيستينغز
عيّنة غيبس هي في جوهرها حالة خاصة من خوارزمية ميتروبوليس-هيستينغز. كلتاهما من طرق بسلاسل ماركوف، وتبنيان توزيعها المستقر هو التوزيع المستهدف. الفرق بينهما يكمن في طريقة اقتراح التحديثات:
-
ميتروبوليس-هيستينغز تقترح تغييراً عشوائياً ثم تقرّر قبوله أو رفضه بناءً على نسبة القبول. كل رفض يعني هدر حسابات — السلسلة تبقى مكانها دون تقدّم.
-
عيّنة غيبس تسحب مباشرة من التوزيع الشرطي الدقيق، لذا كل اقتراح يُقبَل تلقائياً. لا خطوات مهدورة ولا حاجة لضبط توزيع الاقتراحات.
أما المقايضة فهي أنّ عيّنة غيبس تشترط قدرتك على حساب كل توزيع شرطي والسحب منه — وهذا سهل في حقول ماركوف العشوائية بفضل خاصية ماركوف، لكنه صعب في نماذج لا تتمتع بترافق شرطي. في المقابل، ميتروبوليس-هيستينغز تعمل مع أي نموذج طالما تستطيع حساب نسبة الكثافة.
عيّنة غيبس في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def gibbs_denoise(noisy, beta=1.5, lam=1.0, T_init=2.0, n_sweeps=50):
"""إزالة تشويش صورة ثنائية (+1/-1) باستخدام عيّنة غيبس مع التلدين."""
H, W = noisy.shape
x = noisy.copy() # نبدأ بالصورة المُشوَّشة كحالة أوّلية
for sweep in range(n_sweeps):
T = T_init / np.log(2 + sweep) # تبريد لوغاريتمي
for i in range(H):
for j in range(W):
# مجموع قيم الجيران (4 اتجاهات)
neighbors = 0
if i > 0: neighbors += x[i-1, j]
if i < H-1: neighbors += x[i+1, j]
if j > 0: neighbors += x[i, j-1]
if j < W-1: neighbors += x[i, j+1]
# فرق الطاقة بين x_ij = +1 و x_ij = -1
# المُسبق: -beta * x_i * مجموع(الجيران)
# البيانات: -lambda * x_i * y_i
delta_E = 2 * (beta * neighbors + lam * noisy[i, j])
# الاحتمال الشرطي لأن يكون x_ij = +1
p_plus = 1 / (1 + np.exp(-delta_E / T))
x[i, j] = +1 if np.random.rand() < p_plus else -1
return x
# كل بكسل يُحدَّث بالنظر فقط إلى جيرانه والقيمة المُشوَّشة.
# الحرارة تبدأ مرتفعة (استكشاف) ثم تنخفض (تركيز). هذا كل ما في الأمر.التقارب: لماذا تنجح الخوارزمية؟
تقوم الورقة على نتيجتَي تقارب أساسيتين:
إرغودية عيّنة غيبس. عند أي حرارة ثابتة ، تكون سلسلة ماركوف الناتجة عن عيّنة غيبس إرغودية — بمعنى أنها تستطيع الانتقال من أي تشكيلة إلى أي تشكيلة أخرى. يترتّب على ذلك أنّ لها توزيعاً مستقراً وحيداً هو بالضبط توزيع غيبس. وبعد عدد كافٍ من المسحات تصبح العيّنات ممثّلة بأمانة لـالتوزيع البَعدي.
تقارب التلدين. إذا انخفضت الحرارة ببطء كافٍ — تحديداً حيث ثابت مرتبط بارتفاع حواجز الطاقة — فإنّ احتمال وجود النظام في نهاية صغرى شاملة يتقارب نحو 1. المُعيّن هنا لا يكتفي بالاستكشاف: مع التلدين يتحوّل إلى أداة أمثَلة.
حين نضع النتيجتين معاً يتّضح أنّ عيّنة غيبس تمنحنا عيّنات صحيحة من التوزيع البَعدي (وهذا ما نحتاجه في الاستدلال البايزي)، وحين نُضيف إليها التلدين تمنحنا الحل الأمثل الشامل (وهذا ما نحتاجه لتقدير MAP).
الأثر: ثورة مونت كارلو بسلاسل ماركوف
1953
خوارزمية ميتروبوليس
ميتروبوليس وزملاؤه يُقدّمون أول خوارزمية مونت كارلو بسلسلة ماركوف لمحاكاة الأنظمة الفيزيائية. خوارزمية عامة لكنها تحتاج إلى توزيع اقتراح وآلية قبول ورفض.
1970
تعميم هيستينغز
هيستينغز يُعمِّم خوارزمية ميتروبوليس لتشمل اقتراحات غير متناظرة، مُؤسّساً إطار ميتروبوليس-هيستينغز الذي انتشر في عالم الإحصاء.
1984
جيمان وجيمان — هذه الورقة
قدّما عيّنة غيبس، وأثبتا التكافؤ بين حقول ماركوف العشوائية وتوزيعات غيبس، ودمجاها مع التلدين المحاكي لتقدير MAP. أطلقا بذلك طرق مونت كارلو بسلاسل ماركوف إلى الإحصاء التطبيقي والتعلّم الآلي.
1990
غلفاند وسميث
أوضحا أنّ عيّنة غيبس تتجاوز معالجة الصور بكثير وتنطبق على النماذج البايزية الهرمية في شتّى فروع الإحصاء. أشعلا بذلك ثورة مونت كارلو بسلاسل ماركوف في الإحصاء.
1993
برنامج BUGS
برنامج BUGS جعل أخذ العيّنات بطريقة غيبس في متناول غير المتخصصين — فتبنّى الأساليب البايزية باحثون في العلوم الاجتماعية وعلم الأوبئة والبيئة.
2003
تخصيص ديريكليه الكامن (LDA)
بلاي ونغ وجوردن يستخدمون عيّنة غيبس لنمذجة الموضوعات في النصوص — كل مستند مزيج من موضوعات وكل موضوع توزيع على الكلمات. عيّنة غيبس هي ما جعل الاستدلال ممكناً عملياً في هذا السياق.
2011
Stan والبرمجة الاحتمالية
لغة Stan ولغات البرمجة الاحتمالية الأخرى بُنيت على أسس مونت كارلو بسلاسل ماركوف، فأصبح الاستدلال البايزي أداة متاحة لأي نموذج إحصائي.
أثر هذه الورقة يتجاوز استعادة الصور بمراحل. أصبحت عيّنة غيبس المحرّك الحسابي الذي يقف وراء الاستدلال البايزي في آلاف التطبيقات. في كل مرة يبني فيها باحثٌ نموذجاً هرمياً أو يُشغّل نموذج موضوعات أو يُجري تعلّماً بنيوياً بايزياً، فإنه يستند إلى الأساس الذي وضعه جيمان وجيمان عام 1984.
المرجعGeman, S., Geman, D.. Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1984.
مصطلحات هذه الورقة
- توزيع غيبسGibbs Distribution
- سلسلة ماركوف الاحتماليةMarkov Chain
- الاستدلال البايزيBayesian Inference
- اختيار العينات الاحتماليةSampling
- الاحتمال البعدي الـمُحدثPosterior
- الاحتمال القبلي المبدئيPrior
- دالة الطاقةEnergy Function
- أساليب محاكاة مونت كارلوMonte Carlo
- التقارب الحسابيConvergence
- تقدير الأرجحية القصوىMaximum Likelihood Estimation
- التوزيع الغاوسيGaussian Distribution
- الاحتمال الشرطيConditional Probability
- الضجيج الحسابيNoise
- إزالة الضوضاءDenoising