생성형 AI 기본

GANGenerative Adversarial Network

만드는 쪽과 가려내는 쪽이 겨루며 배우는 방식

핵심 정리
  • GAN (Generative Adversarial Network, 적대적 생성 신경망)은 만드는 쪽과 가려내는 쪽을 나란히 두고 겨루게 하는 방식이에요.
  • 만드는 쪽의 성적표는 가려내는 쪽이 속았는지 여부예요. 사람이 정답을 붙여 줄 필요가 없어요.
  • 둘은 번갈아 좋아져요. 한쪽이 나아지면 상대의 문제도 그만큼 어려워져요.
  • 힘이 한쪽으로 크게 기울면 배움이 멈춰요. 균형을 지키는 일이 이 방식의 최대 난제예요.
  • 다 배우고 나면 가려내는 쪽은 내려놓고 만드는 쪽만 꺼내 써요.
목차

1비유로 이해하기

붕어빵 노점 뒤편에 기계 두 대가 놓여 있어요. 한 대는 붕어빵 틀을 새로 깎고, 다른 한 대는 구워져 나온 붕어빵을 보고 오래 써 온 정품 틀에서 나온 것인지 방금 깎은 새 틀에서 나온 것인지 가려내요.

처음에는 가려내기가 너무 쉬워요. 새 틀은 지느러미 자리가 뭉툭해서 한눈에 표가 나요. 깎는 기계는 지적당한 부분을 고쳐 다시 깎고, 가려내는 기계는 더 미세한 곳을 보기 시작해요. 꼬리 끝 두께, 테두리의 눌린 자국까지요.

이 주고받기를 수없이 반복하면 가려내는 기계가 반반으로 헷갈리는 지점에 이르러요. 그때 깎인 틀은 정품과 구별하기 어려운 물건이 돼요.

2자세히 알아보기

두 기계가 번갈아 겨뤄요

한쪽은 아무 뜻 없는 숫자 뭉치를 받아 결과물을 만들어요. 매번 다른 숫자가 들어오니 매번 다른 결과가 나와요. 다른 쪽은 진짜 자료와 만들어진 결과물을 섞어서 받고 어느 쪽인지 판정해요.

학습은 두 쪽을 번갈아 진행해요. 먼저 가려내는 쪽에 진짜와 가짜를 보여 주며 잘 구별하도록 손봐요. 그다음 만드는 쪽을 손보는데, 이때는 가려내는 쪽을 속이는 방향으로 고쳐요. 한 번씩 주고받고 나면 두 쪽 모두 조금씩 나아져 있어요.

겨루기가 계속되는 이유는 문제가 자동으로 어려워지기 때문이에요. 만드는 쪽이 좋아지면 가려내는 쪽의 판정이 힘들어지고, 가려내는 쪽이 예리해지면 만드는 쪽이 통과하기 어려워져요. 상대가 곧 다음 단계의 시험 문제가 돼요.

점수표는 상대의 실수에서 나와요

이 방식이 눈길을 끈 이유는 정답을 사람이 붙여 주지 않아도 된다는 점이에요. 그림을 만드는 일에는 원래 채점표가 없어요. 잘 그렸는지 숫자로 매길 방법이 마땅치 않죠. GAN은 그 채점을 다른 기계에게 맡겨 버려요.

가려내는 쪽이 "이건 만들어진 것 같다"고 판정하면 만드는 쪽은 어디가 걸렸는지 신호를 받아 그 부분을 고쳐요. 반대로 속아 넘어가면 그 방향이 옳았다는 신호가 돼요. 채점표가 학습 도중에 계속 새로 쓰이는 셈이에요.

덕분에 결과물이 선명해져요. 평균을 맞히는 방식으로 배운 모델은 흐릿한 결과를 내놓기 쉬운데, 여기서는 흐릿한 결과가 곧바로 들통나서 통과하지 못해요.

균형이 깨지면 배움이 멈춰요

문제는 두 기계의 힘이 비슷해야 겨루기가 성립한다는 점이에요. 가려내는 쪽이 지나치게 세지면 무엇을 내밀어도 가짜 판정이 나와요. 만드는 쪽은 어느 방향으로 고쳐야 할지 알 수 없게 되고 배움이 멈춰요.

