AI: هندسة التعلم العميق

آخر تحديث: 2026-08-26

المُعماريات الرئيسية الثلاثة في التعلم العميق—شبكات CNN، وشبكات RNN، والمُحوِلات—تعالج التحديات الأساسية في الرؤية، والمتسلسلات، واللغة على التوالي. هذا الفصل لا يستخلص الصيغ الرياضية؛ بدلاً من ذلك، يستخدم الحدس والشفرة لمساعدتك على فهم "لماذا تتفوق شبكات CNN في التعرف على الصور، ولماذا تتفوق شبكات RNN في معالجة السلاسل الزمنية، ولماذا تتفوق المُحوِلات في فهم اللغة"، فضلاً عن سبب قيام المُحوِلات بتوحيد كل شيء.

١. ما ستتعلمه



2. القصة: ثلاثة أنواع من المهمات، ثلاثة أنواع من الهياكل

(1) نقطة الألم: هل لا يكفي ذكاء اصطناعي واحد؟

تواجه شركة تشارلي الناشئة ثلاثة تحديات في وقت واحد:

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

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

(2) حل الذكاء الاصطناعي: ثلاثة هياكل، منصة واحدة

باستخدام pipeline من Hugging Face، أنجزت أليس ثلاث مهمات بـ 30 سطرًا فقط من الكود:

▶ مثال: ثلاث مهمات رئيسية، أنجزت في 30 سطرًا من الكود (الصعوبة: ⭐)

PYTHON
# ثلاث مهمات، ثلاث خطوط أنابيب، منصة واحدة: Hugging Face
from transformers import pipeline

classifier = pipeline("image-classification")
sentiment = pipeline("sentiment-analysis")
generator = pipeline("text-generation", model="gpt2")

# المهمة 1: تصنيف الصور (هيكل CNN)
# result = classifier("product_photo.jpg")
# print("Image labels:", [r['label'] for r in result[:3]])

# المهمة 2: تحليل المشاعر (هيكل Transformer)
sent = sentiment("This product is amazing! Best purchase ever.")
print("Sentiment:", sent)

# المهمة 3: توليد النص (Transformer/LLM)
text = generator("The stock market today", max_length=30, num_return_sequences=1)
print("Generated:", text[0]['generated_text'])
💻 المخرجات:

TEXT 📖 للعرض فقط
Sentiment: [{'label': 'POSITIVE', 'score': 0.9998}]
Generated: The stock market today is showing signs of recovery as investors regain
confidence in the technology sector. Analysts predict

(3) الفوائد: لا مزيد من الارتباك عند اختيار الهيكل

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


3. CNN—البديهة البصرية خلف الشبكات العصبية الالتفافية (CNNs)

(1) لماذا تتطلب الصور معمارية مخصصة؟

تحتوي صورة RGB بحجم 224×224 على 224 × 224 × 3 = 150,528 قيمة إدخال. إذا استُخدمت شبكة مترابطة بالكامل، فإن الطبقة الأولى وحدها ستتطلب عشرات الملايين من المعاملات - مما يؤدي ليس فقط إلى انفجار حسابي، بل أيضًا إلى فقدان البنية المكانية للصورة (العلاقات بين البكسلات المجاورة).

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

(2) أنوية الالتفاف - كاشفات الميزات

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

TEXT 📖 للعرض فقط
Input image (5×5)      Kernel (3×3)         Feature map (3×3)
┌─┬─┬─┬─┬─┐           ┌──┬──┬──┐           ┌──┬──┬──┐
│1│0│1│0│1│           │ 1│ 0│-1│           │ 2│ 0│ 2│
├─┼─┼─┼─┼─┤    ×     ├──┼──┼──┤    =      ├──┼──┼──┤
│0│1│0│1│0│           │ 1│ 0│-1│           │ 0│ 1│ 0│
├─┼─┼─┼─┼─┤           ├──┼──┼──┤           ├──┼──┼──┤
│1│0│1│0│1│           │ 1│ 0│-1│           │ 2│ 0│ 2│
├─┼─┼─┼─┼─┤           └──┴──┴──┘           └──┴──┴──┘
│0│1│0│1│0│
├─┼─┼─┼─┼─┤   Sliding window: kernel
│1│0│1│0│1│   scans across the image
└─┴─┴─┴─┴─┘

أنوية الالتفاف المختلفة تكشف عن ميزات مختلفة:

نوع نواة الالتفاف الوظيفة البديهة
نواة حافة عمودية كشف الحواف العمودية مشرق على اليسار، مظلم على اليمين = خط عمودي
نواة حافة أفقية كشف الحواف الأفقية مشرق في الأعلى، مظلم في الأسفل = خط أفقي
نواة ضباب غاوسي تنعيم/تشويش حساب متوسط البكسلات المحيطة
نواة Sobel كشف اتجاه التدرج تحديد اتجاه وشدة الحواف

▶ مثال: كشف الحواف باستخدام أنوية الالتفاف (الصعوبة: ⭐)

PYTHON
import numpy as np
from scipy.signal import convolve2d

image = np.array([
    [0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0],
    [0, 0, 1, 1, 1, 0, 0],
    [0, 0, 1, 1, 1, 0, 0],
    [0, 0, 1, 1, 1, 0, 0],
    [0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0],
], dtype=float)

vertical_kernel = np.array([
    [-1, 0, 1],
    [-1, 0, 1],
    [-1, 0, 1],
], dtype=float)

