이 레슨과 관련된 학습 키워드
인공지능(AI) — 기계가 생각하는 법 → 딥러닝(Deep Learning) — 인공 신경망의 세계 → 생성 모델 — 데이터를 만들어내는 AI → VAE & GAN
생성기(generator)와 판별기(discriminator) 훈련 루프를 구현하고 모드 붕괴(mode collapse)를 이해합니다.
오늘은 딥러닝에서 가장 혁신적인 아이디어 중 하나인 갠, 적대적 생성 신경망을 배워보겠습니다.
갠의 핵심 아이디어를 한마디로 말하면, 위조범과 감별사의 대결입니다.
그림 왼쪽을 보세요, 파란 상자가 제너레이터, 즉 위조범입니다.
제너레이터는 랜덤 노이즈 z에서 출발해서 가짜 데이터를 만들어냅니다.
z는 표준정규분포에서 샘플링한 벡터로, 이것이 생성의 씨앗이 됩니다.
가운데 빨간 상자를 보면, 디스크리미네이터가 있습니다.
디스크리미네이터는 입력이 진짜인지 가짜인지 판별하는 분류기 역할을 합니다.
출력값은 영과 일 사이의 확률값으로, 일에 가까우면 진짜라고 판단하는 것입니다.
오른쪽 결과 상자를 보세요, 학습 초기에는 진짜 데이터는 영점구오, 가짜는 영점일이라는 확률이 나옵니다.
즉 디스크리미네이터가 쉽게 구분할 수 있는 상태입니다.
핵심은 이 두 네트워크가 서로 경쟁하며 동시에 발전한다는 것입니다.
아래 보라색 타임라인을 보시면 학습이 진행됨에 따라 제너레이터의 품질이 어떻게 변하는지 보입니다.
에폭 일에서는 노이즈 수준이지만, 에폭 이백이 되면 고품질 생성물이 됩니다.
하단의 파란 수식 상자를 보세요, 이것이 갠의 미니맥스 목적 함수입니다.
제너레이터는 이 값을 최소화하고, 디스크리미네이터는 최대화합니다.
이 경쟁이 바로 적대적 학습의 본질입니다.
수렴하면 디스크리미네이터의 출력이 영점오에 가까워집니다.
이는 진짜와 가짜를 전혀 구분하지 못한다는 뜻입니다.
이안 굿펠로가 이천십사년에 이 아이디어를 제안했고, 딥러닝 역사를 바꿨습니다.
자 이제 각 구성 요소를 자세히 살펴보겠습니다.
선생님: 갠에서 제너레이터와 디스크리미네이터는 왜 동시에 학습해야 할까요?
학생: 하나만 먼저 완벽하게 학습시키면 안 되나요?
선생님: 좋은 질문이에요. 디스크리미네이터만 먼저 완벽하게 학습시키면 어떤 일이 벌어질까요?
학생: 모든 가짜를 완벽히 구분하니까 제너레이터에게 유용한 그래디언트가 안 가겠네요.
선생님: 맞아요, 그래디언트가 거의 영이 되어서 제너레이터가 학습할 수 없게 됩니다.
선생님: 반대로 제너레이터만 먼저 학습시키면 기준이 없으니 의미 없는 노이즈만 만들게 되죠.
학생: 그래서 번갈아 학습해야 균형이 맞는 거군요.