81
правка
Изменения
→TextKD-GAN
=== TextKD-GAN ===
Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. neuro-linguistic programming, NLP), таких как [https://en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) | Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение | компьютерном зрении]], и в последнее время GANs также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье<ref>[https://arxiv.org/pdf/1905.01976.pdf {{---}} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks]</ref> вводится метод, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как [[Автокодировщик | автоэнкодеры]] (англ. autoencoders, AEs) могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному слову.
TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знаний: метод, переносящий знания смягченного вывода модели преподавателя в модель студента. Решение основано на AE (учителе), чтобы получить гладкое представление реального текста. Это гладкое представление подается в дискриминатор TextKD-GAN вместо обычного однократного представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления AE. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе GAN, который не нуждается в предварительной подготовке.
[[Файл:TextKD-GAN_Model.png|thumb|right|x400px|Модель TextKD-GAN для генерации текста.]]
В общепринятом текстовом подходе к дискриминации реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] & [https://en.wikipedia.org/wiki/Softmax_function softmax]), и он может обыкновенно отличить их друг от друга. Один из способов избежать этой проблемы состоит в том, чтобы получить непрерывное гладкое представление слов, а не их one-hot представление, и обучить дискриминатор различать непрерывные представления. Здесь используется общепринятый автоэнкодер (учитель), чтобы заменить one-hot представление softmax-реконструированным выходом, который является гладким представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке справа. Как видно, вместо one-hot представления реальных слов смягченный реконструированный выход автоэнкодера подается на вход дискриминатору. Эта техника значительно усложняет различение для самого дискриминатора. Генератор GAN (студент) с softmax выходом пытается имитировать распределение выходного сигнала автоэнкодера вместо общепринятого one-hot представления.
Обучение модели происходит следующим образом: мы обучаем AE и TextKD-GAN одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:
# реконструирующий член для автоэнкодера: <tex>\min\limits_{(\varphi, \psi)} L_{AE}(\varphi, \psi) = \min\limits_{(\varphi, \psi)} \| x - \mathrm{softmax}(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x))) \| ^ 2</tex>
# функция потерь для дискриминатора с градиентным штрафом: <tex>\min\limits_{w \in W} L_{discriminator}(w) = \min\limits_{w \in W} -E_{x \sim P_x} [f_w(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x)))] + E_{z \sim P_z} [f_w(G(z))] + \lambda_2 E_{\hat{x} \sim P_{\hat{x}}} [(\| \nabla_{\hat{x}} f_w(\hat{x}) \| _2 - 1)^2]</tex>
# состязательная стоимость генератора: <tex>\min\limits_\theta L_{Gen}(\theta) = -\min\limits_\theta E_{z \sim P_z} [f_w(G(z))]</tex>
Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок <tex>\hat{x} \sim P_{\hat{x}}</tex>.
[[Файл:TextKD-GAN&Co.png|thumb|center|x600px|Дивергенция Дженсена-Шеннона (англ. Jensen-Shannon divergence, JSD) между сгенерированным и обучающимся предложениями (n-граммами) полученных из эксперимента SNLI (Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка).]]
=== MCA-GAN ===
=== LeicaGAN ===