
تهدف تقنيى التعليم العميق GAN إلى إنشاء ، صورة أو تكوين صورة . هذا صعب مقارنة بميادين التعلم العميقة الأخرى. على سبيل المثال ، يسهل التعرف على لوحة مونيه أكثر من رسم اللوحة. لكنها تقربنا من فهم الذكاء. إن أهميتها تقودنا إلى آلاف الأبحاث البحثية التي أعدتها GAN في السنوات الأخيرة. في تطوير الألعاب ، نقوم بتوظيف العديد من الفنانين لإنتاج الرسوم المتحركة. بعض المهام روتينية. من خلال تطبيق الأتمتة مع GAN ، قد نركز أنفسنا في يوم من الأيام على الجوانب المنشئة بدلاً من تكرار المهام الروتينية يوميًا. هذه المقالة جزء من سلسلة GAN لاستكشاف GAN بالتفصيل. في هذه المقالة ، سوف نغطي مفهوم GAN وخوارزميته.
ماذا تفعل GAN؟
ينصب التركيز الرئيسي لـ GAN (الشبكات التنافسية المتقاربة) على توليد البيانات من الصفر ، ومعظمها صور ، ولكن تم تنفيذ مجالات أخرى بما في ذلك الموسيقى. لكن نطاق التطبيق أكبر بكثير من هذا. تماما مثل المثال أدناه ، فإنه يولد حمار وحشي من الحصان. في تعلم التعزيز ، يساعد الروبوت على التعلم بشكل أسرع. على الجانب المظلم ، يمكننا تطبيق GAN لإنشاء مقاطع فيديو مزيفة من أجل المشاهير.
صورة الجانب الأيمن التي تم إنشاؤها بواسطة مصدر CycleGAN
مولد ومميز
تتكون شبكة GAN من شبكتين عميقتين هما المولد والمميّز. سننظر أولاً في كيفية قيام المولد بإنشاء صور قبل تعلم كيفية تدريبها.
أولاً ، نقوم بتجربة بعض الضوضاء ض باستخدام توزيع عادي أو موحد. باستخدام z كمدخل ، نستخدم مولد G لإنشاء صورة x (x = G (z)). نعم ، يبدو سحريًا وسنشرحها بخطوة واحدة في كل مرة.
من الناحية النظرية ، تمثل z المميزات الكامنة للصور التي تم إنشاؤها ، على سبيل المثال ، اللون والشكل. في تصنيف التعلم العميق ، لا نتحكم في الميزات التي يتعلمها النموذج. وبالمثل ، في GAN ، لا نتحكم في المعنى الدلالي لـ z. تركنا عملية التدريب لتعلمها.
لاكتشاف معنى z ، فإن الطريقة الأكثر فعالية هي رسم الصور المولَّدة وفحص أنفسنا. يتم إنشاء الصور التالية من خلال GAN التقدمية باستخدام ض الضجيج العشوائي!
يمكننا أن نغير بعدًا معينًا واحدًا بشكل تدريجي وتصور معناها الدلالي.
فما هو هذا المولد السحري G؟ ما يلي هو DCGAN التي تعد واحدة من التصميمات الأكثر شعبية لشبكة المولدات. ينفّذ العديد من التضمينات المُنتَجة لتشكيل z لتوليد الصورة x. يمكننا أن ننظر إليه على أنه مصنف التعلم العميق في الاتجاه المعاكس.
لكن المولد وحده سيخلق ضوضاء عشوائية. من الناحية المفاهيمية ، يوفر القائم بالتمييز في GAN إرشادات للمولد حول الصور التي سيتم إنشاؤها. لنفكر في تطبيق GAN ، CycleGAN ، الذي يستخدم مولدًا لتحويل مشهد حقيقي إلى لوحة بأسلوب Monet.
تبني GAN مميِّزًا لمعرفة ما تسهم به الصور الحقيقية ، وتقدم تعليقات للمولد لإنشاء لوحات تشبه لوحات Monet الحقيقية.
إذن كيف يتم ذلك من الناحية الفنية؟ ينظر المميّز إلى الصور الحقيقية (عينات التدريب) والصور المولّدة بشكل منفصل. يميز ما إذا كانت صورة الإدخال إلى التمييز حقيقية أم يتم إنشاؤها. الناتج D (X) هو احتمال أن يكون الإدخال x حقيقي ، أي P (صنف الإدخال = صورة حقيقية).
ندرب المميِّز تمامًا مثل مصنف الشبكة العميق. إذا كان الإدخال حقيقيًا ، فنحن نريد D (x) = 1. إذا تم إنشاؤه ، يجب أن يكون صفر. من خلال هذه العملية ، يحدد المميّز الميزات التي تساهم في الصور الحقيقية.
من ناحية أخرى ، نريد أن ينشئ المولد صورًا مع D (x) = 1. لذا يمكننا تدريب المولد عن طريق النسخ العكسي لهذه القيمة المستهدفة على طول الطريق مرة أخرى إلى المولد ، أي أننا نقوم بتدريب المولد على إنشاء الصور التي يعتقد المميّز أنه حقيقي.
نحن ندرب كلتا الشبكتين بخطوات متناوبة ونقحمهم في منافسة شرسة لتحسين أنفسهم. في نهاية المطاف ، يحدد المميّز الفرق الصغير بين الحقيقي والمولّد ، ويخلق المولد صورًا لا يستطيع التمييز تمييز الفرق بينها. في نهاية المطاف ، يتقارب نموذج GAN وينتج صورًا طبيعية المظهر.
يمكن تطبيق مفهوم التمييز هذا على العديد من تطبيقات التعلم العميق الموجودة أيضًا. المميّز في GAN يعمل ناقدًا. يمكننا أن نوصل التمييز إلى حلول التعلم العميقة الحالية لتقديم التغذية المرتدة لجعلها أفضل.
العكسي
الآن ، سنمر ببعض المعادلات البسيطة. يقوم المُميّز بإخراج قيمة D (x) تشير إلى احتمال أن تكون x صورة حقيقية. هدفنا هو تعظيم فرصة التعرف على الصور الحقيقية على أنها صور حقيقية ومولدة كمزيفة. بمعنى الحد الأقصى لاحتمالية البيانات المرصودة. لقياس الخسارة ، نحن نستخدم interropy كما في معظم “التعلم العميق”: p log (q). ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺼﻮرة اﻟﺤﻘﻴﻘﻴﺔ ، ﻓﺈن p (اﻟﻤﻠﺼﻖ اﻟﺤﻘﻴﻘﻲ ﻟﻠﺼﻮر اﻟﺤﻘﻴﻘﻴﺔ) ﻳﺴﺎوي 1. ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺼﻮر اﻟﺘﻲ ﺗﻢ إﻧﺸﺎؤهﺎ ، ﻧﻌﻜﺲ اﻟﻤﻠﺼﻖ (أي ﻣﻠﺼﻖ ﻧﺎﻗﺺ واﺣﺪ). وبالتالي يصبح الهدف:
على جانب المولد ، تريد وظيفة الهدف أن يقوم النموذج بإنشاء صور بأعلى قيمة ممكنة لـ D (x) لخداع المميّز.
وبمجرد تعريف كل من الدالات الموضوعية ، يتم تعلمها بشكل مشترك بواسطة أصل التدرج المتناوب. نقوم بإصلاح معلمات نموذج المولد ونقوم بتكرار واحد لتسلسل التدرج على التمييز باستخدام الصور الحقيقية والمولدة. ثم نبدل الجانبين. قم بإصلاح أداة التمييز وقم بتدريب المولد من أجل تكرار واحد آخر. نحن ندرب كلتا الشبكتين بخطوات متناوبة حتى ينتج المولد صورًا عالية الجودة. يلخص التالي تدفق البيانات والتدرجات المستخدمة في backpropagation.
يضع الكود الزائف أدناه كل شيء معًا ويوضح كيفية تدريب GAN.
مولد قلل التدرج
ومع ذلك ، فإننا نواجه مشكلة تناقص التدرج للمولد. وعادة ما يفوز المفاضل في وقت مبكر ضد المولد. من السهل دائمًا تمييز الصور الناتجة عن الصور الحقيقية في التدريب المبكر. وهذا يجعل V تقترب 0. أي – log (1 -D (G (z))) → 0. سوف يتلاشى التدرج للمولد أيضًا مما يجعل عملية تحسين انحدار التدرج بطيئة جدًا. ولتحسين ذلك ، توفر GAN وظيفة بديلة لإعادة التدرج الخلفي للتدرج إلى المولد.
مزيد من الأفكار
نعم ، هذا هو المفهوم الأساسي الذي يؤدي إلى آلاف الأبحاث. كما هو الحال دائما ، تعمل البساطة. هنا ، نحن نغطي هذا المفهوم. لكن الإمكانات أكبر بكثير مما وصفنا. لمعرفة سبب انتشاره ، دعنا نرى بعض التطبيقات المحتملة:
0 responses on "دليل فهم وانشاء شبكات GAN؟"