تمرينات تصنيف البيانات المرئية - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تمرينات في تصنيف البيانات المرئية باستخدام خوارزميات التعلم الآلي

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: تمارين وأسئلة

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تتناول هذه الصفحة تمرينات عملية في مجال تصنيف البيانات المرئية باستخدام تقنيات التعلم الآلي. تبدأ بتحديد تحديات تصنيف البيانات المرئية، مثل التعامل مع الأبعاد العالية والتعقيد البصري للصور.

ثم تقدم تمرينًا برمجيًا يتضمن استخدام مكتبة scikit-learn لتدريب نموذج MultinomialNB على بيانات صور مصفوفة Numpy، حيث يتم تسطيح البيانات المرئية أولاً لتمكين النموذج من معالجتها بكفاءة.

أخيرًا، تطلب الصفحة وصفًا موجزًا لطريقة عمل الشبكات العصبية الترشيحية، مع ذكر إحدى مميزاتها الرئيسية، مما يعزز فهم الطالب لتقنيات متقدمة في معالجة الصور.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

تمرينات

نوع: METADATA

تمرينات

1

نوع: QUESTION

ما تحديات تصنيف البيانات المرئية؟

2

نوع: QUESTION

لديك مصفو فتا قيم Numpy، وهما مصفوفة X_train ومصفوفة Y_train. كل صف في مصفوفة X_train شكله (3، 100، 100) يمثل صورة بأبعاد 100x100 وبتنسيق RGB. والصف n في المصفوفة Y_train يمثل تسمية صورة n في مصفوفة X_train. أكمل المقطع البرمجي التالي، بحيث يسطح X_train ثم يدرب النموذج MultinomialNB على مجموعة البيانات هذه: from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier from sklearn X_train_flat = np.array(____________________) model_MNB = MultinomialNB() # new Naive Bayes model model_MNB.fit(_____________________, _____________________) # fits model on the flat training data

3

نوع: QUESTION

صف باختصار طريقة عمل الشبكات العصبية الترشيحية وإحدى مميزاتها الرئيسة.

نوع: METADATA

وزارة التعليم Ministry of Education 2023 - 1447 218

📄 النص الكامل للصفحة

--- SECTION: تمرينات --- تمرينات--- SECTION: 1 --- ما تحديات تصنيف البيانات المرئية؟--- SECTION: 2 --- لديك مصفو فتا قيم Numpy، وهما مصفوفة X_train ومصفوفة Y_train. كل صف في مصفوفة X_train شكله (3، 100، 100) يمثل صورة بأبعاد 100x100 وبتنسيق RGB. والصف n في المصفوفة Y_train يمثل تسمية صورة n في مصفوفة X_train. أكمل المقطع البرمجي التالي، بحيث يسطح X_train ثم يدرب النموذج MultinomialNB على مجموعة البيانات هذه: from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier from sklearn X_train_flat = np.array(____________________) model_MNB = MultinomialNB() # new Naive Bayes model model_MNB.fit(_____________________, _____________________) # fits model on the flat training data--- SECTION: 3 --- صف باختصار طريقة عمل الشبكات العصبية الترشيحية وإحدى مميزاتها الرئيسة.2023 - 1447

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 7

سؤال س:1: ما تحديات تصنيف البيانات المرئية؟

الإجابة: س:1: من أبرز التحديات: تباين الإضاءة والزوايا والحجم والألوان، وجود ضوضاء/تشويش أو جزء مفقود من الصورة، التشابه بين الفئات مع اختلاف كبير داخل الفئة، وارتفاع أبعاد الصور بما يتطلب بيانات كبيرة وقدرة حوسبة أكبر.

خطوات الحل:

  1. **الخطوة 1 (المفهوم):** تصنيف البيانات المرئية (الصور) ليس بالأمر السهل على الحاسب؛ لأن الصورة بالنسبة له هي مجرد مصفوفة من الأرقام، وأي تغيير طفيف في ظروف التقاط الصورة يغير هذه الأرقام تماماً.
  2. **الخطوة 2 (التطبيق):** عند محاولة تصنيف صورة، نواجه عوامل خارجية مثل شدة الإضاءة، أو زاوية التصوير، أو وجود تشويش (ضوضاء)، بالإضافة إلى أن بعض الفئات المختلفة قد تتشابه جداً، أو أن الفئة الواحدة قد تظهر بأشكال وألوان متنوعة.
  3. **الخطوة 3 (النتيجة):** لذلك، تتمثل التحديات في: **تباين الإضاءة والزوايا والحجم والألوان، وجود ضوضاء أو أجزاء مفقودة، التشابه بين الفئات المختلفة مع وجود اختلاف كبير داخل الفئة الواحدة، وارتفاع أبعاد الصور التي تتطلب قدرات حوسبة عالية.**