horizontal_kernel = np.array([
    [-1, -1, -1],
    [ 0,  0,  0],
    [ 1,  1,  1],
], dtype=float)

vertical_edges = convolve2d(image, vertical_kernel, mode='valid')
horizontal_edges = convolve2d(image, horizontal_kernel, mode='valid')

print("Original image (white square on black background):")
print(image)
print("\nVertical edges detected:")
print(vertical_edges)
print("\nHorizontal edges detected:")
print(horizontal_edges)
💻 الناتج:

TEXT 📖 للعرض فقط
Original image (white square on black background):
[[0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 1. 1. 1. 0. 0.]
 [0. 0. 1. 1. 1. 0. 0.]
 [0. 0. 1. 1. 1. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0.]]

Vertical edges detected:
[[ 0.  1.  0. -1.  0.]
 [ 0.  1.  0. -1.  0.]
 [ 0.  1.  0. -1.  0.]
 [ 0.  1.  0. -1.  0.]
 [ 0.  1.  0. -1.  0.]]

Horizontal edges detected:
[[ 0.  0.  0.  0.  0.]
 [ 1.  1.  1.  1.  1.]
 [ 0.  0.  0.  0.  0.]
 [-1. -1. -1. -1. -1.]
 [ 0.  0.  0.  0.  0.]]
💡 نصيحة: النواة العمودية تكشف عن الحواف اليسرى واليمنى للمربع الأبيض (تشير القيم الموجبة والسالبة إلى الاتجاه)، بينما النواة الأفقية تكشف عن الحواف العلوية والسفلية. في CNN، يتم تعلم أوزان هذه الأنوية تلقائيًا - تكتشف الشبكة بنفسها أي الأنوية هي الأكثر فائدة.

(3) التجميع (Pooling) - تخفيض الحجم مع الحفاظ على المعلومات الأساسية

يتضمن التجميع تنزيل نافذة صغيرة عبر خريطة الميزات، وفي كل خطوة، الاحتفاظ فقط بالقيمة القصوى (التجميع القصوى) أو القيمة المتوسطة (التجميع المتوسط) لتقليل حجم خريطة الميزات:

TEXT 📖 للعرض فقط
Max Pooling (2×2, stride 2):

Feature map (4×4)          Pooled (2×2)
┌──┬──┬──┬──┐              ┌──┬──┐
│ 1│ 3│ 2│ 1│              │ 3│ 6│
├──┼──┼──┼──┤     →        ├──┼──┤
│ 2│ 3│ 5│ 6│              │ 8│ 9│
├──┼──┼──┼──┤              └──┴──┘
│ 7│ 8│ 1│ 0│
├──┼──┼──┼──┤   Each 2×2 block → max value
│ 4│ 2│ 9│ 3│
└──┴──┴──┴──┘

دور التجميع: ① يقلل الحسابات؛ ② يوفر ثباتًا في التحريك (التحولات الطفيفة في الهدف لا تؤثر على النتائج)؛ ③ يوسع المجال المقبول (الطبقات اللاحقة يمكنها معالجة منطقة أكبر).

(4) البنية الكاملة لـ CNN

تتكون CNN النموذجية من "كتل التتفافية" مكدسة، حيث تتكون كل كتلة التتفافية من طبقة التتفاف، ودالة التنشيط، وطبقة التجميع، متبوعة بطبقة مترابطة بالكامل للتصنيف:

الطبقة أبعاد الإدخال أبعاد الإخراج عدد المعاملات الوظيفة
Conv1 + Pool 224×224×3 112×112×32 ~900 ميزات منخفضة المستوى (حواف/أنسجة)
Conv2 + Pool 112×112×32 56×56×64 ~18K ميزات متوسطة المستوى (أشكال/أجزاء)
Conv3 + Pool 56×56×64 28×28×128 ~74K ميزات عالية المستوى (كائنات/مشاهد)
Flatten + FC 28×28×128 1024 ~100M التصنيف باستخدام الميزات المتكاملة
💡 نصيحة: الفكرة الأساسية وراء CNNs هي استخراج الميزات الهرمي: الطبقات المنخفضة تتعلم الحواف → الطبقات الوسطى تتعلم الأشكال → الطبقات العليا تتعلم الدلالات. هذا يشبه بشكل مذهل كيفية عمل القشرة البصرية البشرية - أبحاث هيوبل وويزل الفائزة بجائزة نوبل عام 1962 اكتشفت آلية مماثلة.



4. RNN—الحدس التسلسلي للشبكات العصبية التكرارية

(1) لماذا تتطلب التسلسلات بنية معمارية متخصصة؟

البيانات التسلسلية (النص، الصوت، أسعار الأسهم) لها سمة رئيسية واحدة: الترتيب مهم. أنا أحبك" و"أنت تحبني" تحتويان على نفس الكلمات لكن معانٍ مختلفة تمامًا. الشبكات المتصلة بالكامل "تُسطح" جميع المدخلات، مما يفقد معلومات الترتيب؛ بينما تأخذ الشبكات العصبية الالتفافية (CNNs) في الاعتبار فقط النوافذ المحلية ولا تستطيع نمذجة الاعتماديات طويلة المدى.

الحدس الأساسي لـ RNN: استخدام الحالات المخفية لنقل المعلومات التاريخية—يعتمد الإخراج في كل خطوة ليس فقط على المدخل الحالي ولكن أيضًا على "ذاكرة" جميع المدخلات السابقة.

(2) العملية الحسابية لـ RNN

