انتقل إلى المحتوى الرئيسي

جارٍ تحميل المختبر المرئي…

#autoencoderالتعلّم العميق

المرمّز التلقائي: اضغط ثم أعِد البناء.

ما ستُجرّبه

  1. أهلًا بك في #autoencoder. على اليسار صليب مرسوم على 8×8 = 64 بكسل، وفي الوسط عنق زجاجة مؤلَّف من 4 خلايا عصبية، وعلى اليمين ما تعيد الشبكة بناءه انطلاقًا من هذه الأرقام الأربعة وحدها. الأوزان لا تزال عشوائية، فالمخرج مجرّد لطخة رمادية. يتعلّم المرمّز التلقائي (autoencoder) أن يضغط المدخل (المُشفِّر: 64 ← 4) ثم يعيد بناءه (المُفكِّك: 4 ← 64) عبر تصغير الفارق بين المدخل والمخرج. لا توجد تسميات: الهدف هو المدخل نفسه. هذه هي الفكرة الكامنة وراء الضغط المتعلَّم وإزالة الضوضاء وجزء من مولِّدات الصور.
  2. لتبدأ التدريب اكتب: /train 20. في كل حقبة (epoch) ترى الشبكة الرموز الاثني عشر، وتقيس خطأ إعادة البناء، ثم تعدِّل أوزانها عبر الانتشار الخلفي (backpropagation).
  3. أربعون حقبة إضافية: /train 40. المفترض أن يذوب متوسّط الخطأ التربيعي (MSE) المعروض تحت الشبكة اليمنى.
  4. لنُضيِّق عنق الزجاجة: /latent 2. تُعاد تهيئة الشبكة بخليّتين عصبيّتين فقط في الوسط (2): على كل رمز أن يتّسع داخل رقمين اثنين، وهما بالضبط محورا المستوى الكامن.
  5. أعِد تدريب هذه الشبكة الضيّقة: /train 40. ثم قارِن متوسّط الخطأ على الرموز الاثني عشر (اللوحة اليمنى) بما حصلت عليه في 4 أبعاد.
  6. غيِّر المدخل: /image circle. تُشفِّر الأوزان نفسها ثم تفكّ رسمًا مختلفًا تمامًا دون أي إعادة تعلّم.
  7. أفسِد المدخل: /noise 0.3 يستبدل 30% من البكسلات بقيم عشوائية. الشبكة نفسها لم ترَ ضوضاء من قبل.
  8. تنقَّل في الفضاء الكامن: /interpolate cross circle يضع 5 نقاط وسيطة بين رمز الصليب ورمز الدائرة، ثم يفكّ كلًّا منها.
  9. الدور دورك: /point 0.5 -0.5 يفكّ نقطة حرّة في المستوى الكامن، و/pixel 1 1 يقلب بكسلًا خارج النمط لترى الشبكة تمحوه، و/latent 8 ثم /train 30 لعنق زجاجة أوسع، و/noise 0.6 لإزالة ضوضاء أصعب، و/seed 3 لتهيئة أخرى، و/reset للعودة إلى البداية. التالي: قناة #transfer-learning، حيث يصبح المُشفِّر المدرَّب مسبقًا نقطة انطلاق لمهمّة جديدة.

أوامر القناة

  • /latent <k=1..8>تغيير بُعد عنق الزجاجة وإعادة تهيئة الشبكة (أوزان جديدة، الحقبة 0).
  • /train <epochs=5..60>متابعة التدريب (SGD، الهدف = رمز نظيف؛ مدخل مُشوَّش إذا كان /noise > 0).
  • /image <cross|circle|bar|line|diagonal|square|triangle|dot|L|T|checker>تغيير الرمز المُدخَل (الشبكة نفسها لا تتغيّر).
  • /noise <0..1>يُفسد المدخل (نسبة من البكسلات تُستبدل بقيمة عشوائية)؛ الهدف يبقى نظيفًا.
  • /interpolate <a> <b>يفكّ 5 رموز وسيطة بين الرمزين الكامنَين لرمزين (الشريط السفلي).
  • /point <z1> <z2>فكّ نقطة حرّة من المستوى الكامن (z1، z2؛ باقي الأبعاد أصفار).
  • /pixel <row=1..8> <col=1..8>قلب بكسل في المدخل (السطر 1 في الأعلى) لاختبار شكل خارج مجموعة البيانات.
  • /seed <n=1..999>تغيير البذرة: تهيئة أوزان مختلفة ونمط ضوضاء مختلف؛ يبدأ التدريب من الصفر.
  • /resetالعودة إلى الحالة الأولية: صليب، عنق زجاجة 4، أوزان عشوائية، بلا ضوضاء.

