DataCraft Hub
مكانك بين مجتمع يصنع القيمة من البيانات
AI | Data Science | Data Analytics | Machine Learning | Deep Learning | Neural Networks
26/09/2026
Backpropagation — كيف تتعلم الشبكة من أخطائها؟
في المنشور السابق رأينا كيف سمحت Multilayer Perceptron بانتقال الشبكات العصبية من وحدة واحدة إلى عدة طبقات قادرة على تعلم علاقات أكثر تعقيدًا.
لكن ظهور الطبقات خلق مشكلة جديدة:
إذا كانت الشبكة تحتوي على مئات أو آلاف الأوزان، ثم أعطت تنبؤًا خاطئًا، فكيف نعرف أي وزن ساهم في الخطأ؟ وكم يجب أن نغيّره؟
هنا تأتي Backpropagation.
الـ Backpropagation ليست نموذجًا عصبيًا مستقلًا، بل هي خوارزمية لحساب كيفية تأثير أخطاء النموذج في الأوزان المختلفة داخل الشبكة، بحيث يمكن تعديل هذه الأوزان أثناء التدريب.
يمكن فهم العملية من خلال أربع خطوات بسيطة:
1 — Forward Pass
تدخل البيانات إلى الشبكة، وتنتقل من طبقة إلى أخرى حتى تنتج الشبكة تنبؤها.
Input → Hidden Layers → Output
مثلًا، قد تتوقع الشبكة أن تكون النتيجة:
ŷ = 0.8
بينما القيمة الصحيحة هي:
y = 1
هناك إذن فرق بين ما توقعه النموذج وما كان يجب أن يتوقعه.
2 — حساب الخطأ
نستخدم Loss Function لقياس مقدار الاختلاف بين التنبؤ والقيمة الصحيحة.
الفكرة ببساطة:
«كلما كان التنبؤ بعيدًا عن الإجابة الصحيحة، كان الخطأ أكبر.»
وهنا لا نقول فقط إن النموذج «أخطأ»، بل نحاول قياس حجم الخطأ.
3 — Backward Pass
الآن نتحرك في الاتجاه المعاكس.
بدل أن تنتقل المعلومات من المدخل إلى المخرج، تنتقل معلومات الخطأ من المخرج إلى الطبقات السابقة.
تحاول الخوارزمية معرفة:
«ما مقدار مساهمة كل وزن في الخطأ النهائي؟»
وهذا ما يُعبّر عنه مفهوم Gradient.
يمكن تبسيطه للمبتدئ بأنه:
«إشارة تخبرنا كيف نغيّر الوزن حتى يقل الخطأ.»
4 — تحديث الأوزان
بعد معرفة اتجاه التغيير، تُعدّل الأوزان قليلًا.
إذا كان وزن معين يساهم في زيادة الخطأ، نعدله في الاتجاه الذي يساعد على تقليل الخطأ.
ثم تعيد الشبكة العملية مرة أخرى:
تنبؤ → قياس الخطأ → تتبع الخطأ للخلف → تعديل الأوزان
ومع تكرار هذه الدورة آلاف أو ملايين المرات، تبدأ الأوزان في الوصول إلى قيم تجعل تنبؤات الشبكة أفضل.
وهنا يمكن فهم العلاقة بين Backpropagation وGradient Descent:
Backpropagation تحسب كيف يؤثر الخطأ في الأوزان.
Gradient Descent يستخدم هذه المعلومات لتحديد اتجاه تحديث الأوزان.
أي أن الأولى تساعدنا على معرفة ماذا نغيّر، والثانية تساعدنا على معرفة كيف نغيّره للوصول إلى خطأ أقل.
وهذه العملية هي أحد الأسس التي جعلت تدريب الشبكات العصبية العميقة ممكنًا على نطاق واسع.
لكن هناك نقطة مهمة:
الشبكة لا «تفهم» الخطأ كما يفهمه الإنسان، ولا تعيد التفكير في قرارها. ما يحدث هو عملية رياضية متكررة تُستخدم فيها المشتقات والـ Gradients لتعديل ملايين المعاملات تدريجيًا.
الفكرة الأساسية
Forward Pass
النموذج يتنبأ.
↓
Loss
نقيس الخطأ.
↓
Backpropagation
نحدد تأثير الخطأ في الأوزان.
↓
Weight Update
نعدّل الأوزان.
↓
Repeat
نكرر العملية حتى يتحسن النموذج.
ومن هنا نصل إلى السؤال التالي:
إذا عرفنا اتجاه تعديل الأوزان، فكيف نحدد مقدار هذا التعديل؟
هذا يقودنا إلى Gradient Descent، إحدى أهم الآليات التي تستخدمها الشبكات العصبية للوصول تدريجيًا إلى معاملات أفضل.
25/09/2026
Multilayer Perceptron — عندما لا تكفي وحدة واحدة
في المنشور السابق بدأنا من Perceptron: وحدة بسيطة تستقبل مدخلات، تعطي كل مدخل وزنًا، تجمع التأثيرات، ثم تتخذ قرارًا.
لكن هذه الوحدة تملك قيدًا أساسيًا:
إنها تستطيع تعلم حد فاصل خطي.
أي أنها مناسبة عندما يمكن فصل الفئات بخط مستقيم، لكن ماذا يحدث عندما تكون العلاقة بين البيانات أكثر تعقيدًا؟
هنا ظهرت فكرة Multilayer Perceptron (MLP).
بدل الاعتماد على وحدة واحدة، يتم ترتيب عدة وحدات في طبقات:
Input Layer → Hidden Layers → Output Layer
طبقة الإدخال تستقبل البيانات، والطبقات المخفية تحول هذه البيانات تدريجيًا إلى تمثيلات أكثر فائدة، ثم تنتج طبقة الإخراج النتيجة النهائية.
لكن إضافة الطبقات وحدها ليست كافية.
لو كانت كل طبقة تنفذ عملية خطية فقط، فإن مجموعة الطبقات ستظل في النهاية تعادل عملية خطية واحدة. لذلك تحتاج الشبكة إلى عنصر أساسي آخر:
Activation Function
دالة التفعيل تضيف اللاخطية (Nonlinearity) إلى الشبكة، وهذا ما يسمح لها بتعلم علاقات أكثر تعقيدًا من مجرد خط مستقيم.
يمكن تبسيط ما يحدث داخل كل وحدة إلى:
المدخلات → حساب التأثيرات → إضافة Bias → Activation → المخرج
ثم يصبح مخرج طبقة ما هو مدخلًا للطبقة التالية.
وهكذا تبدأ الشبكة ببناء تمثيل تدريجي للبيانات.
يمكن التفكير في الأمر كالتالي:
الطبقة الأولى تلتقط أنماطًا أولية من البيانات.
الطبقة التالية تستخدم هذه الأنماط لبناء علاقات أكثر تعقيدًا.
الطبقات الأعمق تجمع هذه العلاقات لتكوين تمثيلات أكثر تجريدًا.
وهنا تكمن الفكرة المهمة في الشبكات العصبية العميقة:
«التعقيد لا يأتي من وحدة عصبية واحدة، بل من تركيب عدد كبير من الوحدات في طبقات تتعلم تمثيلات متتابعة.»
ولنفترض أن لدينا بيانات لا يمكن فصل فئاتها بخط مستقيم.
قد يفشل Perceptron في تعلمها، بينما يستطيع MLP، بفضل الطبقات ودوال التفعيل، تشكيل حدود قرار أكثر تعقيدًا تتوافق مع بنية البيانات.
وهذا لا يعني أن MLP «يفهم» البيانات بالطريقة البشرية، بل يعني أنه يتعلم مجموعة من التحويلات والمعاملات التي تسمح له بتمثيل أنماط لا تستطيع العلاقة الخطية البسيطة تمثيلها.
لكن ظهور الطبقات يطرح سؤالًا جديدًا:
كيف تعرف الشبكة أي الأوزان يجب أن تغيّرها عندما تخطئ؟
هنا نصل إلى واحدة من أهم الأفكار في تاريخ الشبكات العصبية:
Backpropagation
وهي الآلية التي تسمح للشبكة بتتبع الخطأ عبر الطبقات وتحديد كيفية تعديل الأوزان لتحسين النتيجة.
ومن هنا تبدأ الشبكة العصبية بالانتقال من مجرد بنية حسابية إلى نظام يتعلم من أخطائه.
الفكرة الأساسية
Perceptron:
وحدة بسيطة → قرار خطي.
MLP:
عدة وحدات + طبقات + لاخطية → تمثيلات أكثر تعقيدًا.
وهذه الفكرة البسيطة هي الأساس الذي سنبني عليه لاحقًا فهم الشبكات العصبية العميقة ومعماريات أكثر تخصصًا.
24/09/2026
The Perceptron — أول خطوة نحو الشبكات العصبية
عندما نتحدث اليوم عن الشبكات العصبية العميقة، وعن النماذج التي تستطيع تحليل الصور والنصوص والإشارات والبيانات المعقدة، يبدو من السهل أن ننسى أن وراء هذه الأنظمة الحديثة فكرة حسابية بسيطة جدًا بدأت قبل عقود: Perceptron.
الـ Perceptron هو نموذج حسابي بسيط يستقبل مجموعة من المدخلات، ويعطي كل مدخل وزنًا يعبّر عن مقدار تأثيره في القرار، ثم يجمع هذه التأثيرات ليصل إلى نتيجة.
يمكن تخيل الأمر بهذه الطريقة:
Input × Importance → Contribution
أي أن كل معلومة تدخل إلى النموذج، ويحدد النموذج من خلال الوزن مقدار تأثيرها في القرار.
مثلًا، إذا كان لدينا مدخلان:
x₁ = 2
x₂ = 5
وكانت أوزانهما:
w₁ = 3
w₂ = 1
فإن النموذج يحسب تأثير كل منهما:
2 × 3 = 6
5 × 1 = 5
ثم يجمع التأثيرين:
6 + 5 = 11
وهنا يأتي دور Bias، وهو قيمة إضافية تساعد النموذج على ضبط نقطة اتخاذ القرار.
لذلك يمكن تبسيط العملية كلها إلى:
(Input × Weight) + (Input × Weight) + Bias → Decision
بعد ذلك يمر الناتج عبر Activation Function لتحديد المخرج الذي سيعطيه النموذج.
في أبسط صورة، يمكن أن يكون القرار:
إذا كانت النتيجة ≥ حد معين → Class 1
وإذا كانت أقل منه → Class 0
إذن الفكرة الأساسية ليست معقدة:
«النموذج ينظر إلى المدخلات، يقدّر تأثير كل منها، يجمع التأثيرات، ثم يحوّل النتيجة إلى قرار.»
لكن السؤال الأهم هو: من أين تأتي هذه الأوزان؟
هنا تبدأ عملية التعلم.
في البداية تكون الأوزان غير مناسبة، ولذلك قد يخطئ الـ Perceptron في بعض الحالات. عندما يحدث الخطأ، يقوم بتعديل أوزانه، بحيث يصبح القرار في المرات القادمة أقرب إلى البيانات التي يتعلم منها.
ومع تكرار العملية، يتعلم النموذج طريقة لفصل الحالات إلى فئات مختلفة.
وهنا تظهر إحدى الأفكار الأساسية في التعلم الآلي:
«نحن لا نخبر النموذج بالقاعدة التي يجب أن يستخدمها؛ بل نعطيه أمثلة، وهو يتعلم المعلمات التي تساعده على اتخاذ القرار.»
لكن الـ Perceptron لديه حد مهم جدًا: يستطيع تعلم حدود قرار خطية فقط.
أي أنه يستطيع، في حالة بسيطة، أن يفصل مجموعتين من البيانات بخط مستقيم، أو بمستوى في أبعاد أعلى. لكنه يواجه مشكلة عندما تكون العلاقة بين الفئات أكثر تعقيدًا ولا يمكن فصلها بهذه الطريقة.
وهنا ظهر السؤال الذي قاد إلى الخطوة التالية في تطور الشبكات العصبية:
ماذا يحدث إذا لم نكتفِ بوحدة واحدة؟
ماذا لو جمعنا عدة وحدات، ووضعناها في طبقات متتابعة، بحيث تستطيع الطبقات تعلم تمثيلات أكثر تعقيدًا؟
من هنا ننتقل إلى:
Perceptron → Multilayer Perceptron → Deep Neural Networks
وهذا هو المسار الذي سنبنيه خطوة بخطوة.
لذلك، فإن فهم الـ Perceptron ليس مجرد دراسة نموذج قديم؛ بل هو فهم للفكرة الأساسية التي بُنيت عليها أجيال لاحقة من الشبكات العصبية.
الفكرة الأساسية:
مدخلات → أوزان تحدد التأثير → جمع → قرار.
ثم تأتي الطبقات، ودوال التفعيل، وخوارزميات التعلم لتجعل هذه الفكرة البسيطة قادرة على تعلم أنماط أكثر تعقيدًا.
11/09/2026
في تقييم نماذج التعلّم الآلي، تبدو Accuracy واحدة من أبسط المقاييس وأكثرها وضوحًا: نسبة التنبؤات الصحيحة إلى إجمالي التنبؤات. لكن بساطة هذا التعريف لا تعني أن تفسير النتيجة بسيط بالضرورة.
تخيل نظامًا لتحليل صور الأشعة بهدف المساعدة في اكتشاف مرض نادر. إذا احتوت مجموعة الاختبار على 10,000 صورة، وكانت 9,700 منها لحالات سليمة و300 فقط لحالات مصابة، فإن نموذجًا يصنّف جميع الصور على أنها سليمة سيحقق Accuracy تبلغ 97%، رغم أنه لم يكتشف أي حالة مرضية.
المشكلة هنا ليست أن الحساب خاطئ؛ الحساب صحيح تمامًا. المشكلة أن المقياس قد يكون صحيحًا حسابيًا، لكنه غير كافٍ لتمثيل الهدف العملي للنظام.
وهذا يوضح فرقًا أساسيًا بين أمرين غالبًا ما يُخلط بينهما: أن يكون المقياس محسوبًا بصورة صحيحة، وأن يكون مناسبًا للحكم على المهمة التي نقيسها.
عندما تكون الفئات غير متوازنة، قد تهيمن الفئة الأكبر على النتيجة الإجمالية، فتبدو الأخطاء المتعلقة بالفئة الأقل عددًا صغيرة إحصائيًا، رغم أنها قد تكون جوهر المشكلة التي صُمم النموذج لمعالجتها. ولهذا لا يكفي النظر إلى عدد التنبؤات الصحيحة، بل يجب تفكيكها إلى مكوناتها.
هنا تأتي Confusion Matrix بوصفها أداة أساسية لفهم سلوك المصنف. فهي تميز بين:
True Positive: حالة إيجابية اكتشفها النموذج بصورة صحيحة.
True Negative: حالة سليمة صُنّفت بصورة صحيحة.
False Positive: حالة سليمة صُنّفت خطأً على أنها إيجابية.
False Negative: حالة إيجابية أخفق النموذج في اكتشافها.
هذا التفكيك مهم لأن الخطأ ليس مجرد رقم؛ بل هو نوع من السلوك له معنى وتكلفة مختلفة.
ومن هذه المكونات تُشتق مقاييس أكثر ارتباطًا بطبيعة المهمة. فـ Precision تجيب عن سؤال: عندما أعلن النموذج أن الحالة إيجابية، إلى أي مدى يكون هذا الإعلان صحيحًا؟ بينما تجيب Recall عن سؤال مختلف: من بين الحالات الإيجابية الفعلية، كم حالة استطاع النموذج اكتشافها؟
الفرق بين السؤالين ليس تقنيًا فقط. ففي نظام للكشف عن مرض خطير، قد يكون تفويت حالة مصابة أكثر خطورة من إرسال إنذار إضافي لحالة سليمة. بينما في نظام آخر، مثل تصفية التنبيهات أو فرز طلبات الفحص، قد تكون كثرة الإنذارات الخاطئة هي المشكلة الأكبر.
لذلك لا يوجد مقياس «أفضل» بصورة مطلقة. اختيار المقياس يجب أن يبدأ من طبيعة القرار الذي سيدعمُه النموذج، وتوزيع الفئات، وتكلفة الأخطاء، والهدف الذي نريد تحسينه. وقد نحتاج إلى موازنة Precision وRecall باستخدام F1-Score، أو إلى استخدام مقاييس ومنهجيات أخرى عندما تكون تكلفة الأخطاء غير متماثلة.
كما أن ارتفاع نتيجة الاختبار لا يضمن بالضرورة أن النموذج صالح للاستخدام الفعلي. فقد تكون البيانات غير ممثلة للبيئة الحقيقية، أو يكون توزيع الحالات مختلفًا، أو تكون طريقة التقييم قد أخفت نوعًا محددًا من الأخطاء. ولهذا فإن تقييم النموذج ليس مرحلة شكلية تأتي بعد التدريب، بل جزء من تعريف ما يعنيه «الأداء الجيد» في المقام الأول.
الخلاصة: لا ينبغي أن نسأل فقط: «كم بلغت دقة النموذج؟» بل يجب أن نسأل: «ما الذي تقيسه هذه الدقة؟ وما الذي لا تظهره؟ وهل يتوافق هذا القياس مع المخاطر والهدف الحقيقي للمهمة؟»
ففي الأنظمة الذكية، لا تبدأ جودة التقييم من اختيار المعادلة، بل من اختيار السؤال الصحيح الذي نريد من المعادلة أن تجيب عنه.
07/09/2026
لماذا يحتاج الذكاء الاصطناعي إلى ملايين الأمثلة؟
إذا أردنا تعليم طفل الفرق بين القطة والكلب، فلن نحتاج بالضرورة إلى عرض مليون صورة عليه.
نعرض له بعض الأمثلة، ونشرح له الفرق، ثم يبدأ تدريجيًا في تكوين تصور يساعده على التمييز بينهما.
فلماذا تبدو كمية البيانات في تدريب نماذج الذكاء الاصطناعي مختلفة إلى هذا الحد؟
لماذا تحتاج بعض النماذج إلى آلاف، أو ملايين، أو حتى مليارات الأمثلة؟
الإجابة تبدأ من طبيعة ما نريد من النموذج أن يتعلمه.
فنحن لا نريد أن يتعرف على الصور التي شاهدها.
نريد منه أن يتعامل مع صور لم يشاهدها من قبل.
وهذا فرق جوهري.
---
لنفترض أننا نريد تدريب نموذج على التمييز بين القطط والكلاب.
أعطيناه صورة لقطة.
تنبأ:
Dog
نحسب الخطأ.
ثم نحدّث أوزانه.
نعطيه صورة أخرى.
ثم أخرى.
ثم أخرى.
مع كل مثال، يحصل النموذج على فرصة جديدة لتعديل تمثيلاته الداخلية.
لكن لو أعطيناه صورًا متشابهة جدًا، فقد يتعلم أشياء لا نريد منه أن يعتمد عليها.
قد يربط «القطة» بخلفية معينة.
أو بإضاءة معينة.
أو بزاوية تصوير متكررة.
أو بنمط موجود في مجموعة التدريب أكثر مما هو موجود في الكائن نفسه.
وهنا تظهر أهمية تنوع البيانات.
---
تخيل أن جميع صور القطط في بيانات التدريب مأخوذة داخل المنازل، وجميع صور الكلاب مأخوذة في الحدائق.
قد يتعلم النموذج شيئًا يبدو ذكيًا جدًا على الورق:
منزل → قطة
حديقة → كلب
ستكون نتائجه ممتازة على بيانات تشبه ما تدرب عليه.
لكن ماذا سيحدث عندما نعطيه صورة لقطة في حديقة؟
هنا ينكشف الفرق بين:
التعلم من البيانات
و
التعلم مما نريد أن تمثله البيانات.
النموذج لا يعرف تلقائيًا أي جزء من المثال هو المهم.
هو يتعلم الأنماط التي تساعده على تقليل الخطأ.
ولهذا فإن جودة البيانات وطريقة إعدادها جزء أساسي من جودة النموذج نفسه.
---
وهنا نصل إلى مفهوم مهم في Machine Learning:
Generalization — التعميم
التعميم يعني أن ما تعلمه النموذج من الأمثلة السابقة يساعده عندما يواجه أمثلة جديدة.
فإذا تعلم من صور قطط مختلفة:
- أحجام مختلفة
- زوايا مختلفة
- إضاءات مختلفة
- خلفيات مختلفة
- سلالات مختلفة
- أوضاع مختلفة
فهو يحصل على فرص أكبر لتعلم خصائص مرتبطة بالقطة نفسها، بدل الاعتماد على تفاصيل عرضية مرتبطة بمجموعة محددة من الصور.
وهذا هو الهدف.
ليس أن يحفظ الأمثلة.
بل أن يتعلم منها ما يمكن نقله إلى أمثلة أخرى.
---
لكن كثرة البيانات وحدها لا تحل المشكلة.
وهذه نقطة مهمة جدًا.
يمكن أن يكون لدينا ملايين الصور، لكنها:
ناقصة،
أو منحازة،
أو مكررة،
أو سيئة التصنيف،
أو لا تمثل الحالات التي سيواجهها النموذج في الواقع.
وفي هذه الحالة، قد تكون لدينا كمية كبيرة من البيانات… لكن معرفة أقل مما نتوقع.
لذلك عندما نتحدث عن بيانات التدريب، لا ينبغي أن نسأل فقط:
«كم عدد الأمثلة؟»
بل يجب أن نسأل أيضًا:
«ما مدى جودتها؟»
«ما مدى تنوعها؟»
«هل تمثل الواقع الذي سيعمل فيه النموذج؟»
«وهل تمثل الحالات الصعبة والنادرة؟»
---
وهناك سبب آخر يجعل البيانات مهمة جدًا.
العالم الحقيقي لا يأتي في صورة مرتبة.
القطة لا تظهر دائمًا في منتصف الصورة.
ولا تكون الإضاءة مثالية.
ولا تكون الصورة واضحة.
وقد يكون نصف الكائن مخفيًا.
وقد تظهر عدة قطط في المشهد.
وقد تكون القطة صغيرة جدًا مقارنة بحجم الصورة.
وقد تواجه الكاميرا زاوية لم يرها النموذج كثيرًا أثناء التدريب.
لذلك يحتاج النموذج إلى أمثلة تساعده على مواجهة التنوع الحقيقي.
وهنا تصبح البيانات نوعًا من النافذة التي يتعلم النموذج من خلالها عن العالم الذي سيعمل فيه.
---
لكن هناك حد فاصل مهم.
إذا أعطينا النموذج عددًا كبيرًا من الأمثلة، وسمحنا له بأن يتكيف معها بشكل مفرط، فقد يبدأ في تعلم تفاصيل خاصة ببيانات التدريب بدل تعلم الأنماط القابلة للتعميم.
وهذا ما نعرفه باسم:
Overfitting.
في هذه الحالة قد يبدو النموذج ممتازًا أثناء الاختبار على بيانات التدريب…
لكن عندما نضع أمامه بيانات جديدة، يتراجع أداؤه.
وكأن النموذج يقول:
««أعرف الأمثلة التي تدربت عليها… لكنني لست جيدًا جدًا في التعامل مع أمثلة جديدة.»»
وهذا عكس ما نريده تمامًا.
---
ولهذا تُقسّم البيانات عادةً بطرق تساعدنا على معرفة ما إذا كان النموذج يتعلم فعلًا أم أنه أصبح جيدًا فقط في التعامل مع البيانات التي رآها.
نستخدم مثلًا:
Training Data
لتعليم النموذج.
ثم:
Validation Data
للمساعدة في تقييم وضبط عملية التدريب.
ثم:
Test Data
لتقييم الأداء على بيانات لم تُستخدم في تدريب النموذج.
الفكرة ليست مجرد تقسيم الملفات إلى ثلاثة مجلدات.
الفكرة أعمق:
نريد أن نعرف هل ما تعلمه النموذج يمكن أن يصمد أمام بيانات جديدة لم يرها أثناء التعلم.
---
ولهذا فإن أفضل نموذج ليس بالضرورة النموذج الذي يستطيع تفسير بيانات التدريب بأعلى دقة.
النموذج الأفضل هو الذي يستطيع أن يأخذ ما تعلمه من الأمثلة…
ويستخدمه بشكل جيد عندما يتغير المثال.
صورة جديدة.
شخص جديد.
كاميرا جديدة.
إضاءة مختلفة.
بيئة مختلفة.
حالة لم يرها من قبل.
هنا يظهر التعميم الحقيقي.
---
وهذه الفكرة تمتد إلى ما هو أبعد من Computer Vision.
في اللغة، نريد نموذجًا لا يحفظ الجمل التي قرأها، بل يستطيع التعامل مع صياغات جديدة.
في كشف الاحتيال، لا نريد نموذجًا يحفظ العمليات السابقة، بل يكتشف أنماطًا جديدة قد تشير إلى عملية مشبوهة.
وفي الطب، لا يكفي أن ينجح النموذج على صور المستشفى التي تدرب عليها؛ بل يجب أن يكون قادرًا على التعامل مع صور جديدة وبيئات مختلفة ضمن حدود الاستخدام التي تم التحقق منها.
في كل هذه الحالات، يعود السؤال نفسه:
هل تعلم النموذج نمطًا يمكن تعميمه؟
أم أنه وجد طريقة جيدة للتعامل مع الأمثلة التي أعطيناه إياها فقط؟
---
وهنا نفهم لماذا لا يمكن اختزال الذكاء الاصطناعي في:
«كلما زادت البيانات أصبح النموذج أذكى.»
الأمر أكثر تعقيدًا.
نحتاج إلى بيانات مناسبة.
وتمثيل مناسب.
ومعمارية مناسبة.
وهدف تدريبي مناسب.
وتقييم مناسب.
والأهم:
بيانات تشبه العالم الذي سيواجهه النموذج فعلًا.
فالبيانات ليست مجرد وقود يدخل إلى النموذج.
إنها جزء أساسي من البيئة التي يتعلم منها.
---
والآن نعود إلى السؤال الذي بدأنا منه:
لماذا يحتاج AI إلى ملايين الأمثلة؟
لأن النموذج لا يريد أن يعرف المثال نفسه.
إنه يريد أن يتعلم من الأمثلة أنماطًا يمكن استخدامها خارجها.
كل مثال جديد يمكن أن يساعده على التمييز بين ما هو جوهري وما هو عرضي.
لكن النجاح لا يأتي من العدد وحده.
مليون مثال سيئ لا يعادل بالضرورة مجموعة أصغر لكنها أكثر جودة وتمثيلًا للمشكلة.
ولهذا فإن بناء نموذج جيد يبدأ قبل التدريب بوقت طويل.
يبدأ من السؤال:
«ما البيانات التي نحتاجها أصلًا؟»
ثم:
«كيف نجمعها؟»
«كيف نتحقق من جودتها؟»
«وكيف نعرف أن النموذج تعلم الشيء الصحيح؟»
وهنا تظهر مشكلة أخرى أكثر دقة.
قد ينتج النموذج تنبؤًا بنسبة ثقة عالية جدًا…
حتى عندما يكون مخطئًا.
فكيف يمكن لنظام تعلم من كل هذه البيانات أن يكون واثقًا إلى هذا الحد… ثم يخطئ؟
هذا ما سنفتحه في الستار القادم.
#البيانات #التعميم
06/09/2026
عندما يتعلّم الذكاء الاصطناعي… ماذا يتغيّر داخله؟
نستخدم كلمة «تعلّم» كثيرًا عند الحديث عن الذكاء الاصطناعي.
نقول:
«النموذج تعلّم التعرف على القطط.»
أو:
«النموذج تعلّم ترجمة النصوص.»
أو:
«النموذج تعلّم اكتشاف الأشياء في الصور.»
لكن ماذا تعني كلمة تعلّم هنا فعلًا؟
هل يضيف النموذج معلومة جديدة إلى ذاكرته؟
هل يخزن كل صورة رآها؟
هل توجد بداخله قائمة تقول:
«قطة = أذنان + عينان + فراء؟»
الأمر مختلف عن ذلك بكثير.
لفهمه، علينا أن ننظر إلى ما يحدث داخل النموذج أثناء التدريب.
---
في البداية، يمتلك النموذج مجموعة ضخمة من القيم تسمى عادةً Weights.
هذه الأوزان ليست قواعد مكتوبة باللغة التي نفهمها.
وليست مفاهيم جاهزة مثل:
««هذه قطة.»»
إنها قيم رقمية تشكل الطريقة التي تنتقل بها المعلومات داخل الشبكة.
وفي بداية التدريب، تكون هذه القيم غير مناسبة للمهمة بعد.
يدخل النموذج مثالًا.
فيحاول أن ينتج نتيجة.
لكن النتيجة قد تكون خاطئة تمامًا.
لنفترض أننا أعطيناه صورة قطة، وكان المطلوب تصنيفها.
قد ينتج:
Dog — 0.71
بينما الإجابة الصحيحة:
Cat
هنا نحتاج إلى معرفة:
كم كان النموذج مخطئًا؟
وهنا يظهر مفهوم أساسي:
Loss.
---
الـLoss هو مقياس يساعدنا على التعبير عن مدى ابتعاد تنبؤ النموذج عن النتيجة المطلوبة.
إذا كان التنبؤ سيئًا، تكون الخسارة أكبر.
وإذا أصبح التنبؤ أقرب إلى المطلوب، تنخفض الخسارة.
لكن معرفة أن النموذج أخطأ لا تكفي.
نحتاج إلى معرفة شيء أكثر أهمية:
أي الأوزان ساهمت في هذا الخطأ؟
وهنا تأتي واحدة من أهم الأفكار في التعلم العميق:
Backpropagation.
بدل أن ننظر إلى الخطأ باعتباره مجرد رقم نهائي، نحاول تتبع تأثيره عبر الشبكة، وحساب كيف يمكن لكل وزن أن يتغير لتقليل الخطأ.
يُستخدم لذلك مفهوم Gradient.
وبصورة مبسطة:
Prediction
↓
Loss
↓
Gradient
↓
Weight Update
ثم تبدأ العملية من جديد.
---
وهنا يحدث «التعلّم» بالمعنى العملي.
لا يجلس النموذج ويقرأ المثال ثم يحتفظ به كذكرى.
بل تتغير أوزانه تدريجيًا.
تغيير صغير هنا.
وتغيير آخر هناك.
ثم مثال جديد.
ثم خطأ جديد.
ثم تحديث جديد.
وتتكرر العملية مرات كثيرة جدًا.
ومع الوقت، تبدأ الشبكة في اكتساب أوزان تجعلها أكثر قدرة على أداء المهمة التي دُرّبت عليها.
ولهذا يمكن تبسيط فكرة التدريب إلى:
«النموذج يتنبأ → يخطئ → يقيس الخطأ → يحدّث أوزانه → يحاول مرة أخرى.»
---
لكن هناك تفصيل مهم.
من الذي يقرر مقدار التغيير في الأوزان؟
هنا تدخل خوارزميات Optimization، مثل Gradient Descent ومشتقاته.
الفكرة الأساسية بسيطة:
إذا كان لدينا سطح يمثل مقدار الخطأ، فنحن نريد تحريك النموذج في الاتجاه الذي يساعده على تقليل هذا الخطأ.
ولهذا يُستخدم الـGradient لمعرفة اتجاه التغيير.
وبصورة مبسطة جدًا:
New Weight = Old Weight − Learning Rate × Gradient
الـLearning Rate يحدد حجم الخطوة.
خطوة كبيرة جدًا قد تجعل التدريب غير مستقر أو يتجاوز مناطق جيدة.
وخطوة صغيرة جدًا قد تجعل التعلم بطيئًا.
ومن هنا يصبح التدريب نوعًا من البحث التدريجي عن مجموعة من الأوزان تجعل النموذج أفضل في المهمة المطلوبة.
---
والآن يمكننا فهم شيء مهم عن كلمة «تعلم».
عندما نقول إن نموذج الرؤية الحاسوبية تعلّم التمييز بين القطط والكلاب، فنحن لا نعني أنه حفظ الصور التي شاهدها واحدةً واحدة.
المطلوب أن يتعلم أنماطًا قابلة للتعميم.
أي أن يرى صورة جديدة لم تظهر في بيانات التدريب، ثم يستطيع التعامل معها بناءً على ما تعلمه من الأمثلة السابقة.
وهنا يظهر الفرق بين:
Memorization
و
Generalization
الحفظ يعني أن النموذج أصبح جيدًا في التعامل مع الأمثلة التي رآها.
أما التعميم فيعني أن ما تعلمه يساعده أيضًا عندما يواجه أمثلة جديدة.
وهذا هو الهدف الحقيقي من التعلم الآلي.
---
وهنا تظهر مفارقة جميلة.
كلما قلنا إن النموذج «يتعلم»، قد يبدو الأمر وكأن المعرفة تدخل إليه مباشرة.
لكن ما يحدث في الداخل أكثر تجريدًا.
لا توجد داخل الشبكة بالضرورة جملة تقول:
««القطط لها آذان.»»
بل تتغير أعداد كثيرة جدًا بطريقة تجعل النموذج قادرًا على بناء تمثيلات تساعده على التمييز.
ومع تكرار التدريب، تتشكل بنية داخلية معقدة من الأوزان والتمثيلات.
ولهذا فإن سؤال:
««أين توجد معرفة النموذج؟»»
ليس له جواب بسيط مثل:
««في هذا المكان.»»
المعرفة التي نستخدمها لوصف ما تعلمه النموذج موزعة عبر عدد هائل من المعلمات والتفاعلات بينها.
---
والأمر يصبح أكثر إثارة عندما نتذكر حجم بعض النماذج الحديثة.
قد يحتوي النموذج على ملايين أو مليارات أو أكثر من المعلمات.
لكن الرقم وحده لا يخبرنا بما يعرفه النموذج، ولا يعني تلقائيًا أن نموذجًا أكبر سيكون أفضل في كل مهمة.
المهم هو:
كيف تمثل هذه المعلمات المعلومات؟
وكيف تم تدريبها؟
وعلى أي بيانات؟
وبأي هدف؟
وتحت أي قيود؟
وهنا نصل إلى فكرة أساسية في الذكاء الاصطناعي:
جودة النموذج ليست نتيجة عدد المعلمات وحده.
إنها نتيجة تفاعل بين المعمارية، والبيانات، وطريقة التدريب، ودالة الخسارة، وخوارزمية التحسين، وغيرها من العوامل.
---
والآن، إذا عدنا إلى الصورة التي بدأنا بها في المنشور السابق، يمكننا رؤية الرحلة بشكل أوضح.
الصورة تدخل كنمط من القيم الرقمية.
النموذج يعالجها ويبني تمثيلات.
يصدر تنبؤًا.
التنبؤ يُقارن بالنتيجة المطلوبة.
يُحسب الخطأ.
ثم تُستخدم الـGradients لتحديث الأوزان.
وبعد عدد هائل من هذه التكرارات، يصبح النموذج أكثر قدرة على أداء المهمة.
أي أن ما نسميه:
«قدرة النموذج على الرؤية»
لم يظهر فجأة.
بل بُني تدريجيًا من خلال التدريب.
---
لكن هنا يظهر سؤال أكثر عمقًا:
إذا كان النموذج يتعلم من البيانات عبر تقليل الخطأ…
فماذا يحدث عندما تكون البيانات نفسها ناقصة أو منحازة أو غير ممثلة للواقع؟
هل يستطيع النموذج أن يتعلم تمثيلًا جيدًا؟
وهل يمكن لنموذج أن يكون ممتازًا على بيانات التدريب، لكنه يفشل عندما يواجه العالم الحقيقي؟
هنا تبدأ قصة أخرى مهمة جدًا في الذكاء الاصطناعي:
البيانات، والتعميم، وOverfitting.
وهي التي سنفتحها في الخطوة التالية خلف الستار.
لأن النموذج لا يتعلم من العالم مباشرة.
إنه يتعلم من البيانات التي نضعها أمامه.
وهذا الفرق…
قد يغيّر كل شيء.
#البيانات
05/09/2026
كيف يعرف AI ما الذي يجب أن يهتم به؟
عندما نتعامل مع جملة، لا نعطي كل كلمة القدر نفسه من الاهتمام.
إذا قرأنا:
«وضعتُ الكتاب على الطاولة لأنه كان مفتوحًا.»
فإن فهم كلمة «كان» أو «مفتوحًا» لا يعتمد على الكلمة وحدها.
نحن نربطها بما حولها.
وعندما نقرأ:
«ذهبت سارة إلى المكتبة لأنها كانت تبحث عن كتاب.»
نفهم أن كلمة «لأنها» مرتبطة بسارة، لا بالمكتبة.
نحن لا نقرأ الكلمات كعناصر منفصلة.
بل نبني بينها علاقات أثناء القراءة.
وهنا تظهر إحدى الأفكار الأكثر أهمية في تطور نماذج الذكاء الاصطناعي:
Attention.
لكن لماذا احتاج النموذج إليها أصلًا؟
---
عندما يتعامل النموذج مع سلسلة من الكلمات، فإن السؤال ليس فقط:
ما الكلمات الموجودة؟
بل:
ما علاقة كل كلمة بالكلمات الأخرى؟
وأي الكلمات أكثر أهمية لفهم الكلمة التي نعالجها الآن؟
هذه هي الفكرة المبسطة وراء Attention.
بدل أن ينظر النموذج إلى كلمة بمعزل عن السياق، يسمح له هذا المبدأ بأن ينظر إلى أجزاء أخرى من المدخل ويمنحها أوزانًا مختلفة بحسب علاقتها بالسياق.
أي أن النموذج لا يسأل فقط:
«ما هذه الكلمة؟»
بل يسأل ضمنيًا:
«ما الكلمات التي تساعدني على تفسيرها هنا؟»
---
لنأخذ مثالًا بسيطًا:
«The animal didn't cross the street because it was tired.»
ما المقصود بـ it؟
لفهم الجملة، نحتاج إلى معرفة أي جزء سابق ترتبط به هذه الكلمة.
الإنسان يفعل ذلك بصورة طبيعية تقريبًا.
أما النموذج، فيحتاج إلى آلية تساعده على تعلم هذه العلاقات من البيانات.
وهنا يأتي Attention.
---
لكن كلمة «انتباه» قد تجعلنا نتخيل أن النموذج لديه وعي أو تركيز بالمعنى البشري.
وهذا ليس المقصود.
Attention ليست عينًا داخل النموذج.
وليست شعورًا بالأهمية.
إنها آلية رياضية تساعد النموذج على حساب مقدار ارتباط عناصر المدخل بعضها ببعض أثناء معالجة المعلومات.
بصورة مبسطة جدًا:
Input
↓
Relationships
↓
Weighted Attention
↓
Contextual Representation
↓
Prediction
أي أن كل جزء من المدخل يمكن أن يحصل على وزن مختلف عند بناء التمثيل الذي يحتاجه النموذج.
---
وهنا تكمن قوة الفكرة.
الكلمة نفسها يمكن أن تحمل دلالة مختلفة بحسب ما يحيط بها.
وكذلك الصورة.
إذا كانت لدينا صورة تحتوي على عدة أشياء، فليس من الضروري أن تكون كل أجزاء الصورة متساوية الأهمية بالنسبة للمهمة التي يقوم بها النموذج.
قد تكون منطقة معينة أكثر ارتباطًا بالسؤال أو المهمة من منطقة أخرى.
ولهذا أصبحت آليات الانتباه مهمة جدًا في نماذج حديثة تتعامل مع اللغة والصور وغيرها من أنواع البيانات.
---
والأمر لا يتوقف عند Attention واحدة.
في معماريات مثل Transformer، تُستخدم آليات Self-Attention للسماح للعناصر داخل المدخل بالتفاعل مع بعضها.
وهنا تصبح الفكرة أكثر إثارة:
النموذج لا يعالج كل عنصر باعتباره جزيرة منفصلة.
بل يستطيع بناء تمثيلات تعتمد على العلاقات بين العناصر.
وهذا أحد الأسباب التي جعلت Transformer نقطة تحول مهمة في تطور نماذج الذكاء الاصطناعي الحديثة.
---
لكن هناك سؤال آخر أكثر أهمية:
كيف يقرر Attention أن علاقة معينة أهم من أخرى؟
هنا نصل إلى الجانب الرياضي للفكرة.
النموذج يستخدم تمثيلات رقمية للعناصر، ومن خلالها يحسب درجات تعكس مدى ارتباطها ببعضها في السياق الحالي.
وفي الصياغة الشهيرة لـ Scaled Dot-Product Attention تظهر ثلاث مكونات أساسية:
Query
Key
Value
بصورة مبسطة:
الـ Query يمثل ما نبحث عنه.
والـ Key يمثل ما يمكن مقارنة البحث به.
والـ Value يمثل المعلومات التي يمكن الاستفادة منها بعد تحديد العلاقات.
ثم تُحسب درجات التشابه بين الـQuery والـKeys، وتُحوّل هذه الدرجات إلى أوزان، وتُستخدم الأوزان لتجميع الـValues.
ومن هنا تأتي الصيغة الشهيرة:
Attention(Q, K, V) = softmax(QKᵀ / √dₖ)V
قد تبدو المعادلة ثقيلة للوهلة الأولى.
لكن فكرتها الأساسية أبسط بكثير:
«ابحث عن العناصر الأكثر ارتباطًا، ثم امنح معلوماتها وزنًا أكبر عند بناء التمثيل.»
وهذا هو جوهر الفكرة.
---
ومع ذلك، من المهم ألا نفهم Attention على أنها:
««النموذج يعرف دائمًا أين توجد المعلومة الصحيحة.»»
الأمر ليس بهذه البساطة.
أوزان Attention هي جزء من آلية الحساب داخل النموذج، ولا تعني بالضرورة تفسيرًا بشريًا مباشرًا لما «يفكر» فيه النموذج أو لماذا اتخذ قراره النهائي.
وهذه نقطة مهمة جدًا عندما نحاول تفسير النماذج.
ما نراه داخل النموذج ليس دائمًا تفسيرًا كاملًا لما يحدث داخله.
---
والآن يمكننا العودة إلى الصورة التي بدأنا منها في المنشور السابق.
النموذج لا يرى الصورة كما نراها نحن.
تتحول الصورة إلى تمثيلات رقمية.
ثم تتفاعل هذه التمثيلات داخل النموذج.
وفي بعض المعماريات الحديثة، يمكن لآليات الانتباه أن تساعد النموذج على التقاط العلاقات بين أجزاء مختلفة من الصورة.
أي أن السؤال لم يعد فقط:
«ما الموجود هنا؟»
بل يمكن أن يصبح:
«ما الذي يرتبط بماذا؟»
وهذا فرق كبير.
لأن الذكاء في كثير من المهام لا يأتي من معرفة العناصر منفردة فقط…
بل من القدرة على فهم العلاقات بينها.
---
لهذا يمكن النظر إلى Attention كواحدة من الأفكار التي نقلت نماذج الذكاء الاصطناعي من التعامل مع عناصر منفصلة إلى بناء تمثيلات أكثر اعتمادًا على السياق والعلاقات.
ومن هنا بدأت رحلة Transformer التي أصبحت لاحقًا أساسًا لعدد هائل من النماذج الحديثة.
لكن خلف هذه الفكرة سؤال آخر:
إذا كان النموذج يستطيع بناء هذه العلاقات… فمن أين جاءت قدرته أصلًا على معرفة ما الذي يجب أن يرتبط بماذا؟
الإجابة تعيدنا إلى مكان بدأنا منه:
التدريب.
فالنموذج لا يحصل على قائمة جاهزة تخبره:
«هذه الكلمة مهمة.
وهذه أقل أهمية.
وهذا الجزء من الصورة مرتبط بذلك الجزء.»
بل تتشكل هذه القدرة من خلال التعلم من البيانات وتحديث أوزانه أثناء التدريب.
وهنا نبدأ في الاقتراب أكثر من قلب النموذج.
فالذكاء الذي نراه في النتيجة… ليس موجودًا في المدخل.
إنه نتيجة لتمثيلات وعلاقات وأوزان تعلمها النموذج عبر التدريب.
وهذا…
ما يحدث خلف الستار.
04/09/2026
كيف «يرى» الذكاء الاصطناعي الصورة؟
الصورة بالنسبة للإنسان ليست مجرد مجموعة من الألوان والنقاط.
حين ننظر إليها، نلتقط منها أشياء كثيرة في وقت واحد:
كائنات، أشخاصًا، أشكالًا، علاقات، تفاصيل، وسياقًا يساعدنا على فهم ما نراه.
قد ننظر إلى صورة واحدة فنقول ببساطة:
«هذه قطة.»
لكن بالنسبة لنظام الذكاء الاصطناعي، لا تبدأ الصورة بهذه المعرفة.
لا توجد في البداية قطة، ولا وجه، ولا عينان، ولا معنى جاهز للصورة.
هناك بيانات.
ومن هذه البيانات تبدأ رحلة طويلة، يتعلم خلالها النموذج كيف ينتقل من تفاصيل بصرية بسيطة إلى أنماط أكثر تعقيدًا، ثم إلى تمثيلات تساعده في النهاية على التمييز بين الأشياء الموجودة في الصورة.
وهنا تكمن الفكرة الأساسية في Computer Vision:
كيف يمكن للآلة أن تنتقل من الأرقام التي تمثل الصورة إلى معرفة ما الذي تحتويه؟
لنفتح الستار قليلًا، ونرى كيف تحدث هذه الرحلة.
---
في البداية، لا بد أن تتحول الصورة إلى صيغة يستطيع النموذج التعامل معها.
الصورة التي نراها ككائن واحد متكامل، تُخزَّن في صورة مصفوفة من القيم الرقمية.
في صورة ملونة، ترتبط كل نقطة عادةً بثلاث قيم تمثل قنوات اللون:
R — G — B
وبصورة مبسطة، يمكن تمثيل الرحلة الأولى هكذا:
Image → Pixel Values → Tensor
ومن هنا تبدأ المرحلة التي لا نراها بأعيننا.
لكن امتلاك ملايين القيم الرقمية لا يجعل النموذج يعرف ما في الصورة.
فالقيمة الموجودة في Pixel واحد لا تخبره وحدها بأنها جزء من عين أو أذن أو فراء.
المعلومة المهمة تظهر من العلاقات بين القيم.
اختلاف مجموعة من البكسلات عن مجموعة أخرى قد يشير إلى حافة.
وتكرار أنماط معينة قد يكشف نسيجًا.
وترتيب هذه الأنماط في مناطق معينة قد يساعد على تمييز شكل أو جزء من كائن.
وهنا يبدأ النموذج في البحث عن الأنماط البصرية.
في النماذج التقليدية للرؤية الحاسوبية، وخصوصًا الشبكات الالتفافية CNNs، تقوم طبقات متتالية بمعالجة هذه المعلومات واستخراج خصائص منها.
في المراحل المبكرة قد تكون التمثيلات مرتبطة بأنماط بسيطة نسبيًا، مثل الحواف والاتجاهات والتباينات.
ثم، مع التقدم عبر الطبقات، يمكن أن تصبح التمثيلات أكثر تعقيدًا وتجريدًا.
قد تتجمع خصائص صغيرة لتكوين أنماط أكبر.
ثم ترتبط هذه الأنماط بخصائص أكثر تمييزًا للكائن.
وبذلك يمكن تصور الرحلة، بصورة مبسطة، هكذا:
Pixels
↓
Low-level Features
↓
Patterns
↓
Higher-level Representations
↓
Prediction
وهنا توجد فكرة مهمة جدًا:
النموذج لا يتعلم فقط ماذا يوجد في الصورة، بل يتعلم تمثيلًا للمعلومات الموجودة فيها.
وهذا التمثيل هو أحد أهم مفاتيح نجاح الرؤية الحاسوبية.
لأن الصورة نفسها قد تكون مناسبة لمهام كثيرة، بينما السؤال الذي نريد من النموذج الإجابة عنه قد يختلف.
إذا أردنا معرفة نوع الكائن، نحتاج إلى Image Classification.
إذا أردنا معرفة مكان الكائن، نحتاج إلى Object Detection.
إذا أردنا معرفة أي بكسلات تنتمي إلى الكائن نفسه، نحتاج إلى Segmentation.
وإذا أردنا فهم مجموعة من العناصر والعلاقات بينها، فنحن نقترب من مستوى أكثر تعقيدًا من Scene Understanding.
الصورة واحدة…
لكن ما نريد استخراجه منها قد يكون مختلفًا تمامًا.
وهنا تظهر قوة التمثيلات التي يتعلمها النموذج.
فبدل أن نعطي النظام قاعدة تقول:
«إذا وجدت أذنين بهذا الشكل وأنفًا بهذا الحجم، فهي قطة.»
نقوم بتدريبه على عدد كبير من الأمثلة، فيتعلم بنفسه أنماطًا وتمثيلات تساعده على التمييز بين الفئات.
وهذا يقودنا إلى نقطة جوهرية:
النموذج لا يولد وهو يعرف كيف يرى.
هذه القدرة تُبنى أثناء التدريب.
يتلقى النموذج صورًا، ويُطلب منه إنتاج تنبؤات، ثم تُقارن هذه التنبؤات بالإجابات الصحيحة.
يظهر الخطأ.
ومن خلال خوارزميات التعلم، تُحدَّث أوزان النموذج تدريجيًا.
وتتكرر العملية مرة بعد أخرى.
صورة بعد صورة.
ومثالًا بعد مثال.
حتى تصبح الأوزان الداخلية أكثر قدرة على استخراج التمثيلات التي تساعد في المهمة المطلوبة.
إذن عندما نقول:
«النموذج تعلّم رؤية القطط»
فنحن لا نعني أنه تعلم تعريفًا لغويًا لكلمة «قطة».
بل نعني أن عملية التدريب جعلت تمثيلاته الداخلية قادرة، بدرجة معينة، على التقاط الخصائص والأنماط التي تساعده على التمييز بين صور القطط وغيرها.
وهنا نصل إلى الجزء المثير للاهتمام.
إذا كان النموذج يستطيع التعرف على القطة من خلال هذه التمثيلات…
فهل الطريقة نفسها تعمل مع كل أنواع الصور؟
ليس بالضرورة.
فمع تطور Computer Vision ظهرت معماريات مختلفة تحاول بناء تمثيلات أفضل للمعلومات البصرية.
CNN تعتمد بصورة أساسية على العمليات الالتفافية لاستخراج الأنماط المحلية وبناء تمثيلات أعمق.
بينما جاءت معماريات مثل Vision Transformer (ViT) بفكرة مختلفة نسبيًا، إذ تتعامل مع أجزاء من الصورة كعناصر يمكن للنموذج أن يتعلم العلاقات بينها باستخدام آليات الانتباه.
وهذا يوضح لنا شيئًا مهمًا:
لا توجد طريقة واحدة تجعل الآلة «ترى» الصورة.
هناك عائلات مختلفة من النماذج، وطرائق مختلفة لبناء التمثيلات، ومهام مختلفة تحتاج إلى أنواع مختلفة من التحليل البصري.
ومع ذلك، يبقى المبدأ الأساسي حاضرًا:
نحوّل الصورة إلى بيانات،
ونستخرج منها أنماطًا،
ونبني تمثيلات،
ثم نستخدم هذه التمثيلات للوصول إلى نتيجة.
وفي النهاية قد تظهر أمامنا نتيجة بسيطة جدًا:
Cat — 94%
لكن هذه النسبة لا تحكي القصة كاملة.
خلفها توجد صورة تحولت إلى بيانات،
وبيانات مرت عبر طبقات من المعالجة،
وتمثيلات تشكلت خلال التدريب،
وأوزان تعلمت من عدد هائل من الأمثلة،
ثم تنبؤ خرج في النهاية إلى الشاشة.
ولهذا فإن أكثر ما يلفت النظر في Computer Vision ليس أن النموذج يستطيع أن يقول:
«هذه قطة.»
بل أن السؤال الحقيقي هو:
كيف استطاع أن يبني من ملايين القيم الرقمية تمثيلًا يسمح له بالوصول إلى هذه النتيجة؟
وهنا تبدأ الرحلة الحقيقية داخل نماذج الرؤية الحاسوبية.
الصورة أمامك واحدة.
لكن ما يحدث خلفها…
عالم كامل من التعلم والتمثيل.
Click here to claim your Sponsored Listing.
Category
Telephone
Website
Address
DataCraft Hub
Riyadh
13321