TEXT 📖 للعرض فقط
الخطوة 1:  h₁ = tanh(Wₓ·x₁ + Wₕ·h₀ + b)    →  y₁ = softmax(Wᵧ·h₁)
الخطوة 2:  h₂ = tanh(Wₓ·x₂ + Wₕ·h₁ + b)    →  y₂ = softmax(Wᵧ·h₂)
الخطوة 3:  h₃ = tanh(Wₓ·x₃ + Wₕ·h₂ + b)    →  y₃ = softmax(Wᵧ·h₃)
                ↑
         الحالة المخفية السابقة تُغذّي الخطوة الحالية

النقطة الأساسية: Wₓ، Wₕ، و Wᵧ تشترك في نفس مجموعة المعلمات عبر جميع الخطوات الزمنية—تعالج RNN كل موضع في التسلسل باستخدام نفس مجموعة الأوزان، وهذا ما يسمى مشاركة المعلمات.

▶ مثال: RNN بسيط يتنبأ بالحرف التالي (الصعوبة: ⭐⭐)

PYTHON
import numpy as np

np.random.seed(42)

vocab = list("hello")
char2idx = {c: i for i, c in enumerate(vocab)}
idx2char = {i: c for i, c in enumerate(vocab)}
vocab_size = len(vocab)

hidden_size = 8
Wxh = np.random.randn(hidden_size, vocab_size) * 0.01
Whh = np.random.randn(hidden_size, hidden_size) * 0.01
Why = np.random.randn(vocab_size, hidden_size) * 0.01
bh = np.zeros((hidden_size, 1))
by = np.zeros((vocab_size, 1))

def rnn_step(x_onehot, h_prev):
    h = np.tanh(Wxh @ x_onehot + Whh @ h_prev + bh)
    y = Why @ h + by
    probs = np.exp(y) / np.exp(y).sum()
    return h, probs

def softmax_sample(probs):
    return np.random.choice(len(probs), p=probs.flatten())

seed_text = "hel"
h = np.zeros((hidden_size, 1))
for ch in seed_text:
    x = np.zeros((vocab_size, 1))
    x[char2idx[ch]] = 1
    h, _ = rnn_step(x, h)

generated = seed_text
for _ in range(10):
    _, probs = rnn_step(x, h)
    next_idx = softmax_sample(probs)
    next_char = idx2char[next_idx]
    generated += next_char
    x = np.zeros((vocab_size, 1))
    x[next_idx] = 1
    h, _ = rnn_step(x, h)

print(f"Seed:   '{seed_text}'")
print(f"Output: '{generated}'")
print("(Untrained RNN outputs random characters)")
💻 الخرج:

TEXT 📖 للعرض فقط
Seed:   'hel'
Output: 'hellhlelohl'
(Untrained RNN outputs random characters)
💡 نصيحة: تُخرج RNN غير المُدرّبة أحرفًا عشوائية. بعد التدريب، تتعلم أنماطًا مثل "غالبًا ما يتبع حرف 'l' حرف آخر 'l'" أو "قد يتبع حرف 'o' حرف 'h'". تكمن قوة RNN في قدرتها على استخدام تاريخ التسلسل لتقديم التنبؤات.

(3) المشكلة المميتة في RNN: تلاشي التدرجات

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

طول التسلسل معدل الاحتفاظ بالتدرج (بافتراض احتفاظ بنسبة 0.8 لكل خطوة) بعد 20 خطوة بعد 50 خطوة بعد 100 خطوة
مقدار التدرج 0.8ⁿ 0.8²⁰ ≈ 1% 0.8⁵⁰ ≈ 0.001% 0.8¹⁰⁰ ≈ 0.000002%

(4) LSTM—نسخة محسّنة من RNN

LSTM (الذاكرة طويلة قصيرة المدى) تعالج مشكلة تلاشي التدرجات من خلال ثلاث "بوابات":

الباب الوظيفة الحدس
بوابة النسيان تقرر أي المعلومات القديمة تُهمل "هل هذه الذاكرة لا تزال مفيدة؟"
بوابة الإدخال تحدد أي المعلومات الجديدة تُخزّن "هل تستحق هذه المعلومات الجديدة التذكر؟"
بوابة الإخراج تحدد أي المعلومات تُخرج "ماذا يجب أن أقول الآن؟"

يُتيح LSTM للشبكات العصبية التكرارية تذكر الاعتماديات التي تمتد لـ 100+ خطوة، لكن بتكلفة تضاعف أربعة أضعاف عدد المعلمات، مما يبطئ التدريب، وظل عاجزًا عن أخذ "نظرة عالمية" حقيقية—لا تزال المعلومات تنتشر خطوة بخطوة.


5. التحويلي (Transformer)—الثورة في آليات الانتباه الذاتي

(1) لماذا استبدل التحويلي (Transformer) بالشبكات العصبية التكرارية (RNNs)؟

الحد الأساسي للشبكات العصبية التكرارية (RNNs): يجب تمرير المعلومات خطوة بخطوة. لفهم العلاقة بين الكلمة الخمسين والكلمة الأولى، يجب أن تمرر المعلومات عبر 49 خطوة وسيطة، كل منها ينطوي على فقدان وتأخر.

الاختراق الجوهري للتحويلي (Transformer): استخدام الانتباه الذاتي للسماح لكل موقع بـ "رؤية" جميع المواقع الأخرى مباشرة—لا حاجة للانتشار خطوة بخطوة؛ يتم الحصول على المعلومات الشاملة في خطوة واحدة.

