أنها علمتك كيف لتوليد GAN شبكة المواجهة، 50 خطوط من نماذج كود المرح GAN (مع شفرة المصدر)

المصدر: منظمة العفو الدولية Youdao

هذه المقالة حول 2820 كلمة، القراءة الموصى بها 12 دقيقة.

هذا المقال هو لتقديم جيل ضد شبكة (توليد الخصومة الشبكة، GAN)، في اللغة الأكثر مباشرة لتفسير ذلك، GAN تنفيذ أخيرا برنامج بسيط لمساعدة الناس تعميق فهمهم.

ما هو GAN؟

حسنا، GAN قوية جدا حيث أنه في نهاية الأمر هو نموذج من أي نوع من هيكل ذلك؟ قبل علمنا تعلم الآلة أو نموذج الشبكة العصبية والقيام أساسا أمرين: توقعات و تصنيف هذا هو ما نحن معروفون. هل من الممكن لجعل نموذج آلة لتوليد صورة، صوت تلقائيا؟ ولكن أيضا للحصول على صورة والصوت معينة عن طريق ضبط مختلف ناقلات نموذج الإدخال. على سبيل المثال، يمكنك ضبط معلمات الإدخال للحصول على وجهه أحمر الشعر، أزرق العينين، يمكنك ضبط معلمات الإدخال للحصول على مقاطع صوت الإناث، وهلم جرا. وبعبارة أخرى، يمكن لمثل هذه الأجهزة على نموذج الطلب تولد تلقائيا ما نريد. لذلك، جاء GAN الى حيز الوجود!

وGAN، أي ولدت ضد شبكة تتألف من وحدتين رئيسيتين:

  • مولد (المولدة النموذجي)
  • الممي (التمييزية النموذجي)

اللعبة بعضها البعض لتوليد نموذج والتعلم نموذج التمايز تنتج الانتاج جيد جدا. مع الصور، على سبيل المثال، فإن المهمة الرئيسية لمجموعة المولدات هي لمعرفة الصورة الحقيقية، حتى أن الصور المولدة ذاتيا أقرب إلى الصورة الحقيقية ل"خداع" الممي. المهمة الرئيسية هي العثور على الممي لدت صورة ولدت مولد، تمييز الصورة المختلفة لتحديد الحقيقي، والحق والباطل. في جميع مراحل عملية تكرارية، ومولد يولد جهودا مستمرة لجعل الصورة أكثر وأكثر مثل الحقيقي، في حين الممي جهود متواصلة لتحديد الصور حقيقية وهمية. هذا هو مماثل لعبة بين المولد والممي، مع التكرار المتكررة، وهما وصلت أخيرا إلى التوازن: مولد يولد صورة قريبة جدا من الصورة الحقيقية، في حين كان الممي الصعب تحديد صورة مختلفة من الصواب والخطأ. أدائها هو صورة حقيقية وكاذبة لإخراج احتمال الممي هي قريبة إلى 0.5.

مفهوم GAN لا يزال غير واضح قليلا؟ لا يهم، وإعطاء مثال حي لتوضيح.

في الآونة الأخيرة، كنت أرغب في دراسة اللوحة، لأن الفاتيكان لرؤية اللوحات الماجستير، ولكن نريد أيضا أن توجه أعمال مماثلة. لوحات الفاتيكان مثل هذا:

وقال الرسم على اللوحة، وأنا حصلت على أستاذ باحث روائع انغ الفاتيكان لسنوات عديدة لتوجيه لي. البروفيسور وانغ من ذوي الخبرة، والرؤية الحادة، لوحات رئيسية الفاتيكان تحاكي السوق قادرة على الهروب من الأشياء. وقال البروفيسور وانغ كلمة لي: متى كنت ترسم هذه الصورة يمكن أن تخدع لي، حتى لو كنت ناجحا.

أنا متحمس جدا، وقال انه توجه الى البروفيسور وانغ رسمت هذه الصورة:

البروفيسور وانغ اكتساح بلطف، وجهه يرتجف خطوط سوداء والغاز و"0! وهذا ما يسمى أيضا هذه اللوحة؟ فرق كبير جدا!" وبعد الاستماع إلى كلمات البروفيسور وانغ، بدأت التأمل الذاتي، لا انتم اللوحة الأرض، وحتى العينين والأنف على الإطلاق. لذلك، وضعت مرة أخرى:

