Як використовувати GAN для непідконтрольного вилучення функцій із зображень?


11

Я зрозумів, як працює GAN, поки дві мережі (генеративні та дискримінаційні) конкурують між собою. Я створив DCGAN (GAN з згортаючим дискримінатором та деконволюційним генератором), який зараз успішно генерує рукописні цифри, подібні до даних у наборі даних MNIST.

Я багато читав про програми GAN для отримання функцій із зображень. Як можна використовувати мою підготовлену модель GAN (на наборі даних MNIST) для отримання функції з зображень MNIST, написаних рукописними цифровиками?


Для вилучення функцій я отримую розмір функції 128 * 120 (тобто 64 + 32 + 16 + 8) = 15360. Я впевнений, що мені щось не вистачає. У мене є ще одне питання щодо вибору функцій вектора. Чи слід враховувати (conv2d + batchnorm + активація) ваги або лише conv2d ваги під час вилучення функції?
гребля

Відповіді:


5

Зазвичай для вилучення функцій ви можете використовувати верхній шар мережі перед виходом. Інтуїція полягає в тому, що ці функції є лінійно відокремленими, оскільки верхній шар є лише логістичною регресією.

Для GAN можна використовувати функції дискримінатора. Ці функції, як передбачається, дають ймовірність, якщо вхід надходить із навчального набору даних, "реальних зображень". У статті DCGAN Radford вони використовують усі звивисті шари дискримінатора та виконують функції вилучення максимуму для об'єднання шару для CIFAR-10.

Щоб оцінити якість представлених даних DCGAN для контрольованих завдань, ми тренуємося на Imagenet-1k, а потім використовуємо згорткові особливості дискримінатора з усіх шарів, максуючи представлення кожного шару для створення просторової сітки 4 × 4. Потім ці функції сплющуються і з'єднуються, утворюючи розмірний вектор 28672, а поверх них тренується регульований лінійний класифікатор L2-SVM.


1

Відповідь Кенні правильна - якщо ви використовуєте згортковий D , виведення шарів перед щільними може служити функціями. Моя інтуїція полягає в тому, що вона буде працювати краще для AC-GAN (або подібних архітектур, які роблять D класифікацією даних на додаток до визначення того, підроблений він чи справжній).

Існує підхід під назвою BiGAN, який додає компонент Encoder, здатний відображати згенеровані та тренувальні зразки в латентному розподілі z, який використовується для "ініціалізації" генератора. Автори показують, що його можна ефективно використовувати як набір функцій для передачі навчальних та інших завдань.


0

Оскільки GAN складається з двох частин - генератора та дискримінатора, існує два способи використання GAN як екстрактора функцій:

  1. Генераторний спосіб, представлений Михайлом Юрасовим.
  2. Спосіб, заснований на дискримінації, представлений Кенні.

Другий спосіб більш суперечливий. Деякі дослідження [1] вважають, що інтуїтивно, оскільки метою дискримінатора є відмежування згенерованих зразків від реальних зразків, воно просто зосередиться на різниці між цими двома видами зразків. Але те, що має сенс, полягає в різниці між реальними вибірками, що є зразками, які використовуються у подальших завданнях.

Я спробував це вивчити, і виявив, що витягнуту функцію можна розділити на два ортогональних підпростори. Перший простір сприяє вирішенню завдання, а другий - від нього. Оскільки в більшості випадків функції, що використовуються для відмежування реальних зразків від створених, є шумом, другий простір функцій буде безшумним. З цієї точки зору, хоча завдання дискримінатора не будуть зосереджуватися на різниці між реальними вибірками, корисними для подальших завдань, функції без шуму, що містяться у другому підпросторі, працюватимуть.

[1] Джост Тобіас Спрінгенберг. Непідконтрольне та напівконтрольне навчання за допомогою категоричних генеративних змагальних мереж. arXiv: 1511.06390 [cs, stat], квітень 2016. arXiv препринт. arXiv: 1511.06390 [stat.ML]. Ітака, Нью-Йорк: Бібліотека університету Корнелла.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.