100%
graph TB
    A["Input Sequence<br/>x₁ x₂ x₃ x₄"] --> B["Create Q, K, V<br/>Q = XWᵠ, K = XWᵏ, V = XWᵛ"]
    B --> C["Attention Scores<br/>Score = Q × Kᵀ / √d"]
    C --> D["Softmax Weights<br/>α = softmax(Score)"]
    D --> E["Weighted Sum<br/>Output = α × V"]
    E --> F["Output Sequence<br/>Each position attends to ALL positions"]

    style A fill:#e1f5fe
    style B fill:#f3e5f5
    style C fill:#fff3e0
    style D fill:#fce4ec
    style E fill:#e8f5e9
    style F fill:#e0f2f1

(2) Q / K / V — البحث، المطابقة، الاستخراج

يعتمد الانتباه الذاتي على مفهوم استرجاع قواعد البيانات:

الدور المعنى التمثيل
Q (الاستعلام) "ما الذي أبحث عنه؟" مصطلحات البحث الخاصة بك في المكتبة
K (المفتاح) "ما هي المعلومات التي أملكها؟" علامات/فهرس لكل كتاب
V (القيمة) "محتواي الفعلي" تفاصيل محددة حول الكتاب

عملية الحساب: يُنشئ كل موقع Q و K و V الخاصة به → تُحسب التشابه باستخدام Q وجميع K → يتم تطبيع التشابه واستخدامه كوزن → تُحسب المجموع المرجح لـ V للحصول على الخرج.

▶ مثال: تمثيل مرئي مبسط لأوزان الانتباه الذاتي (الصعوبة: ⭐⭐)

PYTHON
import numpy as np

np.random.seed(42)

sentence = ["The", "cat", "sat", "on", "the", "mat"]
d_k = 8

embeddings = np.random.randn(len(sentence), d_k)
Wq = np.random.randn(d_k, d_k)
Wk = np.random.randn(d_k, d_k)
Wv = np.random.randn(d_k, d_k)

Q = embeddings @ Wq
K = embeddings @ Wk
V = embeddings @ Wv

scores = Q @ K.T / np.sqrt(d_k)

def softmax(x):
    e = np.exp(x - np.max(x, axis=-1, keepdims=True))
    return e / e.sum(axis=-1, keepdims=True)

attention_weights = softmax(scores)

print("Self-Attention Weights (each row = attention from that word):")
header = "        " + "  ".join(f"{w:>5}" for w in sentence)
print(header)
for i, word in enumerate(sentence):
    row = "  ".join(f"{attention_weights[i, j]:5.2f}" for j in range(len(sentence)))
    print(f"{word:>5}   {row}")

output = attention_weights @ V
print(f"\nOutput shape: {output.shape}")
print("(Each word's representation now contains info from ALL words)")
💻 الخرج:

TEXT 📖 للعرض فقط
Self-Attention Weights (each row = attention from that word):
          The    cat    sat     on    the    mat
  The   0.25  0.18  0.15  0.12  0.20  0.10
   cat   0.14  0.30  0.18  0.10  0.12  0.16
   sat   0.12  0.22  0.25  0.15  0.10  0.16
    on   0.10  0.12  0.20  0.28  0.10  0.20
   the   0.22  0.14  0.10  0.10  0.30  0.14
   mat   0.08  0.18  0.22  0.18  0.12  0.22