البروفيسور وانغ نظرة، أقل من 2 ثانية، ثم انخفض كلمتين: دقيقة واحدة! إعادة رسم! أعتقد، أم لا، سيئة رسمت، يمكنك العودة ودراسة الماجستير الفاتيكان من نمط اللوحة، والتحسين المستمر، وإعادة الخلق، حتى يوم واحد، وأخذت نظرة جديدة على لوحات لالبروفيسور وانغ:

البروفيسور وانغ ننظر إلى أصدقائه، قليلا مثل قوله. لدي نظرة فاحصة. وأخيرا، لا يزال قال لي: لا، لا، التفاصيل سيئة للغاية! مواصلة إعادة رسم عليه. حسنا، البروفيسور وانغ صارمة على نحو متزايد! تنهدت وعاد إلى الدراسة، وأخيرا النفس راض جدا مع لوحة نظرا لارتفاع البروفيسور وانغ:

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

حسنا، أمثلة على الانتهاء (بالنسبة لي لقبول أن جميع Tucao الرسم موهبة). هذا المثال، هو في الواقع عملية تدريب GAN. أنا المولد، والغرض من ذلك هو أن تكون قادرة على انتاج أحمق الصورة البروفيسور وانغ، البروفيسور وانغ جعل الحقيقي للعدو! البروفيسور وانغ هو الممي، والغرض من ذلك هو تحديد لوحاتي، الحكم كما كاذبة! العملية برمتها هي "جيل - ضد" عملية اللعبة، وفي نهاية المطاف، I (مولد) إخراج اللوحات "خادعة"، وحتى البروفيسور وانغ (الحكم) من الصعب التمييز بينهما.

هذا هو GAN، وأنا أفهم ذلك.

الهيكل الأساسي للGAN نموذج

قبل نموذج GAN التفاهم، دعونا نلقي نظرة على يان ليكون وجهات النظر الشخصية حول مستقبل نقطة التعلم التكنولوجيا اختراق عميقة:

أكثر واحد مهم، في رأيي، هو التدريب الخصومة (وتسمى أيضا GAN لشبكات الخصومة المولدة) وهذا هو الفكرة التي اقترحها في الأصل إيان غودفلوو عندما كان طالبا مع يوشوا بيجيو في جامعة مونتريال (انه منذ انتقلت إلى Google الدماغ ومؤخرا OpenAI).

هذا، والتغيرات التي يجري المقترح الآن هو الأكثر فكرة مثيرة للاهتمام في السنوات ال 10 الماضية في ML، في رأيي.

يان ليكون التفكير من المرجح GAN لتحقيق انطلاقة جديدة سيعطي نموذج التعلم عمق، فمن 20 عاما في آلة التعلم أروع الفكرة. في السنوات الأخيرة زخما GAN قوي جدا. هي الصورة أدناه جميع الأوراق التي قدمت في السنوات الأخيرة اجتماع ICASSP تضمنت الكلمة "التوليدي"، وعدد من "عدائية" و "التعزيز" للإحصاءات الورق.

وتشير البيانات إلى أنه في عام 2018، وعدد من الأوراق التي تحتوي على كلمات "توليدي" و "الخصومة" تحدث طفرة في النمو. كما هو متوقع، فإن السنوات القليلة القادمة ستكون أكثر رقة على GAN.

بجانب شرح الهيكل الأساسي للGAN، ونحن نعلم بالفعل تكوين GAN والممي توليد، مع G منها وD. لتوليد صورة تطبيق سبيل المثال، هو مبين أدناه هيكل نموذج:

GAN النموذج الأساسي من إدخال ناقلات، شبكة G، D الشبكات. وتتكون فيه، G و D عموما من الشبكة العصبية. الناتج G هو الصورة، ولكن النموذج مرتبطة ارتباطا كاملا. G D الناتج المدخلات، ويضم مدخل D مزيد من مجموعة عينة حقيقية. وهكذا، D الناتج الحقيقي عينة يسجل أعلى ممكن، العينات الناتجة من عدد G النواتج المحتملة على درجة منخفضة. كل حلقة تكرار، ما زالت شبكات G لمعلمات الشبكة الأمثل، وD لا يمكن التمييز بين الصواب والخطأ؛ وشبكات وD على الدوام المعلمات الشبكة الأمثل لتحسين الاعتراف، والعينات الحقيقية والزائفة لها ترك فجوة النتيجة.

