GAN, a forger against a detective


Real data
Train
The two players are both small neural networks. Each hidden layer has 32 neurons; 8 are drawn. The network that is learning lights up.
real dots   fake dots from the forger   background: what the detective thinks — “real” “can't tell” “fake”
The detective's average “real” score for real dots and fake dots, after every training step. The dashed line is 0.5: “can't tell.”

الفكرة كلّها.
الـ GAN (Generative Adversarial Network) شبكتان تلعبان لعبة. المزوِّر (الـ generator) يأخذ رقمين عشوائيّين ويحوّلهما إلى نقطة. والمحقِّق (الـ discriminator) ينظر إلى نقطة ويعطيها score من 0 إلى 1: مدى ثقته بأنّ النقطة حقيقيّة.

يتناوبان. يتعلّم المحقِّق أن يعطي النقاط الحقيقيّة score عاليًا والنقاط المزيّفة score منخفضًا. ثمّ يتعلّم المزوِّر أن ينقل نقاطه إلى حيث يقول المحقِّق «حقيقيّة». المزوِّر لا يرى نقطة حقيقيّة أبدًا. كلّ ما يحصل عليه هو رأي المحقِّق.

حين تنجح اللعبة، تستقرّ النقاط المزيّفة على الشكل الحقيقيّ، ويعطي المحقِّق كلّ شيء نحو 0.5، وتصير الخلفيّة بيضاء تقريبًا: لم يعد يستطيع التمييز بين الحقيقيّ والمزيّف.

الـ GAN الذي يصنع الصور يلعب اللعبة نفسها. كلّ «نقطة» صورة كاملة، والمزوِّر يحوّل أرقامًا عشوائيّة إلى صورة، والمحقِّق ينظر إلى صور.

أمور تستحقّ التجربة:
1. Ring، ثمّ Run both. في 20 تشغيلًا، كان 85% على الأقلّ من النقاط المزيّفة على الحلقة بعد 1,750 جولة في 19 منها — نحو 10 ثوانٍ هنا.

2. Start over، ثمّ Detective ×10 خمس مرّات، دون المزوِّر. يتعلّم المحقِّق التمييز بينها: في 20 تشغيلًا أعطى النقاط الحقيقيّة 0.60 والمزيّفة 0.36 في المتوسّط. الآن اضغط Forger ×10 مرّة واحدة: تقفز المزيّفة إلى 0.55. خداع محقِّق توقّف عن التعلّم سهل.

3. Start over، ثمّ Forger ×10 عشر مرّات، دون المحقِّق. يطارد المزوِّر محقِّقًا لا يتعلّم أبدًا. يرتفع score «حقيقيّة» لنقاطه (0.85 في المتوسّط)، لكنّ 3% فقط من نقاطه تقع على الحلقة، وفي 16 من 20 تشغيلًا طار أكثر من نصفها خارج الصورة. المزوِّر جيّد بقدر محقِّقه فقط.

4. Eight blobs، ثمّ Run both مرّتين (4,000 جولة). في 20 تشغيلًا من 4,000 جولة، وجد 16 منها الـ blobs الثمانية كلّها، وظلّ 4 يفوّت واحدًا. هذه حالة صغيرة من الـ mode collapse: المزوِّر يصنع بعض أنواع البيانات الحقيقيّة فقط ويتجاهل الباقي. في GAN للوجوه يبدو ذلك مزوِّرًا يرسم أنواعًا قليلة فقط من الوجوه.