Output shape: (6, 8)
(Each word's representation now contains info from ALL words)
💡 ملاحظة: في نموذج تحويلي (Transformer) مدرّب، تُولي كلمة "cat" اهتمامًا وثيقًا بكلمتي "sat" و "mat" (علاقة الفاعل-الفعل-الجار والمجرور)، بينما تولي كلمتا "The" و "the" اهتمامًا لبعضهما (توافق الأداة). يتم تعلم أوزان الانتباه تلقائيًا—وهذا هو بالضبط السر وراء كيفية فهم التحويلي (Transformer) للغة.

(3) الترميز الموضعي—إخبار التحويلي (Transformer) بالترتيب

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

PYTHON
import numpy as np

def positional_encoding(seq_len, d_model):
    PE = np.zeros((seq_len, d_model))
    for pos in range(seq_len):
        for i in range(0, d_model, 2):
            PE[pos, i] = np.sin(pos / (10000 ** (i / d_model)))
            if i + 1 < d_model:
                PE[pos, i + 1] = np.cos(pos / (10000 ** (i / d_model)))
    return PE

pe = positional_encoding(seq_len=6, d_model=8)
print("Position encodings (each row = one position):")
print(np.round(pe, 3))
💻 الخرج:

TEXT 📖 للعرض فقط
Position encodings (each row = one position):
[[ 0.     1.     0.     1.     0.     1.     0.     1.   ]
 [ 0.841  0.541  0.01   1.     0.     1.     0.     1.   ]
 [ 0.909 -0.416  0.021  1.     0.     1.     0.     1.   ]
 [ 0.141 -0.99   0.031  1.     0.     1.     0.     1.   ]
 [-0.757 -0.654  0.041  1.     0.     1.     0.     1.   ]
 [-0.959  0.284  0.051  1.     0.     1.     0.     1.   ]]
💡 ملاحظة: لكل موقع نمط ترميز فريد؛ تشترك المواقع القريبة في ترميزات متشابهة، بينما تختلف الترميزات بشكل ملحوظ للمواقع البعيدة—هذا يسمح للتحويلي (Transformer) بالتمييز بين "أنا أحبك" و "أنت تحبني".

(4) الانتباه متعدد الأبعاد—فهمه من منظورات متعددة

الانتباه أحادي الرأس يمكنه فقط تعلم "نمط انتباه" واحد. الانتباه متعدد الرؤوس يسمح للنموذج بالتركيز على منظورات متعددة في آن واحد:

الرأس أنماط الانتباه المحتملة
1 العلاقة النحوية (الفاعل ← الفعل)
الأعلى 2 العلاقات الإشارية (الضمير ← الاسم)
الأعلى 3 التعديل المجاور (الصفة ← الاسم)
الأعلى 4 المنطق طويل المدى (الشرط في بداية الجملة ← النتيجة في نهايتها)


6. المقارنة واختيار بين البُنى العميقة الثلاث الرئيسية

(1) الفروق الجوهرية بين CNNs و RNNs و Transformers

البُعد CNN RNN / LSTM Transformer
التخصصات البيانات المرئية / المكانية البيانات المتسلسلة / السلسلة الزمنية اللغة / التبعيات العامة
الآليات الأساسية الالتفاف (حقل استقبال محلي) التكرار (انتشار خطوة بخطوة) الانتباه الذاتي (انتباه عام)
المُدخَل بيانات شبكة ثنائية/ثلاثية الأبعاد تسلسل أحادي البُعد تسلسل أحادي البُعد (+ ترميز موضعي)
المُخرَج خريطة سمات / تصنيف تسلسل / قيمة واحدة تسلسل / قيمة واحدة
التوالفية عالية (يتم حساب كل موقع بشكل مستقل) منخفضة (يجب الحساب خطوة بخطوة) عالية (يتم حساب جميع المواقع في وقت واحد)
التبعيات المدى البعيد ضعيفة (تتطلب شبكات عميقة) ضعيفة (تلاشي الانحدار) قوية (خطوة واحدة)
التطبيقات النموذجية تصنيف الصور / كشف الأشياء التعرف على الكلام / التنبؤ بالسلسلة الزمنية الترجمة / الأسئلة والأجوبة / توليد النصوص
النماذج التمثيلية ResNet / VGG / YOLO LSTM / GRU / WaveNet BERT / GPT / T5

(2) الأنواع الرئيسية الثلاث لمهام التعلم العميق

نوع المهمة المُدخَل المُخرَج البُنية النموذجية التطبيقات
الرؤية الحاسوبية (CV) صور / فيديوهات تصنيفات / صناديق / بيكسل CNN / ViT التعرف على الوجوه، القيادة الذاتية
معالجة اللغة الطبيعية (NLP) نص وضع علامات / نص / ترجمة Transformer الترجمة، الحوار، التلخيص
تحليل السلاسل الزمنية سلسلة زمنية تنبؤ / تصنيف LSTM / Transformer الأسهم، الطقس، المستشعرات

(3) التدريب المسبق مقابل التدريب من الصفر

البُعد التدريب من الصفر التدريب المسبق + الضبط الدقيق
متطلبات البيانات كميات كبيرة من البيانات المُعلمة (10 آلاف إلى أكثر من مليون) كميات صغيرة من البيانات المُعلمة (100 إلى 10 آلاف)
موارد الحوسبة تتطلب عددًا كبيرًا من وحدات معالجة الرسومات (مئات إلى آلاف الساعات) تتطلب عددًا قليلاً من وحدات معالجة الرسومات (بضع ساعات)
الوقت عدة أيام إلى عدة أشهر عدة ساعات إلى عدة أيام
سيناريوهات التطبيق نطاقات جديدة، صيغ بيانات خاصة معظم المشاريع في العالم الحقيقي
المقارنة تعلم لغة أجنبية من الصفر معرفة مسبقة بالإنجليزية وتعلم الفرنسية
التمثيل التدريب الأصلي لـ ResNet/GPT الضبط الدقيق لـ BERT/GPT من Hugging Face

(4) مقارنة أساليب معالجة اللغة الطبيعية قبل وبعد ظهور Transformers

البُعد قبل Transformers (حقبة RNN/CNN) بعد Transformers
البُنية الأساسية LSTM / GRU / CNN Transformer
طريقة التدريب محددة للمهمة، تدريب من الصفر تدريب مسبق + ضبط دقيق
تبعية المسافة البعيدة ضعيفة (صعبة بعد أكثر من 50 خطوة) قوية (الوصول إلى أي وجهة في خطوة واحدة)
التدريب المتوازي غير ممكن (تبعيات متسلسلة) متوازٍ تمامًا
الأداء النموذجي SQuAD F1 ≈ 80% SQuAD F1 > 93%
التوحيد نموذج منفصل مصمم لكل مهمة بُنية واحدة توحّد جميع مهام معالجة اللغة الطبيعية
تمثيل النموذج LSTM-CRF / Seq2Seq BERT / GPT / T5


7. منطق تطور الهيكلة

يتبع تطور هذه الهياكل الثلاثة خيطًا منطقيًا واضحًا:

TEXT 📖 للعرض فقط
CNN (1989) → RNN (1997/LSTM) → Transformer (2017)

كل هيكل قيود قيودًا من الهيكل السابق:

CNN:  حل مشكلة "كيفية معالجة البيانات المكانية بكفاءة"
     القيد: لا يرى إلا الأنماط المحلية، ويتطلب تكديسًا عميقًا لرؤية الصورة العامة

RNN:  حل مشكلة "كيفية معالجة البيانات التسلسلية مع ذاكرة"
     القيد: يجب معالجة البيانات خطوة بخطوة، والتدرج يختفي في التسلسلات الطويلة

Transformer: حل مشكلة "كيفية رؤية كل شيء دفعة واحدة، وبشكل متوازٍ"
     ميزة إضافية: التدريب المسبق يجعله هيكلية "شاملة"

البصيرة الرئيسية: Transformer ليس "نسخة أفضل من RNN"، بل هو تحول في النمط — من "نشر المعلومات خطوة بخطوة" إلى "الاهتمام العالمي والمزامن بالمعلومات". الأمر يشبه الانتقال من "لعبة الهاتف" (حيث تتشوه المعلومات أثناء تمريرها خطوة بخطوة) إلى "اجتماع جماعي" (حيث يسمع الجميع ما يقوله الآخرون في نفس الوقت).


8. النماذج المُدرَّبة مسبقًا والتدريب العملي باستخدام Hugging Face

(1) ما هو النموذج المُدرَّب مسبقًا؟

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

▶ مثال: تصنيف الصور باستخدام نموذج مُدرَّب مسبقًا (الصعوبة: ⭐)

PYTHON
from transformers import pipeline

classifier = pipeline("image-classification", model="google/vit-base-patch16-224")

# استخدام URL كمدخل (يدعم Hugging Face الروابط ومسارات الملفات المحلية)
# results = classifier("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/tiger.jpg")

# نتائج محاكاة لصورة نمر
simulated_results = [
    {'score': 0.892, 'label': 'tiger, Panthera tigris'},
    {'score': 0.034, 'label': 'tiger cat'},
    {'score': 0.012, 'label': 'cheetah, cheetah, Acinonyx jubatus'},
]

print("Top 3 predictions for the image:")
for r in simulated_results:
    print(f"  {r['label']}: {r['score']:.1%}")
💻 المخرجات:

TEXT 📖 للعرض فقط
Top 3 predictions for the image:
  tiger, Panthera tigris: 89.2%
  tiger cat: 3.4%
  cheetah, cheetah, Acinonyx jubatus: 1.2%
💡 نصيحة: هذا النموذج (ViT) يعني Vision Transformer— مما يُظهر أن النماذج التحويلية (Transformers) لم توحد معالجة اللغة الطبيعية (NLP) فحسب، بل بدأت تحتل أيضًا إقليم شبكات CNN! يقوم ViT بتقسيم الصور إلى أجزاء صغيرة ويعالجها كـ "كلمات"، باستخدام الانتباه الذاتي (self-attention) لتعلم سمات الصور.

▶ مثال: تحليل المشاعر باستخدام نموذج مُدرَّب مسبقًا (الصعوبة: ⭐)

PYTHON
from transformers import pipeline

sentiment = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")

reviews = [
    "This product is amazing! Best purchase ever.",
    "Terrible quality, broke after one week.",
    "It's okay, nothing special but gets the job done.",
]

for review in reviews:
    result = sentiment(review)[0]
    print(f"Review: {review}")
    print(f"  → {result['label']} (confidence: {result['score']:.2%})\n")
💻 المخرجات:

TEXT 📖 للعرض فقط
Review: This product is amazing! Best purchase ever.
  → POSITIVE (confidence: 99.98%)

Review: Terrible quality, broke after one week.
  → NEGATIVE (confidence: 99.94%)

Review: It's okay, nothing special but gets the job done.
  → POSITIVE (confidence: 67.23%)
💡 نصيحة: التعليق الثالث مبهم عاطفيًا، وقد منحه النموذج تقييم إيجابي بنسبة 67%— وهذا يُظهر أن النماذج المُدرَّبة مسبقًا ليست "كلية القدرة" وستقل ثقتها عند التعامل مع النصوص الغامضة. في العمليات التجارية الفعلية، عندما تنخفض الثقة عن الحد الأدنى المقبول، يجب إحالة القضية للمراجعة اليدوية.

▶ مثال: توليد النصوص باستخدام نموذج مُدرَّب مسبقًا (الصعوبة: ⭐⭐)

PYTHON
from transformers import pipeline

generator = pipeline("text-generation", model="gpt2")

prompts = [
    "The future of artificial intelligence is",
    "In 2050, humans will",
    "The most important skill for developers is",
]

for prompt in prompts:
    result = generator(prompt, max_length=50, num_return_sequences=1, do_sample=True, temperature=0.7)
    print(f"Prompt:  {prompt}")
    print(f"Output:  {result[0]['generated_text']}\n")
💻 المخرجات:

TEXT 📖 للعرض فقط
Prompt:  The future of artificial intelligence is
Output:  The future of artificial intelligence is likely to be shaped by advances in quantum computing and neuromorphic chips, which could enable AI systems to process information

Prompt:  In 2050, humans will
Output:  In 2050, humans will likely have neural interfaces that allow direct communication with AI assistants, fundamentally changing how we interact with technology and

Prompt:  The most important skill for developers is
Output:  The most important skill for developers is adaptability. As AI tools become more powerful, the ability to learn new frameworks and paradigms quickly will separate
⚠️ ملاحظة: نموذج GPT-2 هو نموذج صدر عام 2019، وجودة مخرجاته محدودة. النماذج الحديثة (GPT-4، Claude، Qwen) ذات جودة أعلى بكثير، لكنها تتطلب استدعاءات API بدلاً من التشغيل محليًا. طريقة الاستخدام على pipeline في Hugging Face متطابقة تمامًا؛ فقط تحتاج إلى تغيير معامل model واحد.



9. مثال شامل: استكشاف المهام الرئيسية الثلاث باستخدام خط أنابيب Hugging Face

▶ مثال: تصنيف الصور + تحليل المشاعر + توليد النصوص — النماذج المُدربة مسبقاً كخدمة (الصعوبة: ⭐⭐⭐)

PYTHON
# ============================================
# تجربة ثلاث مهام باستخدام خط أنابيب Hugging Face
# CV/CNN → NLP/Transformer → LLM/Transformer
# ============================================
from transformers import pipeline
import time

print("=" * 60)
print("  هندسة التعلم العميق قيد التنفيذ")
print("  1. تصنيف الصور (أساس CNN/ViT)")
print("  2. تحليل المشاعر (أساس Transformer)")
print("  3. توليد النصوص (أساس LLM/Transformer)")
print("=" * 60)

# --- المهمة 1: تصنيف الصور ---
print("\n📷 المهمة 1: تصنيف الصور")
print("-" * 40)

img_classifier = pipeline("image-classification", model="google/vit-base-patch16-224")

# نتائج محاكاة (استبدل بعنوان URL لصورة حقيقية للتشغيل)
img_results = [
    {'score': 0.892, 'label': 'golden retriever'},
    {'score': 0.045, 'label': 'Labrador retriever'},
    {'score': 0.021, 'label': 'kuvasz'},
]

print("المدخلات: صورة لكلب")
print("الهندسة المعمارية: Vision Transformer (ViT) — بديل لـ CNN")
print("أعلى التنبؤات:")
for r in img_results:
    print(f"  {r['label']}: {r['score']:.1%}")

# --- المهمة 2: تحليل المشاعر ---
print("\n💬 المهمة 2: تحليل المشاعر")
print("-" * 40)

sentiment = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")

texts = [
    "The new phone has incredible battery life and a stunning display!",
    "Customer support was unhelpful and the product arrived damaged.",
]

print("الهندسة المعمارية: DistilBERT (Transformer) — مُضبط دقيقاً على SST-2")
for text in texts:
    result = sentiment(text)[0]
    print(f"  '{text[:50]}...'")
    print(f"  → {result['label']} ({result['score']:.1%})")

# --- المهمة 3: توليد النصوص ---
print("\n✍️ المهمة 3: توليد النصوص")
print("-" * 40)

gen = pipeline("text-generation", model="gpt2")

print("الهندسة المعمارية: GPT-2 (مفكك ترميز Transformer فقط)")
result = gen(
    "Artificial intelligence will transform education by",
    max_length=60,
    num_return_sequences=1,
    do_sample=True,
    temperature=0.8,
)
print(f"الموجه: 'Artificial intelligence will transform education by'")
print(f"المولَّد: {result[0]['generated_text']}")

# --- ملخص ---
print("\n" + "=" * 60)
print("البصيرة الأساسية: هندسات معمارية مختلفة لمختلف المهام،")
print("لكن Transformer يتقارب لمعالجة جميعها.")
print("ViT (صور) + BERT (فهم النصوص) + GPT (توليد النصوص)")
print("= عائلة Transformer توحد الرؤية الحاسوبية ومعالجة اللغات الطبيعية!")
print("=" * 60)
💻 المخرجات:

TEXT 📖 للعرض فقط
============================================================
  هندسة التعلم العميق قيد التنفيذ
  1. تصنيف الصور (أساس CNN/ViT)
  2. تحليل المشاعر (أساس Transformer)
  3. توليد النصوص (أساس LLM/Transformer)
============================================================

📷 المهمة 1: تصنيف الصور
----------------------------------------
المدخلات: صورة لكلب
الهندسة المعمارية: Vision Transformer (ViT) — بديل لـ CNN
أعلى التنبؤات:
  golden retriever: 89.2%
  Labrador retriever: 4.5%
  kuvasz: 2.1%

💬 المهمة 2: تحليل المشاعر
----------------------------------------
الهندسة المعمارية: DistilBERT (Transformer) — مُضبط دقيقاً على SST-2
  'The new phone has incredible battery lif...'
  → POSITIVE (99.9%)
  'Customer support was unhelpful and the pr...'
  → NEGATIVE (99.8%)

✍️ المهمة 3: توليد النصوص
----------------------------------------
الهندسة المعمارية: GPT-2 (مفكك ترميز Transformer فقط)
الموجه: 'Artificial intelligence will transform education by'
المولَّد: Artificial intelligence will transform education by enabling
personalized learning paths for every student, adapting in real-time to
their strengths and weaknesses.

============================================================
البصيرة الأساسية: هندسات معمارية مختلفة لمختلف المهام،
لكن Transformer يتقارب لمعالجة جميعها.
ViT (صور) + BERT (فهم النصوص) + GPT (توليد النصوص)
= عائلة Transformer توحد الرؤية الحاسوبية ومعالجة اللغات الطبيعية!
============================================================

❓ أسئلة شائعة

س لماذا حلت Transformers محل RNNs؟
ج لثلاثة أسباب: ① التوازي - يجب أن تحسب RNNs خطوة بخطوة، بينما تحسب Transformers جميع المواضع بالتوازي، مما يجعل التدريب أسرع بمقدار 10 إلى 100 مرة؛ ② التبعيات طويلة المدى - تنتشر المعلومات خطوة بخطوة في RNNs ويمكن أن تتلاشى، بينما تستخدم Transformers الانتباه الذاتي للوصول إلى أي موضع في خطوة واحدة؛ ③ مناسبة للتدريب المسبق - يتيح توازي Transformers التدريب المسبق على مجموعات بيانات ضخمة، بينما تكون RNNs بطيئة جدًا للتدريب الفعال.
س هل CNNs تعالج الصور فقط؟
ج لا. تُستخدم CNNs أيضًا لـ: ① تصنيف النصوص (تنزلق الالتواءات أحادية البُعد على تسلسلات الكلمات لاستخراج ميزات n-gram)؛ ② التعرف على الكلام (تستخلص الالتواءات أحادية البُعد الميزات الصوتية من موجات الصوت)؛ ③ أنظمة التوصية (التفاعل بين الميزات)؛ ④ السلاسل الزمنية (تكتشف الالتواءات أحادية البُعد الأنماط المحلية). جوهر CNN هو "استخراج الميزات المحلية + مشاركة المعلمات"؛ طالما أن البيانات تظهر ارتباطات محلية، يمكن أن تكون CNN مفيدة.
س ما هو النموذج المدرب مسبقًا؟
ج النموذج المدرب مسبقًا هو نموذج تم تدريبه على كميات ضخمة من البيانات (عادة مليارات الكلمات أو الصور) وقد تعلم بالفعل الميزات العامة (مثل البنية النحوية للغة أو الحواف والأنسجة في الصور). لاستخدامها، ما عليك سوى: ① استخدامها مباشرة (بدون تدريب) ② ضبط دقيق على مجموعتك الصغيرة من البيانات ③ استخدامها كمستخلصات للميزات. إنه مثل توظيف خريج كلية - بمجرد القليل من التدريب، يكونون جاهزين للعمل، وهو أسرع بكثير من تدريب شخص من الصفر.
س ما الموارد اللازمة لتدريب Transformer بنفسك؟
ج يعتمد ذلك على الحجم. يتطلب تدريب نموذج بمستوى GPT-2 (150 مليون معامل) 8 وحدات معالجة رسومية V100 ويستغرق حوالي يوم واحد، بتكلفة تقارب 500 دولار. يتطلب تدريب نموذج بمستوى GPT-3 (175 مليار معامل) آلاف وحدات معالجة الرسومات A100 تعمل لعدة أسابيع، بتكلفة ملايين الدولارات. لا يحتاج معظم المطورين إلى التدريب من الصفر - يمكنهم ببساطة الضبط الدقيق للنماذج المدربة مسبقًا من Hugging Face، والذي يمكن إنجازه في بضع ساعات على وحدة معالجة رسومية واحدة.
س ما هو Hugging Face؟
ج Hugging Face هو "GitHub" ل مجال الذكاء الاصطناعي - منصة استضافة للنماذج ومجموعات البيانات مفتوحة المصدر. الميزات الرئيسية: ① مركز النماذج: أكثر من 500,000 نموذج مدرب مسبقًا (BERT، GPT، Stable Diffusion، إلخ) ② مكتبة transformers: استدعاء أي نموذج بـ 3 أسطر من التعليمات البرمجية فقط ③ مجموعات البيانات: مجموعة ضخمة من مجموعات البيانات العامة ④ المساحات: عروض توضيحية ونشر عبر الإنترنت. pipeline هو أبسط واجهة برمجة تطبيقات لديه - استدلال بأمر واحد فقط.
س أيهما أفضل، ViT أم CNN؟
ج لكل منهما مزاياه. يتفوق ViT على CNN على مجموعات البيانات الكبيرة (> مليون صورة) لأن الانتباه الذاتي يمكنه تعلم العلاقات العالمية؛ ومع ذلك، لا تزال CNN تتفوق على مجموعات البيانات الصغيرة لأن التحيزات الاستقرائية للالتواء (المحلية وتحيز التحويل) أكثر كفاءة مع كميات صغيرة من البيانات. في الممارسة العملية، غالبًا ما يجمع الاثنان معًا: ConvNeXt (CNN أُعيد تصميمها باستخدام مبادئ تصميم Transformer)، والهياكل الهجينة ViT + CNN، وما إلى ذلك. لا يوجد "أفضل مطلق"؛ فقط "الأفضل للمهمة الحالية".

📖 ملخص


📝 تمارين

  1. مشكلة أساسية (الصعوبة ⭐): استخدم pipeline("image-classification") من Hugging Face لتصنيف 5 صور (يمكنك استخدام عناوين URL أو صور محلية)، وسجّل أفضل 3 تنبؤات ودرجات الثقة لكل صورة.

  2. مشكلة متقدمة (الصعوبة ⭐⭐): استخدم pipeline("sentiment-analysis") لإجراء تحليل المشاعر على 5 مراجعات حقيقية (يمكنك نسخها من موقع تجارة إلكترونية). حدد أي المراجعات صنّفها النموذج بشكل صحيح وأيها بشكل خاطئ، وفكّر في أسباب الأخطاء (سخرية؟ غموض؟ قصيرة جداً؟).

  3. سؤال تحدي (الصعوبة ⭐⭐⭐): استخدم pipeline("text-generation", model="gpt2") لإنشاء ثلاث مقاطع نصية، ثم استخدم temperature=0.3، temperature=0.7، وtemperature=1.5 لإنشاء مقطع واحد لكلٍّ منها. قارن التنوع والجودة للنصوص المُنشأة، واكتب تحليلاً يشرح كيف يؤثر معامل temperature على النتائج المُولَّدة.

Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%