AI VIDEO BRIEFING
REINFORCE와 검블 소프트맥스: 이산 생성 모델의 미분 불가 문제를 푸는 두 가지 방법
텍스트·그래프·DNA 서열처럼 이산적인 데이터에서는 재매개변수화 기법이 통하지 않는다. 코넬대 심층 생성 모델 강의가 제시한 REINFORCE와 제어 변량, 그리고 검블 소프트맥스라는 두 갈래 해법을 정리했다.

핵심 메시지
쉽게 이해하기
코넬대 심층 생성 모델 강의의 후반부 특별 주제 가운데 하나가 이산성이다. 강의를 관통하는 예제는 대부분 이미지였지만, 실제로 다루고 싶은 데이터에는 텍스트와 소스 코드, 그래프, DNA 서열, 분자 표현처럼 연속적이지 않은 것들이 많다. 여기에 더해 잠재 표현 자체를 이산적으로 두고 싶은 경우도 있다. 어떤 물체가 장면에 있는지 없는지, 사람이 몇 명인지 같은 개념은 연속값보다 이산값으로 두는 편이 자연스럽고, 입력을 이산 코드로 압축하는 문제도 마찬가지다.
문제는 하나의 수식으로 정리된다. 매개변수로 정의된 분포에서 표본을 뽑아 어떤 점수 함수의 기댓값을 최대화하는 형태다. 변분 오토인코더의 ELBO가 정확히 이 형태이고, 여기서 디코더 쪽 매개변수의 기울기는 미분 연산자를 기댓값 안으로 밀어 넣으면 그만이라 쉽다. 반면 기댓값을 정의하는 분포 쪽 매개변수는 순서를 그렇게 바꿀 수 없어 어렵다. 연속 잠재 변수라면 재매개변수화 기법으로 해결되지만, 잠재 변수가 이산이면 그 길이 막힌다.
첫 번째 돌파구가 REINFORCE다. 기댓값을 합으로 풀어 쓰고 분자와 분모에 같은 확률을 곱해 주면, 미분항이 로그 확률의 기울기 형태로 정리되면서 전체가 다시 기댓값 모양이 된다. 기댓값이 바깥에 오면 표본을 뽑아 평균 내는 몬테카를로 근사가 가능해진다. 이 방법은 분포에서 표본을 뽑고 확률을 계산할 수만 있으면 되므로, 점수 함수가 미분 불가능해도 상관없다. 기계 번역이나 요약 품질을 재는 BLEU, ROUGE처럼 손으로 만든 평가 지표를 직접 최적화하려는 경우가 대표적이다.
다만 REINFORCE는 그대로 쓰면 잘 안 된다. 추정값의 기댓값은 정확하지만 분산이 크기 때문이다. 고차원에서는 확률이 매우 작아지고, 로그는 0 근처에서 급격히 발산하므로 로그 확률의 기울기가 크게 요동친다. 그래서 강의는 제어 변량을 소개한다. 로그 확률의 기울기에 곱해지는 항에 상수를 더해도 기댓값은 변하지 않는다는 사실을 짧은 증명으로 보인 뒤, 이를 일반화해 기댓값을 아는 임의의 함수를 더하고 빼는 형태로 확장한다. 이론상 최적의 제어 변량은 점수 함수 자신이지만 그것을 알면 애초에 문제가 풀린 것이므로, 실제로는 점수 함수와 상관관계가 높은 함수를 만들어 쓴다.
이 아이디어가 실제로 쓰인 예가 이산 잠재 변수를 갖는 시그모이드 신뢰망이다. 딥마인드의 NVIL 연구는 상수 기준선과 입력에 따라 달라지는 기준선 두 가지를 제어 변량으로 두고, 이 기준선들을 점수 함수와의 오차를 줄이도록 함께 학습시켰다. 강의자는 이 보정이 있고 없고가 잠재 차원이 열여섯 정도만 넘어가도 학습이 되느냐 아예 안 되느냐를 가른다고 말한다.
두 번째 돌파구는 완화된 재매개변수화, 흔히 검블 소프트맥스라 불리는 기법이다. 먼저 검블 분포를 이용한 검블 맥스 요령이 있다. 각 클래스의 로그 확률에 독립적인 검블 잡음을 더한 뒤 가장 큰 값의 위치를 고르면, 그 결과가 원래 범주형 분포에서 뽑은 것과 같은 분포를 따른다. 형태만 보면 재매개변수화와 똑같지만 argmax와 원핫 인코딩이 미분 불가능해 그대로는 쓸 수 없다.
여기서 argmax를 소프트맥스로 바꾸는 것이 검블 소프트맥스다. 온도라는 매개변수가 붙어, 온도를 0에 가깝게 낮추면 결과가 원핫 벡터에 수렴하고 온도를 키우면 여러 성분에 값이 퍼진다. 온도가 너무 낮으면 사실상 미분 불가능한 함수를 미분하는 셈이라 기울기 분산이 커지고, 너무 높으면 분산은 작아지지만 원래 뽑고 싶던 분포와 달라진다. 그래서 학습 초반에는 느슨하게 두고 진행하면서 점차 온도를 낮춰 조이는 방식을 쓴다. 이 발상은 범주형 변수에만 국한되지 않아서, 순열이나 잠재 구문 트리, 그래프 같은 이산 객체에도 같은 계열의 완화 기법이 존재한다.
주요 인사이트
- 이산성 문제는 데이터의 문제이자 표현의 문제다. 다루려는 대상이 텍스트나 분자여서 이산일 수도 있고, 세상의 개념 상당수가 원래 이산적이라 잠재 공간을 그렇게 두고 싶어서일 수도 있다.
- REINFORCE의 가치는 요구 조건이 적다는 데 있다. 분포에서 표본을 뽑고 확률을 평가할 수만 있으면 되므로, 점수 함수가 미분 가능한지 여부와 무관하게 쓸 수 있다.
- 편향이 없다는 것과 실제로 학습이 된다는 것은 별개다. 평균적으로 정답을 가리켜도 흔들림이 크면 모델은 목적 함수의 높은 값에서 멈춰 버린다. 제어 변량은 선택 사항이 아니라 사실상 필수 부품이다.
- 제어 변량은 생성 모델이나 강화학습에서 만들어진 개념이 아니라 수십 년 된 통계학의 일반적인 도구다. 중요도 표집 같은 다른 영역에도 같은 아이디어가 쓰인다.
- 생성 모델과 강화학습은 같은 문제를 다른 이름으로 풀고 있다. 생성기를 토큰을 하나씩 내놓는 행위자로, 점수를 보상으로 보면 구조가 겹치며, 대형 언어 모델의 미세 조정도 같은 형태의 최적화 문제를 더 효율적인 추정기로 푸는 일이다.
- 검블 소프트맥스의 장점은 이론적 우아함보다 실용성 쪽에 있다. 파이토치 같은 프레임워크에 수식을 그대로 넣고 순전파를 돌리면 역전파에서 기울기가 따라오므로 시도해 보기가 쉽다.
자주 묻는 질문
잠재 변수가 이산적이면 왜 기존 방법이 통하지 않나요?
연속 잠재 변수에서는 재매개변수화 기법으로 미분 연산자와 기댓값의 순서를 바꿀 수 있지만, 잠재 변수가 이산이면 그 기법을 적용할 수 없습니다. 점수 함수 자체가 미분 불가능한 경우, 예컨대 BLEU나 ROUGE 같은 지표를 직접 최적화하려는 경우에도 마찬가지입니다.
REINFORCE의 분산이 큰 이유는 무엇인가요?
몬테카를로 근사의 분산은 기댓값을 취하는 대상 함수의 분산에 좌우되는데, 그 안에 로그 확률의 기울기가 들어 있기 때문입니다. 고차원에서는 확률값이 매우 작아질 수 있고 로그는 0 근처에서 음의 무한대로 발산하므로, 확률이 조금만 흔들려도 값이 크게 요동칩니다.
제어 변량은 어떤 것을 골라야 하나요?
이론적으로 최적인 제어 변량은 점수 함수 자신입니다. 그 경우 항이 상쇄되어 표본 하나로도 분산 0의 추정이 가능하지만, 그것을 알고 있다면 애초에 기댓값을 직접 계산하면 되므로 실제로는 쓸 수 없습니다. 대신 점수 함수와 최대한 상관관계가 높은 함수를 만들어 쓰면 분산이 줄어듭니다.
검블 소프트맥스에서 온도는 어떻게 조절하나요?
온도가 0에 가까우면 출력이 원핫 벡터에 가까워져 원하는 이산 분포에 근접하지만 기울기 추정의 분산이 커지고, 온도가 크면 분산은 작지만 원하는 분포와 멀어집니다. 그래서 학습 초반에는 느슨한 값으로 시작해 진행하면서 점차 온도를 낮춰 근사를 조이는 방식을 씁니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