سؤال س:2: لديك مصفوفتا قيم Numpy، وهما مصفوفة X_train ومصفوفة Y_train. كل صف في مصفوفة X_train شكله (3،100،100) يمثل صورة بأبعاد 100x100 وبتنسيق RGB. والصف n في المصفوفة Y_train يمثل تسمية صورة n في مصفوفة X_train. أكمل المقطع البرمجي التالي، بحيث يسطح X_train ثم يدرب النموذج MultinomialNB على مجموعة البيانات هذه: from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier from sklearn X_train_flat = np.array(____________________) model_MNB = MultinomialNB() # new Naive Bayes model model_MNB.fit(_____________________, _____________________) # fits model on the flat training data

الإجابة: [x.flatten() for x in X_train]

خطوات الحل:

  1. **الخطوة 1 (المعطيات):** لدينا مصفوفة صور `X_train` بأبعاد ثلاثية $(3, 100, 100)$، ونريد تدريب نموذج `MultinomialNB` الذي يتطلب عادةً بيانات مدخلة في شكل مصفوفة ثنائية الأبعاد (سطر واحد لكل صورة).
  2. **الخطوة 2 (المنطق البرمجي):** لتحويل كل صورة من شكلها المكعب إلى سطر واحد طويل (تسوية)، نحتاج للمرور على كل صورة `x` داخل `X_train` وتطبيق دالة `flatten()` عليها.
  3. **الخطوة 3 (الحل):** باستخدام أسلوب (List Comprehension) في بايثون، نكتب التعبير التالي داخل مصفوفة Numpy: `[x.flatten() for x in X_train]`

سؤال س:2: لديك مصفوفتا قيم Numpy، وهما مصفوفة X_train ومصفوفة Y_train. كل صف في مصفوفة X_train شكله (3،100،100) يمثل صورة بأبعاد 100x100 وبتنسيق RGB. والصف n في المصفوفة Y_train يمثل تسمية صورة n في مصفوفة X_train. أكمل المقطع البرمجي التالي، بحيث يسطح X_train ثم يدرب النموذج MultinomialNB على مجموعة البيانات هذه: from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier from sklearn X_train_flat = np.array(____________________) model_MNB = MultinomialNB() # new Naive Bayes model model_MNB.fit(_____________________, _____________________) # fits model on the flat training data

الإجابة: X_train_flat

خطوات الحل:

  1. **الخطوة 1 (المعطيات):** لدينا مصفوفة صور `X_train` بأبعاد ثلاثية $(3, 100, 100)$، ونريد تدريب نموذج `MultinomialNB` الذي يتطلب عادةً بيانات مدخلة في شكل مصفوفة ثنائية الأبعاد (سطر واحد لكل صورة).
  2. **الخطوة 2 (المنطق البرمجي):** لتحويل كل صورة من شكلها المكعب إلى سطر واحد طويل (تسوية)، نحتاج للمرور على كل صورة `x` داخل `X_train` وتطبيق دالة `flatten()` عليها.
  3. **الخطوة 3 (الحل):** باستخدام أسلوب (List Comprehension) في بايثون، نكتب التعبير التالي داخل مصفوفة Numpy: `[x.flatten() for x in X_train]`

سؤال س:2: لديك مصفوفتا قيم Numpy، وهما مصفوفة X_train ومصفوفة Y_train. كل صف في مصفوفة X_train شكله (3،100،100) يمثل صورة بأبعاد 100x100 وبتنسيق RGB. والصف n في مصفوفة Y_train يمثل تسمية صورة n في مصفوفة X_train. أكمل المقطع البرمجي التالي، بحيث يسطح X_train ثم يدرب النموذج MultinomialNB على مجموعة البيانات هذه: from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier from sklearn X_train_flat = np.array(____________________) model_MNB = MultinomialNB() # new Naive Bayes model model_MNB.fit(_____________________, _____________________) # fits model on the flat training data