في نهاية المطاف، وبعد عدة تكرارات التدريب، GAN نموذج:

GAN النموذج النهائي، إنشاء نموذج G حقيقية، نتيجة الانتاج D بالقرب من 0.5، وهو ما يعني أن العينة من الصعب التمييز بين الصواب والخطأ، والتدريب بنجاح.

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

قوة GAN هي أيضا في ذلك، عن طريق تعديل المدخلات المتجهات، يمكن أن تولد صورا لها خصائص مختلفة. هذه الصور التي تم إنشاؤها ليست مجموعة عينة حقيقية في هناك، ولكن هذا لا ينظر في الصورة ولكن معقولة. ليس ذلك مثيرا للاهتمام؟ ويعكس الصورة أدناه ناقلات مختلفة لتوليد صورة مختلفة.

بعد نموذج GAN النهائي، دعونا نلقي نظرة على مبدأ بسيط من الخوارزمية GAN. وبما أن هناك وحدتين: G و D، كل وحدة لديها معلمات الشبكة المقابلة.

أول اطلالة له على وحدة D، الهدف منه هو جعل عينة حقيقية يسجل اكبر كلما كان ذلك أفضل، والسماح G لدت عينة درجة صغيرة بقدر الإمكان. يمكنك الحصول D فقدان الوظيفة هي:

حيث، x هو عينة حقيقية، يتم إنشاء G (ض) G العينة. نأمل أن D (خ) كبيرة بقدر الإمكان، D (G (ض)) صغيرة بقدر الإمكان، والذي هو -D مرغوب فيه (خ) صغيرة بقدر الإمكان، -log (1-D (G (ض))) أصغر كلما كان ذلك أفضل. من وجهة نظر وظيفة الخسارة، ويمكن الحصول على الصيغة.

وحدة نظرة G، وهو الهدف المنشود من توليد نموذج أعلى أفضل يمكن الحصول عليها في النتيجة D. وبالتالي فإن فقدان وظيفة G ويمكن الحصول على النحو التالي:

أنت تعرف بعد فقدان وظيفة، ثم يمكنك استخدام مجموعة متنوعة من خوارزميات الأمثل لتدريب النموذج.

يد جان لكتابة نموذج

بعد ذلك، سوف تستخدم PyTorch تنفيذ نموذج بسيط من GAN. لا تزال اللوحة على سبيل المثال، لنفترض أننا نريد أن إنشاء باسم "اللوحات" (شرط الرسم سبيل المثال):

ولدت "الفن على" مدونة على النحو التالي:

مواطنه artist_works (): # اللوحة من الفنان الشهير (الهدف الحقيقي)

 ص = 0.02 * np.random.randn (1، ART_COMPONENTS)

 لوحات = np.sin (PAINT_POINTS * np.pi) + ص

 لوحات = torch.from_numpy (لوحات) .float ()

 لوحات عودة

نموذج الشبكة ثم، يتم تعريف شبكة G و D:

G = nn.Sequential (# مولد

 nn.Linear (N_IDEAS، 128)، # أفكار عشوائية (يمكن من التوزيع الطبيعي)

 nn.ReLU ()

 nn.Linear (128، ART_COMPONENTS)، # صنع لوحة من هذه الأفكار العشوائية

)

D = nn.Sequential (# الممي

 nn.Linear (ART_COMPONENTS، 128)، # تلقي العمل الفني سواء من الفنان الشهير أو مبتدئ مثل G

 nn.ReLU ()

 nn.Linear (128، 1)،

 nn.Sigmoid ()، # اقول احتمال أن العمل الفني هو الذي أدلى به الفنان

)

أنشأنا آدم تحسين خوارزمية:

opt_D = torch.optim.Adam (D.parameters ()، LR = LR_D)

opt_G = torch.optim.Adam (G.parameters ()، LR = LR_G)

وأخيرا، بناء GAN عملية التدريب متكررة:

plt.ion () # شيئا عن التآمر المستمر

D_loss_history =

G_loss_history =

