Autoencoder
يتعلم المُرمِّز التلقائي ضغط البيانات إلى تمثيل مدمج وإعادة بنائها من دون تسميات. بنيته وأنواعه واكتشاف الحالات الشاذة والشيفرة.
المشفّر التلقائي هو شبكة عصبية تُدرّب على إعادة إنتاج مدخلاتها. يحوّل المشفّر المدخل إلى شيفرة موجزة تُسمى غالبًا التمثيل الكامن، ويحوّل مفكّك الترميز الشيفرة إلى إعادة بناء، ويقلل التدريب الفرق بين المدخل وإعادة بنائه. ولأن الهدف هو المدخل نفسه، تتعلم المشفّرات التلقائية من بيانات غير موسومة، وهو شكل من التعلم غير الخاضع للإشراف يُصنّف اليوم عادةً ضمن التعلم الذاتي الإشراف. وما يجعل الشبكة مفيدة هو فرض قيد يمنعها من نسخ المدخل مباشرةً، مثل عنق زجاجة ضيق أو ضوضاء مضافة أو مدخلات محجوبة أو عقوبة للتناثر، ما يجبرها على تعلم البنية التي تجعل البيانات قابلة للضغط. وتُستخدم المشفّرات التلقائية في تقليل الأبعاد وكشف الحالات الشاذة وإزالة الضوضاء والتدريب المسبق، كما تُستخدم مرحلة ضغط في مولدات الصور الحديثة.
آلية عمل المشفّرات التلقائية#
تحوّل الدالة f في المشفّر المدخل x إلى شيفرة z = f(x)، وينتج مفكّك الترميز g إعادة بناء x̂ = g(z)، ويقلل التدريب خسارة إعادة البناء، مثل متوسط مربع الخطأ بين x وx̂، باستخدام الانتشار العكسي. وفي المشفّر التلقائي ذي التمثيل الناقص، تكون أبعاد z أقل بكثير من أبعاد x، لذا تلخص الشيفرة البيانات في فضاء كامن لا يحتفظ إلا بما يحتاج إليه مفكّك الترميز. ويتعلم المشفّر التلقائي الخطي المدرّب بخسارة تربيعية الفضاء الجزئي نفسه الذي يتعلمه تحليل المكونات الرئيسية (PCA)، وهي نتيجة أثبتها Pierre Baldi وKurt Hornik عام 1989، بينما تتيح دوال التنشيط اللاخطية للمشفّرات التلقائية الأعمق التقاط البنى المنحنية التي يعجز PCA عن التقاطها. وأظهر Geoffrey Hinton وRuslan Salakhutdinov في ورقة بحثية منشورة في Science عام 2006 أن المشفّرات التلقائية العميقة أنتجت شيفرات منخفضة الأبعاد للصور والمستندات أفضل بكثير من PCA.
تُفسد الأنواع التي لا تعتمد على عنق زجاجة ضيق المدخل بدلًا من ذلك، ثم تقيّم إعادة البناء بمقارنتها بالأصل النظيف:
أنواع المشفّرات التلقائية#
- إزالة الضوضاء: تُضيف ضوضاء إلى المُدخل وتُدرّب الشبكة على استعادة الأصل النظيف، كما وصف باسكال فنسنت وزملاؤه عام 2008. وتكون الميزات المتعلَّمة متينة في مواجهة التشويش، ويمكن للنموذج المدرَّب تنظيف الصور أو الإشارات المشوشة.
- متناثرة: تستخدم وحدات رموز أكثر من المُدخلات، لكنها تفرض عقوبة على عدد الوحدات النشطة في الوقت نفسه. وتُقسّم المشفّرات التلقائية المتناثرة، المدرَّبة على التنشيطات الداخلية لـنماذج اللغة الكبيرة (LLMs)، هذه النماذج إلى ميزات كثيرة، يميل كل منها إلى مطابقة مفهوم واحد قابل للتفسير.
- تغايرية (VAE): يُخرج المُشفّر توزيعًا احتماليًا للرموز، وتحافظ عقوبة تباعد KL عليه قريبًا من التوزيع الطبيعي القياسي، بحيث يؤدي فك ترميز رمز مأخوذ عشوائيًا إلى توليد بيانات جديدة. وقد قدّم ديدريك كينغما وماكس ويلينغ VAE عام 2013.
- مكمّمة متجهيًا (VQ-VAE): تُسنِد كل متجه رمز إلى أقرب مدخل في دفتر رموز متعلَّم من خلال التكميم المتجهي، فتحوّل الصور أو الصوت إلى رموز منفصلة يمكن لنموذج ذاتي الانحدار توليدها.
- مقنّع: يحجب معظم المُدخل ويعيد بناء الأجزاء المفقودة. وتخفي المشفّرات التلقائية المقنّعة (MAE) 75% من رقع الصورة، ويصبح المُشفّر المدرَّب بهذه الطريقة عمودًا فقريًا قويًا لمهام الرؤية الأخرى. ويستند مُشفّر الصور في نموذج تقسيم أي شيء (SAM) من Meta، الذي يعمل ضمن حزمة Ultralytics، إلى بنية Transformer للرؤية مُدرَّبة مسبقًا باستخدام MAE، كما يستند مُشفّر SAM 2 إلى مُشفّر Hiera مُدرَّب مسبقًا باستخدام MAE؛ لذا تعلّمت النماذج أولًا الميزات الكامنة وراء كل قناع قابل للتوجيه بالمطالبات من خلال ملء الرقع المخفية.
اكتشاف الحالات الشاذة باستخدام خطأ إعادة البناء#
يعيد المُشفّر التلقائي المدرَّب على البيانات الطبيعية فقط بناء المُدخلات الطبيعية جيدًا، بينما يعيد بناء المُدخلات غير المألوفة بصورة ضعيفة؛ لذا يصلح خطأ إعادة البناء درجةً للشذوذ في عيوب التصنيع أو المعاملات الاحتيالية أو الآلات التي توشك على التعطل، دون الحاجة إلى حالات شاذة موسومة. ويدرّب المقتطف أدناه باستخدام PyTorch مُشفّرًا تلقائيًا صغيرًا على الأرقام المكتوبة بخط اليد المضمّنة في scikit-learn، مع استبعاد كل رقم 7، ثم يقارن خطأه على الأرقام المحجوزة بخطئه على الرقم 7:
import torch
from sklearn.datasets import load_digits
from torch import nn
# 8x8 handwritten digits scaled to [0, 1]; every 7 is held out as the unseen anomaly
digits = load_digits()
x = torch.tensor(digits.data / 16, dtype=torch.float32)
normal, sevens = x[digits.target != 7], x[digits.target == 7]
train, test = normal[:1200], normal[1200:]
# Encoder: 64 pixels to an 8-number code; decoder: code back to 64 pixels
torch.manual_seed(0)
encoder = nn.Sequential(nn.Linear(64, 32), nn.ReLU(), nn.Linear(32, 8))
decoder = nn.Sequential(nn.Linear(8, 32), nn.ReLU(), nn.Linear(32, 64), nn.Sigmoid())
model = nn.Sequential(encoder, decoder)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for step in range(1000):
optimizer.zero_grad()
nn.functional.mse_loss(model(train), train).backward() # reconstruction error
optimizer.step()
with torch.no_grad():
for name, data in [("Held-out digits", test), ("Unseen 7s", sevens)]:
print(f"{name}: reconstruction error {nn.functional.mse_loss(model(data), data):.4f}")يطبع المقتطف خطأ إعادة بناء بقيمة 0.0163 للأرقام المحجوزة وبقيمة 0.0547 للأرقام 7، أي أعلى بمقدار 3.4 مرات في المتوسط، وتحول عتبة تُطبّق على خطأ كل صورة هذا الفارق إلى إشارة شذوذ. وقد يعمم المُشفّر التلقائي أكثر من اللازم ويعيد بناء بعض الحالات الشاذة بدقة أيضًا؛ لذلك تضبط الأنظمة العملية حجم عنق الزجاجة والعتبة باستخدام بيانات التحقق التي تتضمن حالات شاذة معروفة.
المشفّرات التلقائية والمفاهيم ذات الصلة#
- الشبكات التوليدية التنافسية (GANs): يحوّل المولّد في GAN الضوضاء العشوائية إلى بيانات ويتعلم من مُميّز، دون مُشفّر أو هدف لإعادة البناء. وتولّد VAE البيانات أيضًا، كما أن هدفها القائم على الاحتمالية يجعل التدريب أكثر استقرارًا، لكنه يميل إلى إنتاج صور أكثر ضبابية.
- U-Net: تشترك في بنية المُشفّر وفاكّ الترميز، لكنها تحوّل المُدخل إلى هدف مختلف، مثل قناع تقسيم، وتتجاوز عنق الزجاجة بوصلات تخطٍّ؛ وهو ما كان سيسمح للشبكة بنسخ مُدخلها لو كانت مُشفّرًا تلقائيًا.
- التعلّم التبايني: يتعلّم التمثيلات بمقارنة العينات بعضها ببعض؛ لذلك تلتقط ميزاته ما يميّز الصور وتتجاهل التفاصيل على مستوى البكسل التي يجب أن تحافظ عليها خسارة إعادة البناء.
- التضمينات: يُعد الرمز الذي ينتجه المُشفّر نوعًا من التضمين، والمشفّرات التلقائية إحدى طرائق عدة لتعلّم التضمينات.
المشفّرات التلقائية في توليد الصور#
تُجري نماذج الانتشار الكامن مثل Stable Diffusion عملية الانتشار داخل الفضاء الكامن لمُشفّر تلقائي، ثم تفك ترميز النتيجة إلى بكسلات في النهاية. ويستخدم Stable Diffusion 1.x مُشفّرًا تلقائيًا مُنظَّمًا باستخدام KL يضغط صورة RGB بأبعاد 512×512 إلى تمثيل كامن بأبعاد 64×64×4، وبذلك يعالج نموذج الانتشار قيمًا أقل بـ48 مرة في كل خطوة من خطوات إزالة الضوضاء.










