المشفّرات التلقائية لتعلّم التمثيلات
بنية المرمّز وفاكّ الترميز، وعنق الزجاجة، وخسارة إعادة البناء، وتطبيقات اكتشاف الحالات الشاذة
المشفّرات التلقائية لتعلّم التمثيلات درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ما هو المشفّر التلقائي؟
يتعلّم المشفّر التلقائي ضغط البيانات في تمثيل صغير ثم إعادة بنائها. ويتكوّن من جزأين: مشفّر يضغط البيانات، ومفكّك تشفير يعيد بناءها. ويجبره التضييق في المنتصف على تعلّم ما هو مهم.
import torch
import torch.nn as nnفكرة عنق الزجاجة
تُسمّى الطبقة الوسطى الضيقة عنق الزجاجة أو التمثيل الكامن. وبإجبار جميع المعلومات على المرور عبر بضعة أرقام، تضطر الشبكة إلى التخلص من الضوضاء والاحتفاظ بالبنية الأساسية للبيانات.
بناء المشفّر
بالنسبة إلى الصور ذات الحجم 28x28، أي 784 بكسل، يقلّص المشفّر حجم الإدخال خطوةً تلو الأخرى: من 784 إلى 256 ثم إلى تمثيل كامن بأبعاد 64. وتتبع كل طبقة Linear لاخطية ReLU.
encoder = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Linear(256, 64)
)بناء مفكك الترميز
يعكس مفكك الترميز عمل المرمّز، إذ يوسّع التمثيل ذي الأبعاد الـ64 ليعيده إلى 784 بكسلًا. وتضغط طبقة Sigmoid النهائية القيم الناتجة إلى المجال [0,1] لتطابق قيم البكسلات المُطبَّعة.
decoder = nn.Sequential(
nn.Linear(64, 256),
nn.ReLU(),
nn.Linear(256, 784),
nn.Sigmoid()
)المشفّر التلقائي الكامل
صِل المرمّز ومفكك الترميز في وحدة واحدة. يرمّز المرور الأمامي البيانات ثم يفك ترميزها، ويعيد بناءً له الشكل نفسه لشكل الإدخال.
class AutoEncoder(nn.Module):
def __init__(self, enc, dec):
super().__init__()
self.enc, self.dec = enc, dec
def forward(self, x):
z = self.enc(x)
return self.dec(z)خسارة إعادة البناء (MSE)
هدف التدريب هو الإدخال نفسه. يقيس الخطأ التربيعي المتوسط مدى اختلاف إعادة البناء عن البكسلات الأصلية بكسلًا بكسلًا. ويؤدي تقليله إلى تعلّم ضغط يحافظ على دقة البيانات.
criterion = nn.MSELoss()
x_flat = x.view(x.size(0), -1)
recon = model(x_flat)
loss = criterion(recon, x_flat)تدريب المشفّر التلقائي
التدريب غير خاضع للإشراف: لا توجد تسميات، بل مدخلات فقط. تتبع الحلقة التسلسل المعتاد zero_grad ثم forward ثم backward ثم step، لكن الخسارة تقارن الناتج بالإدخال.
optimizer.zero_grad()
recon = model(x_flat)
loss = criterion(recon, x_flat)
loss.backward()
optimizer.step()الفضاء الكامن
بعد التدريب، يعيّن المرمّز كل إدخال إلى نقطة في الفضاء الكامن. تقع المدخلات المتشابهة بالقرب من بعضها، ولذلك يمثّل هذا التمثيل ذي الأبعاد الـ64 تمثيلًا متعلَّمًا ومضغوطًا للبيانات.
z = model.enc(x_flat)
print(z.shape) # [batch, 64]التصوير باستخدام t-SNE
يصعب رؤية الفضاء الكامن ذي الأبعاد الـ64. يعمل t-SNE على إسقاطه إلى بُعدين لرسمه. وتكشف العناقيد في الرسم أن المشفّر التلقائي جمع العناصر المتشابهة معًا من دون أن يرى أي تسميات.
from sklearn.manifold import TSNE
codes = model.enc(all_data).detach().numpy()
proj = TSNE(n_components=2).fit_transform(codes)
# scatter plot proj colored by true labelاكتشاف الشذوذ
يعيد المشفّر التلقائي المدرَّب على بيانات طبيعية بناءها جيدًا، لكنه يواجه صعوبة مع حالات الشذوذ التي لم يرها من قبل. وتشير خسارة إعادة البناء المرتفعة إلى قيمة شاذة، ما يجعله كاشفًا قويًا للشذوذ غير الخاضع للإشراف.
errors = ((model(data) - data) ** 2).mean(dim=1)
anomalies = errors > thresholdلماذا تعلّم التمثيلات؟
القيمة الحقيقية تكمن في التمثيل الكامن: فهو متجه سمات متعلَّم يمكنك استخدامه للتجميع أو التصوير أو اكتشاف الشذوذ أو إدخاله إلى نموذج آخر، وكل ذلك من دون تسميات.
اختبار سريع
اختبر فهمك للمشفّر التلقائي.
مراجعة: المشفّرات التلقائية
بنيت مرمّزًا (784 إلى 256 إلى 64) ومفكك ترميز يعكسه، ودرّبتهما باستخدام خسارة إعادة البناء وفق MSE ومن دون تسميات. استخدمت التمثيل الكامن لتعلّم التمثيلات، وصوّرته باستخدام t-SNE، واكتشفت حالات الشذوذ عبر خسارة إعادة البناء المرتفعة.
الأسئلة الشائعة
هل درس «المشفّرات التلقائية لتعلّم التمثيلات» مجاني؟
نعم — نص درس «المشفّرات التلقائية لتعلّم التمثيلات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «المشفّرات التلقائية لتعلّم التمثيلات»؟
بنية المرمّز وفاكّ الترميز، وعنق الزجاجة، وخسارة إعادة البناء، وتطبيقات اكتشاف الحالات الشاذة تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «المشفّرات التلقائية لتعلّم التمثيلات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المشفّرات التلقائية لتعلّم التمثيلات
- المشفّرات التلقائية التغايرية (VAE)
- GANs: المولّد والمميّز
- شبكات GAN الشرطية ونقل الأسلوب