الإجابة: Y_train

خطوات الحل:

  1. **الخطوة 1 (المعطيات):** لدينا مصفوفة صور `X_train` بأبعاد ثلاثية $(3, 100, 100)$، ونريد تدريب نموذج `MultinomialNB` الذي يتطلب عادةً بيانات مدخلة في شكل مصفوفة ثنائية الأبعاد (سطر واحد لكل صورة).
  2. **الخطوة 2 (المنطق البرمجي):** لتحويل كل صورة من شكلها المكعب إلى سطر واحد طويل (تسوية)، نحتاج للمرور على كل صورة `x` داخل `X_train` وتطبيق دالة `flatten()` عليها.
  3. **الخطوة 3 (الحل):** باستخدام أسلوب (List Comprehension) في بايثون، نكتب التعبير التالي داخل مصفوفة Numpy: `[x.flatten() for x in X_train]`

سؤال س:3: صف باختصار طريقة عمل الشبكات العصبية الترشيحية وإحدى مميزاتها الرئيسية.

الإجابة: س:3: تعمل CNN بتطبيق مرشحات (Convolution kernels) على الصورة لاستخراج السمات المحلية مثل الحواف والأطراف.

خطوات الحل:

  1. **الخطوة 1 (المفهوم):** الشبكات العصبية الترشيحية (CNN) تعتمد في عملها على محاكاة النظام البصري للإنسان من خلال التركيز على التفاصيل الصغيرة أولاً.
  2. **الخطوة 2 (التطبيق):** تبدأ العملية باستخدام ما يسمى بالمرشحات أو النوى (Kernels)، وهي مصفوفات صغيرة تمر فوق الصورة لاستخلاص الخصائص الأساسية.
  3. **الخطوة 3 (النتيجة):** لذلك، تعمل CNN بتطبيق **مرشحات (Convolution kernels) على الصورة لاستخراج السمات المحلية مثل الحواف والأطراف.**

سؤال س:3: صف باختصار طريقة عمل الشبكات العصبية الترشيحية وإحدى مميزاتها الرئيسية.

الإجابة: س:3: ثم تستخدم طبقات تجميع (Pooling) لتقليل الأبعاد، وبعدها طبقات كاملة للتصنيف.

خطوات الحل:

  1. **الخطوة 1 (المفهوم):** الشبكات العصبية الترشيحية (CNN) تعتمد في عملها على محاكاة النظام البصري للإنسان من خلال التركيز على التفاصيل الصغيرة أولاً.
  2. **الخطوة 2 (التطبيق):** تبدأ العملية باستخدام ما يسمى بالمرشحات أو النوى (Kernels)، وهي مصفوفات صغيرة تمر فوق الصورة لاستخلاص الخصائص الأساسية.
  3. **الخطوة 3 (النتيجة):** لذلك، تعمل CNN بتطبيق **مرشحات (Convolution kernels) على الصورة لاستخراج السمات المحلية مثل الحواف والأطراف.**

سؤال س:3: صف باختصار طريقة عمل الشبكات العصبية الترشيحية وإحدى مميزاتها الرئيسية.

الإجابة: س:3: من أهم ميزاتها: مشاركة الأوزان التي تقلل عدد المعاملات وتحافظ على العلاقات المكانية في الصورة مما يزيد الكفاءة والدقة.

خطوات الحل:

  1. **الخطوة 1 (المفهوم):** الشبكات العصبية الترشيحية (CNN) تعتمد في عملها على محاكاة النظام البصري للإنسان من خلال التركيز على التفاصيل الصغيرة أولاً.
  2. **الخطوة 2 (التطبيق):** تبدأ العملية باستخدام ما يسمى بالمرشحات أو النوى (Kernels)، وهي مصفوفات صغيرة تمر فوق الصورة لاستخلاص الخصائص الأساسية.
  3. **الخطوة 3 (النتيجة):** لذلك، تعمل CNN بتطبيق **مرشحات (Convolution kernels) على الصورة لاستخراج السمات المحلية مثل الحواف والأطراف.**

📝 أسئلة اختبارية