لخطوة في النطاق (10000):

 artist_paintings = artist_works () # اللوحة الحقيقية من الفنان

 G_ideas = torch.randn (BATCH_SIZE، N_IDEAS) # أفكار عشوائية

 G_paintings = G (G_ideas) # وهمية اللوحة من G (أفكار عشوائية)

 prob_artist0 = D (artist_paintings) # D محاولة لزيادة هذا غالبا

 prob_artist1 = D (G_paintings) # D محاولة للحد من هذه مشكله

 D_loss = - torch.mean (torch.log (prob_artist0) + torch.log (1 - Prob_artist1))

 G_loss = torch.mean (torch.log (1 - Prob_artist1))

 D_loss_history.append (D_loss)

 G_loss_history.append (G_loss)

 opt_D.zero_grad ()

 D_loss.backward (retain_graph = صحيح) # إعادة استخدام الرسم البياني الحسابية

 opt_D.step ()

 opt_G.zero_grad ()

 G_loss.backward ()

 opt_G.step ()

 إذا الخطوة 50 == 0: # التآمر

 plt.cla ()

 plt.plot (PAINT_POINTS ، G_paintings.data.numpy () ، ج = '# 4AD631 "، و ش = 3، والتسمية =' ولدت اللوحة '،)

 plt.plot (PAINT_POINTS ، np.sin (PAINT_POINTS * np.pi)، ج = '# 74BCFF "، و ش = 3، والتسمية =' المنحنى القياسي ')

 plt.text (-1، 0.75، 'D دقة = 2F (0.5 لD للتجمع).' prob_artist0.data.numpy () متوسط ()، fontdict = { 'حجم': 8}).

 plt.text (-1، 0.5، 'D يسجل = .2f (-1.38 عن G للتجمع)' -D_loss.data.numpy ()، fontdict = { 'حجم': 8})

 plt.ylim ((- 1، 1))؛ plt.legend (الموضع = "أسفل اليمين، حجم الخط = 10)؛ plt.draw ()؛ plt.pause (0.01)

plt.ioff ()

plt.show ()

لقد استخدمت ديناميكية وضع الرسم سهلة لمراقبة دائما الوضع تدريب نموذج GAN.

عدد التكرارات هو 1:

عدد التكرارات هو 200:

عدد التكرارات من 1000:

عدد التكرارات إلى 10000:

الكمال! بعد تكرار 10،000 من التدريب، ومنحنى الناتج هو بالفعل قريبة جدا من منحنى القياسية. يسجل D هو أيضا قريب من 0.5 كما هو متوقع.

رمز إكمال ديه .py و.ipynb نسختين، بحث الويب الروابط أدناه يمكنك الحصول عليها.

https://github.com/RedstoneWill/MachineLearningInAction/tree/master/GAN

منذ 4 سنوات أكمل مهنة مزدوجة الماضي الصليب الأحمر، لكنه لعب فقط 38 ثانية!

العثور السنوي: هيدريد معدن! وأخيرا الانتهاء من نظرية القرن تحولت إلى رائع الحقيقي!

نافورة | قبل قدم واحدة من السنة الجديدة، وجينان، القديم يقول "لا تقلق" شيء واحد لا ننسى

ألمانيا: معرض تتطلع لاقتراض أكثر في السوق الصينية

ثقيلة هينتون ، ليكون ، مراجعة التعلم العميق في بينيو

التأهيل الأوروبي مفاجأة عظمى! خفض من الوطنية لكرة القدم 45 منهم، 10 دقائق انقلبت الفرق الأوروبية

يو نرى | "مهرجان الربيع" في الصين، في الواقع، أكثر من مائة في السنة القادمة

الجاف | نموذج تصنيف النظرية الافتراضية على أساس التعلم الآلي وسوف تواجه "حفرة"

لفتة تحكم والترجمة في الوقت الحقيقي، يمكن الكشف عن البيانات الفسيولوجية ...... سماعة الرأس 3000 شرائه؟

زيدان رؤية شريرة! ريال مدريد عام الآن الاخطاء عظمى، أي عملية في الدماغ في منطقة الجزاء ليرسل الخصم البوذية

"مزدوجة عشر" معا بعد أخذ الطلاب تسليم

كيف لقيادة المعارك فريق الجامعة؟ منظمة العفو الدولية لمساعدتك على اتخاذ القرارات (موارد المرفق)