반대 상황도 곤란해요. 만드는 쪽이 잘 통하는 결과 하나를 발견하면 그것만 계속 찍어 내요. 매번 다른 숫자를 넣어 줘도 나오는 것은 비슷비슷해져요. 붕어빵 틀 하나가 잘 통했다고 그 무늬만 반복해 깎는 상황이에요. 이 현상을 모드 붕괴라고 불러요.

그래서 학습이 순탄하지 않아요. 두 쪽의 속도를 맞추고 한쪽이 앞서 나가지 않도록 조절하는 손질이 많이 들어가요. 같은 설정으로 다시 돌려도 결과가 크게 달라지기도 해요.

다 배우면 가려내는 쪽은 내려놓아요

학습이 끝나면 실제로 쓰는 것은 만드는 쪽 하나예요. 가려내는 기계는 훈련용 채점자였을 뿐이라 완성된 뒤에는 필요하지 않아요. 서비스에 올라가는 것도 만드는 쪽뿐이에요.

만드는 쪽은 숫자 뭉치를 받아 결과를 내놓기 때문에 한 번의 계산으로 결과가 나와요. 여러 단계를 밟는 방식보다 훨씬 빨라서, 실시간으로 화면을 만들어야 하는 자리에서는 지금도 이 방식이 쓰여요.

지금은 어디에 쓰이나요

한동안 그림 생성의 중심이었지만, 지금 그 자리는 얼룩을 걷어 내며 만드는 방식으로 많이 넘어갔어요. 학습이 안정적이고 다양한 결과를 내기 쉬운 데다 글로 방향을 잡아 주기도 편하기 때문이에요.

대신 GAN은 빠르고 가벼운 자리에서 살아남았어요. 저해상도 사진을 크게 키우는 일, 목소리 파형을 소리로 바꾸는 일, 화면을 실시간으로 바꾸는 일처럼 한 번에 끝내야 하는 작업에 어울려요. 겨루게 해서 배우게 한다는 발상 자체도 다른 분야로 널리 퍼졌어요.

3조금 더 정확하게

GAN은 생성기와 판별기라는 두 신경망을 하나의 목표 함수 위에서 서로 반대 방향으로 최적화하는 구조예요. 판별기는 진짜와 가짜를 잘 구별하도록, 생성기는 판별기의 판정을 뒤집도록 학습해요. 이론적으로는 생성기가 만들어 내는 분포가 실제 데이터 분포와 같아지는 지점에서 균형이 잡히고, 그때 판별기의 정답률은 절반에 수렴해요.

비유가 어긋나는 지점이 있어요. 붕어빵 틀은 한번 깎아 두면 같은 모양만 찍어 내지만, 생성기는 들어오는 숫자 뭉치에 따라 매번 다른 결과를 내놓아야 해요. 같은 것만 나온다면 그것이 바로 실패 신호예요. 또 가려내는 기계는 진짜 붕어빵을 옆에 두고 비교하지만, 판별기는 학습 도중 진짜 자료를 계속 새로 보며 기준 자체를 바꿔 가요.

두 쪽이 균형에 도달했는지 확인하기 어렵다는 점도 짚어야 해요. 손실 값이 낮아졌다고 결과가 좋아진 것이 아니라서, 사람이 결과물을 직접 보거나 별도의 지표로 따로 재야 해요.

4직접 해보기

5흔한 오해

  • GAN이 두 개의 AI가 대화하며 서로 가르치는 구조라고 생각하기 쉽지만, 실제로는 각자 자기 목표만 좇고 상대의 실수를 이용할 뿐 정보를 주고받지는 않아요.

  • 학습이 끝나면 두 쪽을 함께 쓴다고 여기기 쉽지만, 실제로는 만드는 쪽만 남기고 가려내는 쪽은 버려요.

  • 겨루게 하면 저절로 좋아진다고 생각하기 쉽지만, 실제로는 힘의 균형이 무너지면 한 가지 결과만 반복해 내놓는 상태에 빠지기 쉬워요.

7한 줄 요약

그러니까GAN은 만드는 기계와 가려내는 기계를 맞붙여, 상대를 속이고 상대에게 들키는 과정을 반복하며 함께 실력을 올리는 방식이에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02