عدد الأسئلة: 3

سؤال 1: ما تحديات تصنيف البيانات المرئية؟

  • أ) صعوبة الحصول على بيانات مصنفة كافية، والتغيرات في الإضاءة والزاوية.
  • ب) سرعة معالجة الصور فقط، دون تحديات أخرى.
  • ج) عدم وجود خوارزميات مناسبة للتعامل مع الصور.
  • د) سهولة التصنيف بسبب توفر أدوات جاهزة.

الإجابة الصحيحة: تتضمن تحديات تصنيف البيانات المرئية: 1) التباين في الإضاءة والظلال، 2) التغيرات في الزاوية والتوجه، 3) التداخل والاختفاء الجزئي للأشياء، 4) الاختلافات في المظهر والملمس، 5) الحاجة إلى كميات كبيرة من البيانات المصنفة للتدريب، 6) التعقيد الحسابي لمعالجة الصور عالية الدقة.

الشرح: تصنيف البيانات المرئية يواجه تحديات متعددة بسبب طبيعة الصور المعقدة والمتغيرة، حيث تؤثر عوامل مثل الإضاءة والزاوية والمظهر على دقة التصنيف، كما تتطلب خوارزميات التعلم الآلي كميات كبيرة من البيانات المتنوعة لتحقيق أداء جيد.

تلميح: فكر في العوامل التي تؤثر على تمييز الصور وكيفية تعامل الخوارزميات معها.

سؤال 2: لديك مصفو فتا قيم Numpy، وهما مصفوفة X_train ومصفوفة Y_train. كل صف في مصفوفة X_train شكله (3، 100، 100) يمثل صورة بأبعاد 100x100 وبتنسيق RGB. والصف n في المصفوفة Y_train يمثل تسمية صورة n في مصفوفة X_train. أكمل المقطع البرمجي التالي، بحيث يسطح X_train ثم يدرب النموذج MultinomialNB على مجموعة البيانات هذه: from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier from sklearn X_train_flat = np.array(____________________) model_MNB = MultinomialNB() # new Naive Bayes model model_MNB.fit(_____________________, _____________________) # fits model on the flat training data

  • أ) X_train_flat = np.array([x.reshape(-1) for x in X_train]) model_MNB.fit(X_train_flat, Y_train)
  • ب) X_train_flat = np.array(X_train) model_MNB.fit(X_train, Y_train)
  • ج) X_train_flat = np.array([x.flatten() for x in X_train]) model_MNB.fit(X_train_flat, X_train)
  • د) X_train_flat = np.array(X_train.reshape(100, 100)) model_MNB.fit(Y_train, X_train_flat)

الإجابة الصحيحة: X_train_flat = np.array([x.reshape(-1) for x in X_train]) model_MNB.fit(X_train_flat, Y_train)

الشرح: يتم تسطيح كل صورة من شكل (3, 100, 100) إلى متجه أحادي البعد باستخدام reshape(-1)، ثم يتم تدريب نموذج MultinomialNB على البيانات المسطحة X_train_flat والتسميات Y_train.

تلميح: تذكر أن تسطيح الصورة يعني تحويلها من مصفوفة متعددة الأبعاد إلى متجه أحادي البعد.

سؤال 3: صف باختصار طريقة عمل الشبكات العصبية الترشيحية وإحدى مميزاتها الرئيسة.

  • أ) تستخدم مرشحات لاستخراج الخصائص تلقائياً، وميزتها الرئيسة هي التعلم دون هندسة يدوية.
  • ب) تعتمد على المعالجة اليدوية للصور فقط، وميزتها السرعة.
  • ج) تستخدم لتصنيف النصوص فقط، وميزتها الدقة العالية.
  • د) تعمل عن طريق تحويل الصور إلى نصوص، وميزتها البساطة.

الإجابة الصحيحة: تعمل الشبكات العصبية الترشيحية (CNNs) من خلال استخدام مرشحات (filters) لاكتشاف الخصائص في الصور، حيث تمر الصورة عبر طبقات متعددة لاستخراج ميزات بسيطة أولاً (مثل الحواف) ثم ميزات معقدة (مثل الأشكال). إحدى مميزاتها الرئيسة هي القدرة على التعلم التلقائي للخصائص دون الحاجة إلى هندسة يدوية.