المسرد

المرمّز التلقائي (Autoencoder)
شبكة تُدرَّب على إعادة إنتاج مدخلها بعد عصره عبر تمثيل أصغر. لا تسميات: الهدف هو المدخل نفسه، وهذا ما يجعلها تعلّمًا ذاتي الإشراف.
المُشفِّر (Encoder)
النصف الأول من الشبكة: يضغط المدخل (64 بكسل هنا) في رمز كامن مؤلَّف من k أرقام.
المُفكِّك (Decoder)
النصف الثاني من الشبكة: يعيد بناء مخرج بحجم المدخل انطلاقًا من الرمز الكامن وحده. وهو أيضًا مولِّد صغير: أعطه رمزًا مُبتكَرًا فينتج صورة.
عنق الزجاجة (Bottleneck)
أضيق طبقة بين المُشفِّر والمُفكِّك. حجمها k يحدِّد نسبة الضغط (64 ← k) ويُجبر الشبكة على الاحتفاظ بالجوهر فقط.
الفضاء الكامن (Latent space)
فضاء بأبعاد k تعيش فيه الرموز. مدخلان متشابهان لهما رمزان قريبان؛ التنقّل فيه يعني تغيير الخصائص التي تعلَّمت الشبكة اكتشافها.
خطأ إعادة البناء (Reconstruction error)
الفارق بين المخرج والمدخل، وهو هنا متوسّط الخطأ التربيعي (MSE) على 64 بكسل. إنه الخسارة الوحيدة التي يُدنِّيها التدريب.
إزالة الضوضاء (Denoising)
صيغة يُقدَّم فيها مدخل مُشوَّش بينما يبقى الهدف الصورة النظيفة: يتعلّم المرمّز التلقائي إزالة الضوضاء، ويصبح تمثيله أكثر متانة.
الاستيفاء الكامن (Latent interpolation)
اختر نقاطًا وسيطة بين رمزين وفُكَّها: تحصل على أشكال لا وجود لها في أي مجموعة بيانات. يكشف ذلك ما إذا كان الفضاء الكامن متّصلًا أم مليئًا بالثقوب.
المرمّز التلقائي المتغيّر (Variational autoencoder, VAE)
مرمّز تلقائي رمزه توزيع (متوسّط وتباين) بدل نقطة، مع عقوبة تشدّ الرموز حول الأصل. يصبح الفضاء الكامن سلسًا وقابلًا للأخذ منه: نموذج توليدي حقيقي.
تقليل الأبعاد (Dimensionality reduction)
تمثيل بيانات عالية الأبعاد (64 بكسل) بأرقام قليلة (k) مع فقدان أقلّ ما يمكن من المعلومات. المرمّز التلقائي نسخته غير الخطية؛ PCA هو النسخة الخطية.

قنوات أخرى في التعلّم العميق

  • #optimizersSGD وMomentum وAdam: سباق إلى الأدنى.
  • #batch-normalizationتطبيع الحُزَم: إبقاء التفعيلات في المدى الصحيح.
  • #rnn-lstmRNN وLSTM: تذكُّر تسلسل.
  • #autoencoderالمرمّز التلقائي: اضغط ثم أعِد البناء.
  • #transfer-learningالتعلّم بالنقل: انطلق من شبكة مدرَّبة سلفًا.
  • #ganGAN: مزوِّر ضدّ مفتِّش