GAN - 개념 이해

조영재·2021년 7월 15일
0

GAN

목록 보기
1/4

GANGenerative adversarial network 의 약자로, 우리말로 생산적 적대 신경망이라는 뜻을 갖습니다. 기존의 다른 딥러닝 모델과 달리 GAN은 각자 다른 역할을 하는 2개의 모델로 학습을 진행합니다. 아래의 그림을 통해 설명합니다.

Generator는 위조 지폐, 즉 Fake data를 만드는 일을 합니다.

DiscriminatorGenerator가 만든 위조 지폐를 확인 할 때도 있고, 진짜 지폐를 확인 할 때도 있습니다. 무엇이든 확인을 하고, "이것은 위조 지폐다." 또는 "진짜 지폐다." 처럼 판별하는 역할을 합니다.

이것이 GAN의 핵심인 두 모델이 하는 일입니다. 그러나 그냥 Generator는 위조 지폐를 만들고, Discriminator는 판별만해서는 발전 할 수 없겠죠. 그래서 두 모델은 매 순간 피드백하는 시간을 갖습니다.

이들이 피드백하며 발전하는 과정을 순서대로 나열해 보겠습니다.
아래부터는 편의 상 GeneratorG, 그리고 DiscriminatorD라고 지칭하겠습니다.

  1. D는 진짜 지폐를 보고 진짜 지폐가 어떻게 생겼는지 대충 배웠습니다.
  2. G는 아무것도 모르지만, 일단 아무거나 지폐라고 그리고 우겨봅니다.
  3. G가 만든 위조 지폐를 D가 확인하고는 가짜 또는 진짜의 판별을 합니다.
    여기서, G에게 가짜라고 했다면 진짜가 되려면 어떻게 해야하는지 방향만 알려줍니다.
    진짜라고 했다면, 진짜라고 잘하고있다고 말해줍니다.
  4. 동시에 D는 자신의 판별이 맞는지 확인합니다. 판별이 틀렸다면, 자신이 생각하는 지폐의 모양을 조금 수정합니다.
  5. GD는 각각 받은 피드백을 바탕으로 다시 위조지폐를 만들고, 판별하면서 피드백을 반복하며 그들의 능력을 키워나갑니다.
    결국, G는 진짜 지폐와 매우 흡사한 위조 지폐를 만들 능력을 갖추게 되고, D는 매우 뛰어난 판별능력을 갖게 됩니다.

위처럼 GD를 속이기 위해 성능이 오르고, DG가 만든 위조지폐를 잡기위해 성능이 오르는 상호 적대적인 관계를 보고 생성적 적대 신경망(GAN) 이라는 이름을 갖게되었습니다.

profile
Be Good Developer

0개의 댓글