티스토리 뷰

딥러닝

적대적 생성 신경망(GAN)

up_one 2024. 7. 11. 13:19

적대적 생성 신경망(GAN)은 기존 Computer Vision 분야에서 이미지를 분류, Segmentation 하는 것에서 발전하여 진짜 같은 가짜 이미지를 생성하는데 활용되는 기술입니다. GAN의 궁극적인 목표는 진짜와 가짜를 분류하는 역할을 하는 판별자와 가짜를 생성하는 생성자가 서로 적대적으로 학습하면서 판별자가 더 이상 진짜와 가짜를 분류하지 못하도록 생성자의 학습 성능을 높이는 것입니다.

 

GAN의 학습 과정

 

GAN은 생성자와 판별자 2개의 Neural network로 구성되어 있습니다. 학습 과정은 판별자를 먼저 학습시킨 후 생성자를 학습시키고 다시 판별자를 학습시키는 번갈아 가는 과정을 반복합니다. 생성자 G(Generator)의 역할은 모조 이미지를 생성하는 것입니다. 랜덤 벡터(노이즈) 값을 입력으로 받은 생성자는 판별자의 피드백을 받아 더 정교한 모조 이미지를 생성하게 됩니다. 판별자 D(Discriminator)는 생성자가 생성한 모조 이미지와 실제 이미지를 분류하는 역할을 합니다. 

 

GAN의 목표는 생성자가 정교한 모조 이미지를 생성하여 판별자가 분류를 하지 못하게 만드는 것입니다. 이를 위해서,  판별자를 학습시킬 때는 생성자를 고정시킨 채 실제 이미지는 높은 확률을 반환하는 방향으로, 모조 이미지는 낮은 확률을 반환하는 방향으로 가중치를 업데이트합니다. 

 

GAN의 손실함수

 

판별자는 값이 1에 가까우면 실제 이미지로, 0에 가까우면 모조 이미지로 판별하는 역할을 합니다. 모조 이미지를 입력받았을 때 판별자가 1을 산출하도록 하기 위해서는 생성자와 판별자는 각기 다른 식을 최댓값, 최솟값으로 만드는 파라미터를 업데이트를 해야 합니다.

 

판별자가 최댓값으로 파라미터를 업데이트 하는 식

 

생성자가 최솟값으로 파라미터를 업데이트 해야하는 식

 

 

GAN은 위 두 식의 파라미터를 번갈아 가며 업데이트해야 합니다. 판별자 입장에서는 D(x) 값이 1이 되어야 실제 이미지를 진짜라고 분류하며 1-D(G(z)) 값도 1이 되어야 모조 이미지를 가짜라고 분류하는 최상의 결과가 되기 때문에 위 식을 최댓값으로 만들어야 합니다. 반대로 생성자 입장에서는 D(G(z)) 값이 1이 되어야 판별자가 모조 이미지를 1로 출력하는 최상의 결과가 되기 때문에 위 식을 최솟값으로 만들어야 합니다.

 

기본 GAN 모델은 생성자와 판별자가 서로 대결하면서 학습하는 구조이기 때문에 한쪽으로 치우친 훈련이 발생하면 정상적인 분류가 불가능합니다. 이를 해결하기 위해 랜덤 벡터 값과 조건을 추가하는 DCGAN이나 GAN의 출력에 새로운 객체를 추가하거나 문자열 태그를 추가하는 조건을 두는 cGAN으로 발전하였습니다.

'딥러닝' 카테고리의 다른 글

Seq2Seq  (0) 2025.04.16
오차역전파법(Backpropagation)  (2) 2024.07.16
RNN (Recurrent Neural Network)  (0) 2024.07.08
[3] LSTM(Long Short-Term Memory)  (0) 2024.06.27
[2] 합성곱 신경망 (CNN) PART2  (0) 2024.06.24
TAG more
글 보관함
최근에 올라온 글