Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

الشبكة العصبية المتكررة (RNN)

اكتشف كيف تعالج الشبكات العصبية المتكررة (RNN) البيانات المتسلسلة باستخدام الذاكرة. تعرف على بنى الشبكات العصبية المتكررة (RNN) وتطبيقات معالجة اللغة الطبيعية (NLP) PyTorch .

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

كيف تعمل شبكات RNN

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

هذه القدرة على المعالجة التسلسلية ضرورية لـ معالجة اللغة الطبيعية (NLP) وتحليل السلاسل الزمنية. ومع ذلك، غالبًا ما تواجه شبكات RNN القياسية صعوبات في التعامل مع التسلسلات الطويلة بسبب مشكلة التدرج المتلاشي، حيث تنسى الشبكة المدخلات السابقة مع نمو التسلسل. أدى هذا القيد إلى تطوير أنواع أكثر تقدمًا مثل شبكات الذاكرة القصيرة الطويلة المدى (LSTM) ووحدات التكرار البوابية (GRU)، التي تقدم آليات لتنظيم تدفق المعلومات بشكل أفضل على مدى فترات أطول.

تطبيقات واقعية

أحدثت الشبكات العصبية المتكررة تحولاً في العديد من الصناعات من خلال تمكين الآلات من فهم البيانات المتسلسلة. فيما يلي مثالان بارزان:

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

الشبكات العصبية التكرارية مقابل الشبكات العصبية التسلسلية والمحولات

من المفيد التمييز بين شبكات RNN وغيرها من البنى الرئيسية. شبكة عصبية تلافيفية (CNN) مصممة أساسًا للبيانات المكانية، مثل الصور، ومعالجة شبكات البكسل لتحديد الأشكال والأشياء. على سبيل المثال، تستخدم Ultralytics شبكة CNN قوية للكشف عن الأشياء في الوقت الفعلي. في حين أن شبكة CNN تتفوق في "ماذا يوجد في هذه الصورة؟"، فإن شبكة RNN تتفوق في "ماذا سيحدث بعد ذلك في هذا الفيديو؟".

في الآونة الأخيرة، حلت بنية Transformer إلى حد كبير محل RNNs في العديد من مهام NLP المعقدة. تستخدم Transformers آلية الانتباه لمعالجة التسلسلات بأكملها بشكل متوازٍ بدلاً من التسلسل. ومع ذلك، تظل RNNs عالية الكفاءة لتطبيقات البث المحددة ذات زمن الاستجابة المنخفض والموارد المحدودة ، كما أنها أسهل في النشر على الأجهزة الطرفية للتنبؤ بالسلسلة الزمنية البسيطة .

مثال PyTorch

بينما تعتمد مهام الرؤية الحاسوبية الحديثة غالبًا على شبكات CNN، قد تستخدم النماذج الهجينة شبكات RNN لتحليل السمات الزمنية المستخرجة من إطارات الفيديو. فيما يلي مثال بسيط وقابل للتشغيل باستخدام PyTorch لإنشاء طبقة RNN أساسية تعالج تسلسل البيانات.

import torch
import torch.nn as nn

# Define a basic RNN layer
# input_size: number of features in the input (e.g., 10 features per time step)
# hidden_size: number of features in the hidden state (memory)
# batch_first: input shape will be (batch, seq, feature)
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=1, batch_first=True)

# Create a dummy input: Batch size 1, Sequence length 5, Features 10
input_seq = torch.randn(1, 5, 10)

# Forward pass through the RNN
# output contains the hidden state for every time step
# hn contains the final hidden state
output, hn = rnn(input_seq)

print(f"Output shape: {output.shape}")  # Expected: torch.Size([1, 5, 20])
print(f"Final hidden state shape: {hn.shape}")  # Expected: torch.Size([1, 1, 20])

التحديات والتوقعات المستقبلية

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

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

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن