Самая интересная идея за последние 10 лет в области машинного обучения - Ян Лекун

Прежде чем углубляться в подробности, давайте кратко рассмотрим работу GAN.

Генеративные состязательные сети - это архитектуры глубоких нейронных сетей, состоящие из двух нейронных сетей, конкурирующих друг с другом, отсюда и название «состязательная». Сети могут быть CNN, DNN или простыми ванильными сетями. Нейронные сети обучаются состязательной манере генерировать данные для имитации некоторого распределения.

Модели машинного обучения, используемые в GAN

#) Дискриминационная модель: Эта модель различает два разных класса данных. Его можно рассматривать как двоичный классификатор, например, электронное письмо является спамом или не спамом, лицо - ПОДДЕЛЬНО или НЕ.

#) Генеративная модель: Генеративная модель G для обучения на обучающих данных x, взятых из некоторого истинного распределения. D дает некоторое стандартное случайное распределение. Z дает распределение D ', которое близко к D согласно некоторой метрике близости. . Здесь z ~ Z сопоставляется с образцом G (z) ~ D ’, где D’≈D.

Проще говоря, эта модель «генерирует» данные, которые кажутся похожими на исходные.

Теперь давайте рассмотрим архитектуру GAN!

Здесь у нас есть две модели, дискриминационная и генеративная, роль Дискриминатора состоит в том, чтобы различать два разных класса как поддельные или ненастоящие, то есть 0 или 1. Он различает данные из реальных (1) или из поддельных образцов ( 0), который был «сгенерирован» Генератором. Генератор берет распределение z из скрытого пространства (Z) и генерирует D ', которое должно быть похоже на распределение D (Реальные образцы), чтобы можно было обмануть Дискриминатор.

Если решение Дискриминатора неверно, веса и смещения обеих моделей, Дискриминатора и Генератора, корректируются в Обратном распространении (обучение точной настройки). Роль G состоит в том, чтобы преобразовать z в G (z) таким образом, чтобы Дискриминатор не мог различить G (z) и выборки (x ) из реальных образцов (D) и выводит значение 0,5.

Обучение (обратное распространение) в GAN!

Обучение осуществляется путем изменения (w, b) моделей D и G посредством обратного распространения ошибки.

Важно помнить, что каждый из них остается постоянным во время тренировки другого.

Обучение дискриминатора. Дискриминатор имеет 2 выходных узла, 0 и 1, для различения искусственных экземпляров (сгенерированных генератором) от реальных экземпляров (экземпляров из известных наборов данных). Мы подаем случайный вектор шума в Генератор, который затем генерирует поддельные изображения, и они передаются в Дискриминатор вместе с реальными изображениями, чтобы различать их как поддельные или настоящие. Это простая классификация в CNN с двумя выходными узлами.

Обучение генератора: во время обучения генератора дискриминатор остается фиксированным, то есть веса и смещения дискриминатора не меняются. Шум - это z из распределения Z, и мы стремимся преобразовать его в поддельное изображение G (z), похожее на реальное изображение ( х). Мы намерены обмануть дискриминатор так, чтобы он выводил y = 1 (y = 1 для реальных изображений) для сгенерированных данных (y = 0). Если этого не происходит, функция потерь вычисляется и распространяется в обратном направлении, поэтому веса и смещения корректируются соответствующим образом. Функция потерь уменьшается с дальнейшими итерациями. Если Генератор достиг своей цели, Дискриминатор выдаст 0,5 (он будет сбит с толку, является ли это поддельным или реальным изображением, то есть это y = 0 или y = 1), поэтому GAN достиг цели, то есть D ' ≈D, это сходство измеряется нормой L1 или L2.

Математический вывод функции потерь GAN с нуля!

Основные условные обозначения-

Когда G (z) подается в Дискриминатор, на выходе получается D (G (z)) ∈ [0,1].

Выделенные очень важны, запомните их !!

Мы знаем, что такое бинарная кросс-энтропия!

Дискриминатор:

(уравнение A) и (уравнение B) должны быть максимизированы, чтобы Дискриминатор правильно классифицировал поддельные и реальные наборы данных.

Итак, если вы максимизируете [log (D (x))], это заставит D (x) равняться 1. А если вы максимизируете

[log (1-D (G (x)))], это заставит D (G (z)) равняться 0.

Таким образом, термин максимизации для Дискриминатора -

Интуитивно мы можем заметить, что D (x) максимально на 1, и мы хотим, чтобы дискриминатор выдал 1 для D (x). Точно так же D (G (z)) имеет максимум в 0, и это то, что мы хотим, чтобы дискриминатор выдал для D (G (z)).

Генератор:

Генератор нацелен на то, чтобы Дискриминатор создавал [D (G (z)) = 1], то есть Генератор сможет обмануть Дискриминатор как поддельное изображение, как и настоящее!

Мы знаем, что для Генератора y = 0 и y ^ = D (G (z))

Когда мы помещаем эти два члена в уравнение бинарной кросс-энтропии, мы получаем,

Мы хотим, чтобы D (G (z)) было равно 1 во втором члене (ур. C), если мы минимизируем [log (1-D (G (z)) )], мы заставляем D (G (z)) приближаться к 1, что является нашей целью, т.е. D (G (z)) = 1, чтобы ввести в заблуждение дискриминатор, создав выборки, очень близкие к исходному набору данных.

Таким образом, это целевая функция: {log (D (x)) + log (1-D (G (x)))}

Для которых основная цель Дискриминатора - его максимизация, а Генератора - его минимизация.

Итак, если мы запишем оба этих уравнения вместе, мы запишем его как:

Когда рассматривается G, будет учитываться только второй член, а для D будут учитываться оба члена.

Приведенное выше уравнение получено только для одного экземпляра x, который принадлежит X, поэтому теперь давайте напишем уравнение для всех экземпляров, исходное уравнение, данное Яном Гудфеллоу.

Заключение:

Итак, в этом блоге мы обсудили:

  • GAN и модели машинного обучения, которые они используют.
  • Интуитивно понятная работа GAN.
  • Вывод функции потерь для GAN с нуля.

Цель этой статьи - дать общее представление о разработке генеративных состязательных сетей. Надеюсь, это помогло вам лучше понять GAN и ее функцию потерь. Спасибо за прочтение!