الشرح: تستخدم CNNs عمليات الالتلاف (convolution) مع المرشحات لاستخراج الميزات من الصور، مما يقلل الاعتماد على المعالجة اليدوية للبيانات ويحسن الأداء في مهام الرؤية الحاسوبية.

تلميح: ركز على كيفية استخراج الخصائص باستخدام المرشحات وأهمية التعلم التلقائي.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

ما هي التحديات الرئيسية التي تواجه تصنيف البيانات المرئية في مجال الذكاء الاصطناعي؟

الإجابة: تتضمن التحديات الرئيسية في تصنيف البيانات المرئية: التباين الكبير في المظهر، وجود تشويش أو إعاقات، اختلاف ظروف الإضاءة، اختلاف وجهات النظر، وتغير حجم الأشياء.

الشرح: تواجه أنظمة الذكاء الاصطناعي صعوبة في التعرف على الأشياء في الصور بسبب عدة عوامل منها: الاختلافات الطبيعية في شكل الأشياء (مثل أشكال الكلاب المختلفة)، وجود أشياء أخرى تحجب جزءاً من الكائن المراد تصنيفه، التغيرات في شدة الإضاءة التي تؤثر على الألوان، وزوايا التصوير المختلفة.

تلميح: فكر في العوامل التي تجعل التعرف على الأشياء في الصور صعباً على الإنسان والآلة.

كيف يمكن تسطيح مصفوفة صور RGB بأبعاد (3، 100، 100) لتصبح جاهزة لتدريب نموذج MultinomialNB؟

الإجابة: يتم تسطيح مصفوفة الصور عن طريق إعادة تشكيلها بحيث يصبح كل صف يمثل بيانات صورة واحدة. إذا كانت الصورة الأصلية (3، 100، 100)، يتم إعادة تشكيلها إلى (3 * 100 * 100) = 30000 عمود. في حالة وجود N صورة، تصبح المصفوفة المسطحة ذات شكل (N، 30000).

الشرح: تتطلب نماذج مثل MultinomialNB مدخلات ثنائية الأبعاد حيث يمثل كل صف عينة تدريب واحدة وكل عمود ميزة. الصور ثلاثية الأبعاد (قناة اللون، الارتفاع، العرض) يجب تسطيحها. في هذا المثال، الصورة (3، 100، 100) تعني 3 قنوات ألوان (RGB) وارتفاع وعرض 100 بكسل. عند تسطيحها، تتحول إلى صف واحد من 3 * 100 * 100 = 30000 ميزة.

تلميح: فكر في كيفية تحويل الأبعاد المتعددة للصورة إلى بعد واحد مسطح لكل صورة.

ما هي العملية الأساسية التي تقوم بها الشبكات العصبية الترشيحية (CNNs) وكيف تساهم في معالجة الصور؟

الإجابة: تقوم الشبكات العصبية الترشيحية بتطبيق مجموعة من المرشحات (الفلاتر) على الصور لاستخلاص ميزات هامة مثل الحواف، الزوايا، والأشكال. هذه العملية تسمى الترشيح (convolution).

الشرح: تستخدم الشبكات العصبية الترشيحية طبقات الترشيح (convolutional layers) التي تطبق نواة (kernel) صغيرة على أجزاء مختلفة من الصورة. هذه النواة هي في الأساس مرشح يكتشف أنماطاً محددة. هذا يسمح للشبكة بتعلم تمثيلات هرمية للميزات في الصورة، بدءاً من الميزات البسيطة في الطبقات المبكرة وصولاً إلى الميزات المعقدة في الطبقات الأعمق.

تلميح: فكر في العملية التي تستخدمها CNNs 'لقراءة' الصور واستخراج المعلومات منها.

اذكر ميزة رئيسية للشبكات العصبية الترشيحية (CNNs) في معالجة البيانات المرئية.

الإجابة: إحدى الميزات الرئيسة هي قدرتها على التعلم الآلي للتمثيلات الهرمية للميزات (hierarchical feature learning)، مما يسمح لها بفهم الصور بشكل فعال دون الحاجة إلى هندسة ميزات يدوية.

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

تلميح: ما الذي يجعل CNNs فعالة جداً في فهم الصور مقارنة بالنماذج التقليدية؟