본문 바로가기

ML

ML 주니어 엔지니어를 위한 기술면접 질문 모음 4

1. 상태 가치 함수(State-Value Function)에 대한 벨만 기대 방정식(Bellman Expectation Equation)을 작성하세요.

상태 가치 함수 $v_{\pi}(s)$는 특정 정책 $\pi$를 따를 때, 상태 $s$에서 시작하여 받을 것으로 기대되는 미래 보상의 총합(리턴)을 의미합니다. 이는 특정 상태가 해당 정책 하에서 얼마나 "좋은지"를 나타내는 척도입니다.
벨만 기대 방정식은 이 상태 가치 함수를 재귀적으로 정의하는 핵심적인 관계식입니다. 현재 상태의 가치는 즉시 받는 보상과 다음 상태의 가치로 분해하여 표현할 수 있다는 아이디어를 기반으로 합니다.
수식은 다음과 같이 유도되고 표현됩니다.
정의: 상태 가치 함수는 시점 $t$에 상태 $S_t=s$에 있을 때의 기대 리턴 $G_t$로 정의됩니다.
$$v_{\pi}(s)=\mathbb{E}_{\pi}\!\left[G_t\mid S_t=s\right]$$
여기서 $G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots=\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}$ 이고, $\gamma$는 미래 보상을 현재 가치로 할인하는 할인율 $(0\le \gamma\le 1)$입니다.
재귀적 분해: 리턴 $G_t$를 현재 즉시 받는 보상 $R_{t+1}$과 다음 시점의 리턴 $G_{t+1}$로 분해합니다.
$$G_t=R_{t+1}+\gamma G_{t+1}$$
벨만 기대 방정식: 위 식을 상태 가치 함수 정의에 대입하여 전개합니다.
$$ \begin{aligned} v_{\pi}(s)&=\mathbb{E}_{\pi}\!\left[R_{t+1}+\gamma G_{t+1}\mid S_t=s\right]\\ &=\mathbb{E}_{\pi}\!\left[R_{t+1}\mid S_t=s\right]+\gamma\,\mathbb{E}_{\pi}\!\left[G_{t+1}\mid S_t=s\right] \end{aligned} $$
여기서 $\mathbb{E}_{\pi}\!\left[G_{t+1}\mid S_t=s\right]$는 다음 상태 $S_{t+1}$의 가치, 즉 $\mathbb{E}_{\pi}\!\left[v_{\pi}(S_{t+1})\mid S_t=s\right]$와 같습니다. 따라서,
$$ v_{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a\mid s)\Big(R_s^a+\gamma\sum_{s'\in\mathcal{S}}P_{ss'}^{a}\,v_{\pi}(s')\Big) $$
최종 수식:
$$ v_{\pi}(s)=\sum_{a}\pi(a\mid s)\Big(r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\,v_{\pi}(s')\Big) $$

  • $v_{\pi}(s)$: 정책 $\pi$를 따를 때 상태 $s$의 가치.
  • $\pi(a\mid s)$: 상태 $s$에서 정책 $\pi$에 따라 행동 $a$를 선택할 확률.
  • $r(s,a)$: 상태 $s$에서 행동 $a$를 했을 때 받을 것으로 기대되는 즉각적인 보상. $(=\mathbb{E}[R_{t+1}\mid S_t=s,A_t=a])$
  • $\gamma$: 할인율 (Discount factor).
  • $P(s'\mid s,a)$: 상태 $s$에서 행동 $a$를 했을 때 다음 상태가 $s'$가 될 확률 (상태 전이 확률).

$\sum_a\cdots$: 현재 상태 $s$에서 가능한 모든 행동 $a$에 대한 기댓값을 계산. 정책 $\pi$에 따라 가중 평균됩니다.
$\sum_{s'}\cdots$: 행동 $a$를 한 후 도달할 수 있는 모든 다음 상태 $s'$에 대한 기댓값을 계산. 상태 전이 확률에 따라 가중 평균됩니다.
이 방정식은 특정 정책 $\pi$에 대한 가치 함수를 평가하는 정책 평가(Policy Evaluation)의 기초가 됩니다.


2. 행동 가치 함수(Action-Value Function)에 대한 벨만 기대 방정식을 작성하세요.

행동 가치 함수 $q_{\pi}(s,a)$는 특정 정책 $\pi$를 따르는 조건 하에, 상태 $s$에서 행동 $a$를 취한 후 받을 것으로 기대되는 미래 보상의 총합(리턴)을 의미합니다. 이는 특정 상태에서 특정 행동이 얼마나 "좋은지"를 나타내는 척도입니다.
정의:
$$q_{\pi}(s,a)=\mathbb{E}_{\pi}\!\left[G_t\mid S_t=s, A_t=a\right]$$
상태 $s$에서 행동 $a$를 이미 선택한 후의 기대 리턴이라는 점이 $v_{\pi}(s)$와의 차이입니다.
재귀적 분해 및 유도:
$$ q_{\pi}(s,a)=\mathbb{E}_{\pi}\!\left[R_{t+1}+\gamma G_{t+1}\mid S_t=s,A_t=a\right] $$
행동 $a$를 취하면 즉시 보상 $R_{t+1}$을 받고 다음 상태 $S_{t+1}$로 전이합니다. 그 후부터는 정책 $\pi$를 따르므로, $S_{t+1}$에서의 기대 리턴은 $v_{\pi}(S_{t+1})$입니다.
$$ q_{\pi}(s,a)=\mathbb{E}\!\left[R_{t+1}\mid S_t=s,A_t=a\right]+\gamma\,\mathbb{E}_{\pi}\!\left[v_{\pi}(S_{t+1})\mid S_t=s,A_t=a\right] $$
이를 전개하면 첫 번째 형태의 방정식을 얻습니다.
형태 1: 상태 가치 함수 $v_{\pi}$를 이용한 표현
$$ q_{\pi}(s,a)=r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\,v_{\pi}(s') $$
이 식은 $q_{\pi}(s,a)$가 즉각적인 보상 $r(s,a)$과 다음 상태들의 가치 $v_{\pi}(s')$의 할인된 합으로 구성됨을 보여줍니다.
형태 2: 행동 가치 함수 $q_{\pi}$만을 이용한 표현
$$ v_{\pi}(s')=\sum_{a'}\pi(a'\mid s')\,q_{\pi}(s',a') $$ 관계를 위 식에 대입하여 $v_{\pi}$를 소거할 수 있습니다.
$$ q_{\pi}(s,a)=r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\sum_{a'}\pi(a'\mid s')\,q_{\pi}(s',a') $$

  • $q_{\pi}(s,a)$: 정책 $\pi$ 하에서, 상태 $s$에서 행동 $a$를 취했을 때의 가치.
  • $r(s,a), \gamma, P(s'\mid s,a)$: 상태 가치 함수와 동일.
  • $v_{\pi}(s')$: 다음 상태 $s'$의 상태 가치.
  • $\sum_{a'}\pi(a'\mid s')q_{\pi}(s',a')$: 다음 상태 $s'$에 도달한 후, 정책 $\pi$에 따라 가능한 모든 행동 $a'$을 수행할 때의 평균적인 행동 가치. 이것이 바로 $v_{\pi}(s')$의 정의입니다.

이 방정식은 Q-러닝, SARSA와 같은 시간차 학습 알고리즘의 이론적 기반이 됩니다.


3. 최적 상태 가치 함수(Optimal State-Value Function)에 대한 벨만 최적 방정식을 작성하세요.

최적 상태 가치 함수 $v^*(s)$는 가능한 모든 정책 중에서 가장 높은 기대 리턴을 얻는 정책을 따랐을 때의 상태 가치 함수를 의미합니다. 즉, 어떤 상태 $s$에서 앞으로 최적의 선택만을 할 경우 얻을 수 있는 최대 가치입니다.
$$v^*(s) = \max_{\pi} v_{\pi}(s)$$
벨만 최적 방정식은 이 $v^*(s)$가 만족시키는 재귀적 관계식입니다. 기대 방정식과 달리, 정책에 대한 평균을 취하는 대신 최적의 행동을 선택(max 연산)합니다.
수식 및 유도:
최적 상태 $s$의 가치는, 가능한 모든 행동 $a$를 취했을 때의 가치 $q^*(s,a)$ 중에서 가장 큰 값과 같습니다.
$$v^*(s)=\max_{a}\,q^*(s,a)$$
최적 행동 가치 함수 $q^*(s,a)$는 행동 $a$를 취한 후 즉시 받는 보상과, 그로 인해 도달하는 다음 상태 $s'$에서 얻을 수 있는 최적 가치 $v^*(s')$의 합으로 표현됩니다.
$$q^*(s,a)=r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\,v^*(s')$$
두 식을 결합하면 벨만 최적 방정식을 얻습니다.
최종 수식:
$$ v^*(s)=\max_{a}\Big(r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\,v^*(s')\Big) $$

  • $v^*(s)$: 상태 $s$의 최적 가치. 이 상태에서 시작하여 최적으로 행동했을 때 얻을 수 있는 최대 기대 리턴.
  • $\max_a$: 가능한 모든 행동 $a$ 중에서 괄호 안의 값을 최대로 만드는 행동을 선택하는 연산자.
  • $r(s,a), \gamma, P(s'\mid s,a)$: 이전과 동일.

이 방정식은 선형이 아니며(max 연산 때문에), 일반적인 행렬 연산으로 풀 수 없습니다. 대신 가치 반복(Value Iteration)과 같은 동적 프로그래밍 기법을 사용하여 점근적으로 해를 구합니다. 이 방정식을 푸는 것은 강화학습의 궁극적인 목표인 최적 정책을 찾는 것과 직결됩니다.


4. 최적 행동 가치 함수(Optimal Action-Value Function)에 대한 벨만 최적 방정식을 작성하세요.

최적 행동 가치 함수 $q^*(s, a)$는 상태 $s$에서 행동 $a$를 취하고, 그 이후부터는 최적 정책을 따랐을 때 얻게 되는 기대 리턴을 의미합니다.
$$q^*(s, a) = \max_{\pi} q_{\pi}(s, a)$$
$q^*(s, a)$를 알면 최적 정책 $\pi^*$을 쉽게 찾을 수 있습니다. 각 상태 $s$에서 $q^*(s, a)$를 최대로 만드는 행동 $a$를 선택하면 되기 때문입니다.
$$\pi^*(s) = \arg\max_{a} q^*(s, a)$$
벨만 최적 방정식은 $q^*(s, a)$에 대한 재귀적 관계를 정의하며, Q-러닝과 같은 알고리즘의 핵심적인 업데이트 목표가 됩니다.
수식 및 유도:
상태 $s$에서 행동 $a$를 취했을 때의 최적 가치는, 즉시 받는 보상 $r(s, a)$와, 그로 인해 도달하게 될 다음 상태 $s'$에서 앞으로 얻을 수 있는 최대 가치의 합으로 구성됩니다. 다음 상태 $s'$에서의 최대 가치는 $v^*(s')=\max_{a'} q^*(s',a')$ 입니다.
최종 수식:
$$ q^*(s,a)=r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\max_{a'}q^*(s',a') $$

  • $q^*(s,a)$: 상태 $s$에서 행동 $a$를 취했을 때의 최적 가치.
  • $r(s,a), \gamma, P(s'\mid s,a)$: 이전과 동일.
  • $\max_{a'} q^*(s',a')$: 다음 상태 $s'$에 도달했을 때, 가능한 모든 다음 행동 $a'$ 중에서 가장 높은 Q값을 선택하는 연산.

이 방정식은 모델(환경의 역학)을 모르는 상황에서도 샘플링을 통해 $q^*$를 점진적으로 학습할 수 있는 길을 열어줍니다. Q-러닝은 이 방정식을 기반으로, 실제 경험한 전이 $(S_t, A_t, R_{t+1}, S_{t+1})$를 사용하여 Q 함수를 업데이트합니다.


5. 시간차 학습(Temporal-Difference Learning)의 기본 업데이트 규칙을 TD 타겟과 TD 오차를 이용하여 표현하세요.

시간차 학습(TD 학습)은 환경의 모델(전이 확률, 보상 함수)을 모르는 상태에서, 실제 경험(샘플)을 바탕으로 가치 함수를 점진적으로 학습하는 방법입니다. 몬테카를로 방법과 동적 프로그래밍의 아이디어를 결합한 것으로, 에피소드가 끝날 때까지 기다리지 않고 매 스텝마다 학습을 진행합니다.
TD 학습의 핵심은 현재의 가치 추정치 $V(S_t)$를 더 나은 추정치, 즉 TD 타겟을 향해 조금씩 업데이트하는 것입니다.
TD 타겟 (TD Target):
$$\text{TD Target}=R_{t+1}+\gamma V(S_{t+1})$$
이는 벨만 방정식에서 기댓값 대신 실제 샘플 값을 사용한 형태입니다.
TD 오차 (TD Error):
$$\delta_t=\text{TD Target}-V(S_t)=R_{t+1}+\gamma V(S_{t+1})-V(S_t)$$
최종 업데이트 규칙:
$$V(S_t)\leftarrow V(S_t)+\alpha\cdot \delta_t$$
수식을 풀어서 쓰면 다음과 같습니다.
$$V(S_t)\leftarrow V(S_t)+\alpha\big(R_{t+1}+\gamma V(S_{t+1})-V(S_t)\big)$$

  • $V(S_t)$: 시점 $t$의 상태 $S_t$에 대한 현재 가치 추정치.
  • $\alpha$: 학습률 (Learning Rate). 업데이트의 크기를 조절하는 하이퍼파라미터 $(0<\alpha\le 1)$.
  • $R_{t+1}$: 행동 $A_t$를 수행한 후 실제로 받은 보상.
  • $\gamma$: 할인율.
  • $V(S_{t+1})$: 다음 상태 $S_{t+1}$에 대한 현재 가치 추정치.

이 과정을 부트스트래핑(bootstrapping)이라고 합니다. 즉, 다른 추정치 $V(S_{t+1})$를 기반으로 현재의 추정치 $V(S_t)$를 업데이트합니다. 이는 에피소드 전체의 리턴을 기다려야 하는 몬테카를로 방법과 대조됩니다.


6. Q-러닝(Q-Learning)의 Q함수 업데이트 규칙을 수식으로 작성하세요.

Q-러닝은 모델이 없는(model-free) 환경에서 최적 행동 가치 함수 $q^*(s, a)$를 학습하기 위한 대표적인 오프 폴리시(off-policy) 시간차 제어 알고리즘입니다. 오프 폴리시란, 에이전트가 데이터를 수집하기 위해 따르는 행동 정책(예: $\epsilon$-greedy)과 학습하여 향상시키려는 타겟 정책(항상 최적의 행동을 선택하는 greedy policy)이 다를 수 있음을 의미합니다.
Q-러닝의 목표는 벨만 최적 방정식을 만족하는 $Q(s, a) \approx q^*(s, a)$를 찾는 것입니다.
업데이트 규칙:
$$ Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha\Big(R_{t+1}+\gamma\max_a Q(S_{t+1},a)-Q(S_t,A_t)\Big) $$

  • $Q(S_t,A_t)$: 업데이트 대상이 되는 현재 상태-행동 쌍의 Q값.
  • $\alpha$: 학습률.
  • $R_{t+1}+\gamma\max_a Q(S_{t+1},a)$: TD 타겟. 벨만 최적 방정식의 우변을 샘플 기반으로 추정한 값입니다.
  • $R_{t+1}$: 실제로 받은 즉각적인 보상.
  • $\max_a Q(S_{t+1},a)$: 다음 상태 $S_{t+1}$에서 가능한 모든 행동 $a$ 중 가장 높은 Q값.

TD 오차 $\delta_t = R_{t+1} + \gamma \max_{a} Q(S_{t+1}, a) - Q(S_t, A_t)$를 이용하여 간결하게 표현할 수도 있습니다.
$$Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha\cdot \delta_t$$
이 업데이트 규칙을 통해 Q 함수는 점차 최적 행동 가치 함수 $q^*$로 수렴하게 되며, 수렴된 Q 함수를 이용해 각 상태에서 Q값이 가장 큰 행동을 선택함으로써 최적 정책을 얻을 수 있습니다.


7. SARSA의 Q함수 업데이트 규칙을 수식으로 작성하고, Q-러닝과 어떤 점이 다른지 설명하세요.

SARSA는 Q-러닝과 마찬가지로 모델이 없는 환경에서 행동 가치 함수를 학습하는 시간차 제어 알고리즘입니다. 하지만 Q-러닝과 결정적인 차이점이 있는데, 바로 온 폴리시(on-policy)라는 점입니다. 온 폴리시란, 에이전트가 데이터를 수집하기 위해 따르는 행동 정책과 학습을 통해 개선하려는 정책이 동일함을 의미합니다.
SARSA라는 이름은 업데이트에 사용되는 데이터 순서 $(S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1})$의 앞 글자를 딴 것입니다.
업데이트 규칙:
$$ Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha\Big(R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t)\Big) $$
Q-러닝과의 차이점:
가장 핵심적인 차이는 TD 타겟을 계산하는 방식에 있습니다.
Q-러닝 (오프 폴리시):
$$\text{TD Target}_{\text{Q-learning}}=R_{t+1}+\gamma\max_a Q(S_{t+1},a)$$
Q-러닝은 다음 상태 $S_{t+1}$에서 취할 수 있는 가장 가치가 높은 행동을 가정하여 타겟을 만듭니다. 실제로 다음에 어떤 행동을 할지는 타겟 계산에 영향을 주지 않습니다. 이는 타겟 정책이 탐욕적(greedy) 정책임을 의미합니다.
SARSA (온 폴리시):
$$\text{TD Target}_{\text{SARSA}}=R_{t+1}+\gamma Q(S_{t+1},A_{t+1})$$
SARSA는 다음 상태 $S_{t+1}$에서 현재 정책(예: $\epsilon$-greedy)에 따라 실제로 선택한 행동 $A_{t+1}$의 Q값을 사용하여 타겟을 만듭니다. 즉, 현재 따르고 있는 정책의 가치를 그대로 학습합니다.
결과의 차이:
이러한 차이로 인해 두 알고리즘은 다른 행동 양상을 보일 수 있습니다. 예를 들어, 절벽 근처를 걷는 에이전트가 있다고 가정해 봅시다.

  • Q-러닝: 최적의 경로(절벽 가장자리)가 보상 기댓값이 가장 높기 때문에 그 경로의 Q값을 높게 학습합니다. 탐사($\epsilon$) 때문에 절벽으로 떨어질 위험이 있더라도, 타겟 계산 시에는 항상 안전한 최적 행동을 가정하므로 위험을 과소평가할 수 있습니다.
  • SARSA: $\epsilon$-greedy 정책을 따르므로, 탐사로 인해 절벽으로 떨어질 확률까지 고려하여 Q값을 학습합니다. 실제로 $A_{t+1}$이 절벽으로 가는 행동일 수 있기 때문입니다. 따라서 절벽에서 조금 더 떨어진 안전한 길을 선호하는, 더 보수적인 정책을 학습하게 됩니다.

8. 어드밴티지 함수(Advantage Function) $A(s,a)$를 상태 가치 함수와 행동 가치 함수를 이용해 정의하세요.

어드밴티지 함수(Advantage Function) $A^{\pi}(s, a)$는 정책 $\pi$를 따를 때, 상태 $s$에서 특정 행동 $a$를 취하는 것이 그 상태의 평균적인 가치보다 얼마나 더 좋은지를 나타내는 척도입니다.
정의: 어드밴티지 함수는 행동 가치 함수 $q_{\pi}(s, a)$와 상태 가치 함수 $v_{\pi}(s)$의 차이로 정의됩니다.
$$A^{\pi}(s,a)=q^{\pi}(s,a)-v^{\pi}(s)$$
$q_{\pi}(s,a)$: 상태 $s$에서 행동 $a$를 취한 후 정책 $\pi$를 따랐을 때의 기대 리턴.
$v_{\pi}(s)$: 상태 $s$에서 (어떤 행동을 취할지 정하기 전) 정책 $\pi$를 따랐을 때의 기대 리턴. $v_{\pi}(s)$는 $q_{\pi}(s, a)$의 기댓값, 즉 $v_{\pi}(s)=\mathbb{E}_{a\sim\pi(\cdot\mid s)}[q_{\pi}(s,a)]$ 입니다.
의미와 중요성:

  • 행동의 상대적 가치: 어드밴티지 값의 부호를 통해 행동의 좋고 나쁨을 직관적으로 판단할 수 있습니다.
    • $A^{\pi}(s,a)>0$: 행동 $a$는 상태 $s$의 평균적인 행동보다 더 좋다.
    • $A^{\pi}(s,a)<0$: 행동 $a$는 상태 $s$의 평균적인 행동보다 더 나쁘다.
    • $A^{\pi}(s,a)=0$: 행동 $a$는 상태 $s$의 평균적인 행동과 차이가 없다.
  • 정책 경사(Policy Gradient)의 분산 감소: 정책 경사 알고리즘에서 학습 신호로 Q값($q^{\pi}$)을 직접 사용하는 대신 어드밴티지 함수($A^{\pi}$)를 사용하면 학습의 분산(variance)을 크게 줄일 수 있습니다.

정책 경사 그래디언트는 $\nabla_{\theta} J(\theta)\propto \mathbb{E}[\nabla_{\theta}\log\pi_{\theta}(a\mid s)\cdot Q^{\pi}(s,a)]$ 입니다.
여기서 $Q^{\pi}(s, a)$를 $A^{\pi}(s, a) = Q^{\pi}(s, a) - V^{\pi}(s)$로 교체해도 그래디언트의 기댓값은 변하지 않습니다. $V^{\pi}(s)$는 행동 $a$와 무관하기 때문입니다. 이를 베이스라인(baseline) subtraction이라고 합니다.
$Q^{\pi}$ 값은 항상 양수일 수 있지만, $A^{\pi}$ 값은 양수와 음수를 모두 가질 수 있어, 좋은 행동은 확률을 높이고 나쁜 행동은 확률을 낮추도록 더 명확한 신호를 제공합니다. 이로 인해 학습이 더 안정적이고 빨라집니다. 액터-크리틱(Actor-Critic)과 같은 고급 알고리즘에서 핵심적인 역할을 합니다.


9. 정책 경사 정리(Policy Gradient Theorem)의 목적 함수 $J(\theta)$와 그 그래디언트 $\nabla_\theta J(\theta)$를 수식으로 표현하세요.

정책 경사(Policy Gradient) 방법은 정책 자체를 파라미터 $\theta$로 모델링된 함수 $\pi_{\theta}(a\mid s)$로 표현하고, 보상을 최대로 하는 최적의 파라미터 $\theta$를 경사 상승법을 통해 직접 찾는 알고리즘 계열입니다.
목적 함수 $J(\theta)$:
정책 경사의 목표는 보상의 기댓값을 최대로 하는 정책 파라미터 $\theta$를 찾는 것입니다. 이 보상의 기댓값을 목적 함수 $J(\theta)$로 정의합니다. 에피소딕(Episodic) 환경에서는 시작 상태 $s_0$의 가치로 정의할 수 있습니다.
$$ J(\theta)=v^{\pi_{\theta}}(s_0)=\mathbb{E}_{\pi_{\theta}}\!\left[\sum_{t=0}^{T}\gamma^t R_{t+1}\,\Big|\,S_0=s_0\right] $$
연속적인(Continuing) 환경에서는 평균 보상이나 할인된 상태 분포를 이용해 정의합니다. 할인된 상태 분포 $d^{\pi_{\theta}}(s)$를 사용하면 다음과 같이 표현됩니다.
$$ J(\theta)=\sum_{s\in\mathcal{S}} d^{\pi_{\theta}}(s)\,v^{\pi_{\theta}}(s)=\sum_{s} d^{\pi_{\theta}}(s)\sum_{a}\pi_{\theta}(a\mid s)\,q^{\pi_{\theta}}(s,a) $$
정책 경사 정리 (Policy Gradient Theorem):
이 목적 함수 $J(\theta)$의 그래디언트 $\nabla_{\theta} J(\theta)$는 다음과 같이 간결하게 표현됩니다.
$$ \nabla_{\theta} J(\theta)\propto \sum_{s} d^{\pi_{\theta}}(s)\sum_{a}\nabla_{\theta}\pi_{\theta}(a\mid s)\,q^{\pi_{\theta}}(s,a) $$
로그-미분 트릭을 이용하면,
$$ \nabla_{\theta} J(\theta)=\mathbb{E}_{s\sim d^{\pi_{\theta}},\,a\sim\pi_{\theta}}\!\left[\nabla_{\theta}\log\pi_{\theta}(a\mid s)\cdot q^{\pi_{\theta}}(s,a)\right] $$

  • $\nabla_{\theta} J(\theta)$: 목적 함수를 파라미터 $\theta$에 대해 미분한 값.
  • $\pi_{\theta}(a\mid s)$: 파라미터 $\theta$로 결정되는 정책.
  • $\nabla_{\theta}\log\pi_{\theta}(a\mid s)$: 스코어 함수(Score Function).
  • $q^{\pi_{\theta}}(s,a)$: 행동 가치 함수.

이 정리는 샘플링 기반의 추정을 가능하게 하여, REINFORCE와 같은 몬테카를로 정책 경사 알고리즘과 액터-크리틱 알고리즘의 이론적 토대를 제공합니다.


10. REINFORCE 알고리즘의 파라미터 업데이트 규칙을 수식으로 작성하세요.

REINFORCE는 정책 경사 정리를 직접적으로 구현한 가장 기본적인 몬테카를로 정책 경사(Monte-Carlo Policy Gradient) 알고리즘입니다. '몬테카를로'라는 이름이 붙은 이유는, 정책 경사 정리의 기댓값을 계산하기 위해 하나의 완전한 에피소드로부터 얻은 샘플 리턴을 사용하기 때문입니다.
정책 경사 정리에서 그래디언트는 $\nabla_{\theta} J(\theta)=\mathbb{E}_{\pi_{\theta}}\!\left[\nabla_{\theta}\log\pi_{\theta}(A_t\mid S_t)\cdot q^{\pi_{\theta}}(S_t,A_t)\right]$ 입니다. REINFORCE는 이 식에서 $q_{\pi_{\theta}}(S_t, A_t)$를 시점 $t$에서부터 에피소드가 끝날 때까지 얻은 할인된 리턴 $G_t$로 대체하여 추정합니다. $G_t$는 $q_{\pi_{\theta}}(S_t, A_t)$의 불편향 추정량(unbiased estimate)이기 때문입니다.
기본 업데이트 규칙:
하나의 에피소드를 $\{ s_0,a_0,r_1,s_1,a_1,r_2,\dots,s_{T-1},a_{T-1},r_T \}$ 와 같이 생성한 후, 에피소드가 끝나면 각 시점 $t$에 대해 파라미터 $\theta$를 다음과 같이 업데이트합니다.
$$ \theta\leftarrow\theta+\alpha\sum_{t=0}^{T-1}\nabla_{\theta}\log\pi_{\theta}(a_t\mid s_t)\cdot G_t $$

  • $\theta$: 정책 $\pi_{\theta}$의 파라미터.
  • $\alpha$: 학습률.
  • $\nabla_{\theta}\log\pi_{\theta}(a_t\mid s_t)$: 시점 $t$에서 실제로 취한 행동 $a_t$에 대한 스코어 함수.
  • $G_t=\sum_{k=t}^{T-1}\gamma^{k-t}r_{k+1}$: 시점 $t$에서의 리턴.

베이스라인을 이용한 분산 감소:
기본 REINFORCE 알고리즘은 리턴 $G_t$의 분산이 매우 커서 학습이 불안정하고 느릴 수 있습니다. 이를 해결하기 위해 베이스라인(baseline) $b(s_t)$를 도입합니다. 베이스라인은 리턴에서 빼주는 값으로, 행동 $a_t$와는 무관해야 합니다. 가장 흔히 사용되는 베이스라인은 상태 가치 함수 $v_{\pi}(s_t)$ 입니다.
$$ \theta\leftarrow\theta+\alpha\sum_{t=0}^{T-1}\nabla_{\theta}\log\pi_{\theta}(a_t\mid s_t)\cdot \big(G_t-b(s_t)\big) $$
$G_t - b(s_t)$는 어드밴티지 함수 $A(s_t, a_t)$의 추정치 역할을 합니다.

  • $G_t>b(s_t)$ (어드밴티지 양수): 실제 얻은 리턴이 평균보다 높았으므로, 행동 $a_t$의 확률을 높이는 방향으로 $\theta$를 업데이트합니다.
  • $G_t<b(s_t)$ (어드밴티지 음수): 실제 얻은 리턴이 평균보다 낮았으므로, 행동 $a_t$의 확률을 낮추는 방향으로 $\theta$를 업데이트합니다.

이 방법은 학습의 안정성을 크게 향상시켜, 현대의 정책 경사 알고리즘에서 필수적으로 사용됩니다.


11. 액터-크리틱(Actor-Critic)에서 액터와 크리틱의 손실 함수(또는 업데이트 목표)를 각각 수식으로 설명하세요.

액터-크리틱(Actor-Critic) 방법은 정책 기반(Policy-based) 방법과 가치 기반(Value-based) 방법을 결합한 구조입니다. REINFORCE의 높은 분산을 줄이고, TD 학습처럼 스텝마다 업데이트하여 학습 효율을 높이는 것을 목표로 합니다.
액터 (Actor): 정책 $\pi_{\theta}(a\mid s)$를 학습합니다. 어떤 상태에서 어떤 행동을 할지 결정하는 '행위자' 역할을 합니다.
크리틱 (Critic): 가치 함수(주로 상태 가치 함수 $V_{\phi}(s)$ 또는 행동 가치 함수 $Q_{\phi}(s,a)$)를 학습합니다. 액터가 한 행동이 얼마나 좋았는지를 '평가'하는 역할을 합니다. 파라미터는 각각 $\theta$와 $\phi$로 구분됩니다.
1. 크리틱 (Critic)의 업데이트:
크리틱의 목표는 가치 함수를 최대한 정확하게 추정하는 것입니다. 이는 TD 학습을 통해 이루어집니다. 상태 가치 함수 $V_{\phi}(S_t)$를 학습하는 경우, TD 오차를 최소화하는 것을 목표로 합니다.
TD 오차: $$\delta_t=R_{t+1}+\gamma V_{\phi}(S_{t+1})-V_{\phi}(S_t)$$
손실 함수 (Mean Squared Error):
$$ \mathcal{L}_V(\phi)=\mathbb{E}\big[(R_{t+1}+\gamma V_{\phi}(S_{t+1})-V_{\phi}(S_t))^2\big]=\mathbb{E}[\delta_t^{\,2}] $$
이 손실 함수를 $\phi$에 대해 경사 하강법으로 최적화합니다: $\phi\leftarrow\phi-\alpha_{\phi}\,\nabla_{\phi}\mathcal{L}_V(\phi)$.
2. 액터 (Actor)의 업데이트:
액터의 목표는 정책을 개선하여 더 높은 보상을 얻는 것입니다. 이는 정책 경사 정리를 따르지만, REINFORCE처럼 에피소드 전체의 리턴 $G_t$를 사용하는 대신, 크리틱이 계산한 TD 오차를 어드밴티지의 추정치로 사용합니다.
어드밴티지 추정치: $\hat{A}_t\approx\delta_t=R_{t+1}+\gamma V_{\phi}(S_{t+1})-V_{\phi}(S_t)$
업데이트 목표 (손실 함수의 음수): 액터는 어드밴티지가 높은 행동의 확률을 높이는 방향으로 학습합니다.
$$ \nabla_{\theta} J(\theta)\approx \mathbb{E}\!\left[\nabla_{\theta}\log\pi_{\theta}(A_t\mid S_t)\cdot \delta_t\right] $$
손실 함수 형태(경사 하강 최적화):
$$ \mathcal{L}_{\pi}(\theta)=-\mathbb{E}\!\left[\log\pi_{\theta}(A_t\mid S_t)\cdot \delta_t\right]\quad(\text{Note: }\delta_t\text{는 상수로 취급}) $$
이 손실 함수를 $\theta$에 대해 경사 하강법으로 최적화합니다: $\theta\leftarrow\theta-\alpha_{\theta}\,\nabla_{\theta}\mathcal{L}_{\pi}(\theta)$.
통합 목적 함수:
실제 구현에서는 액터 손실, 크리틱 손실, 그리고 탐색을 장려하기 위한 엔트로피 보너스 항을 결합하여 하나의 목적 함수로 최적화하는 경우가 많습니다 (예: A3C, PPO).
$$ \mathcal{L}(\theta,\phi)=\mathcal{L}_{\pi}(\theta)+c_v\,\mathcal{L}_V(\phi)-c_H\,\mathcal{H}(\pi_{\theta}(\cdot\mid S_t)) $$
$c_v,c_H$: 각 항의 가중치. $\mathcal{H}(\pi_{\theta})$: 정책의 엔트로피.


12. 심층 Q-네트워크(DQN)의 손실 함수를 수식으로 작성하세요.

심층 Q-네트워크(Deep Q-Network, DQN)는 기존의 Q-러닝에서 테이블 형태의 Q-함수를 심층 신경망으로 근사하는 알고리즘입니다. 고차원 상태 공간(예: 게임 화면 픽셀)을 직접 입력으로 받아 처리할 수 있지만, 학습 과정이 불안정해지는 문제를 해결하기 위해 경험 리플레이(Experience Replay)고정 타겟 네트워크(Fixed Target Network)라는 두 가지 핵심 기법을 도입했습니다.
DQN의 학습 목표는 Q-러닝과 마찬가지로 벨만 최적 방정식을 만족하는 Q-함수를 찾는 것입니다. 이를 위해 현재 네트워크의 예측값과, 타겟 네트워크가 생성한 '정답' 레이블(타겟 값)의 차이를 최소화하도록 학습합니다.
타겟 값 (Target):
타겟 값 $y$는 현재 Q-함수보다 더 안정적인 추정치를 제공하기 위해, 한동안 파라미터가 고정된 '타겟 네트워크'를 사용하여 계산됩니다. 이는 벨만 최적 방정식을 기반으로 합니다.
$$ y=r+\gamma \max_{a'} Q(s',a';\theta^{-})\quad (\text{만약 }s' \text{이 종료 상태이면 } y=r) $$
손실 함수 (Loss Function):
손실 함수는 타겟 값 $y$와 현재 '주 네트워크'가 예측한 Q값 사이의 평균 제곱 오차(Mean Squared Error)로 정의됩니다. 이 손실을 최소화하는 방향으로 주 네트워크의 파라미터 $\theta$를 업데이트합니다.
$$ \mathcal{L}(\theta)=\mathbb{E}_{(s,a,r,s')\sim U(D)}\!\left[\big(y-Q(s,a;\theta)\big)^2\right] $$

  • $Q(s,a;\theta)$: 현재 Q값을 예측하는 주 네트워크(main network). 파라미터 $\theta$는 매 스텝마다 업데이트됩니다.
  • $Q(s',a';\theta^-)$: 타겟 값을 계산하는 타겟 네트워크(target network). 파라미터 $\theta^-$는 주 네트워크의 파라미터 $\theta$를 주기적으로 복사하여 한동안 고정됩니다. 이는 학습 목표가 계속 흔들리는 것을 막아 학습을 안정화시킵니다.
  • $U(D)$: 경험 리플레이 버퍼(experience replay buffer) $D$에서 미니배치를 균등하게 샘플링하는 것을 의미합니다. 에이전트의 경험 $(s,a,r,s')$을 버퍼에 저장해두고 무작위로 샘플링하여 학습함으로써, 데이터 간의 시간적 상관관계를 줄여 학습 안정성을 높입니다.

13. 할인된 미래 보상의 총합, 즉 리턴(Return) $G_t$의 수식을 작성하세요.

리턴(Return) $G_t$는 강화학습에서 에이전트가 특정 시점 $t$로부터 에피소드가 끝날 때까지 얻게 될 보상들의 총합을 나타내는 핵심 개념입니다. 미래에 받을 보상은 현재 가치로 환산하기 위해 할인율(discount factor) $\gamma$를 적용합니다.
정의:
시점 $t$에서의 리턴 $G_t$는 시점 $t+1$에 받을 즉각적인 보상 $R_{t+1}$과 그 이후에 받을 모든 보상들을 할인율 $\gamma$로 할인하여 더한 값입니다.
$$ G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots=\sum_{k=0}^{\infty}\gamma^k R_{t+k+1} $$

  • $R_{t+k+1}$: 시점 $t+k$에서 행동을 취한 후 시점 $t+k+1$에 받는 보상.
  • $\gamma$: 할인율 ($0 \le \gamma \le 1$). 이 값이 0에 가까우면 에이전트는 즉각적인 보상에만 집중하게 되고(근시안적), 1에 가까우면 먼 미래의 보상까지 중요하게 고려합니다(원시안적). $\gamma < 1$이면 무한한 길이의 에피소드에서도 리턴 값이 수렴하는 것을 보장합니다.

재귀적 표현:
리턴의 정의는 다음과 같이 한 스텝의 보상과 다음 시점의 리턴으로 재귀적으로 표현할 수 있습니다. 이 관계는 벨만 방정식의 기초가 됩니다.
$$ G_t=R_{t+1}+\gamma G_{t+1} $$


14. PPO (Proximal Policy Optimization)의 클리핑(clipping)을 이용한 목적 함수(Objective Function)를 작성하세요.

PPO는 정책 경사 방법의 신뢰 영역(Trust Region) 아이디어를 구현하면서도, 복잡한 계산 없이 1차 미분만으로 안정적인 학습을 가능하게 한 알고리즘입니다. 핵심 아이디어는 이전 정책과 새 정책의 차이가 너무 커지지 않도록 '클리핑'을 통해 정책 업데이트의 크기를 제한하는 것입니다.
확률 비율 (Probability Ratio):
업데이트 전후의 정책 변화를 측정하기 위해, 현재 정책과 이전 정책(데이터를 수집한 정책)의 행동 확률 비율을 계산합니다.
$$ r_t(\theta)=\dfrac{\pi_{\theta}(a_t\mid s_t)}{\pi_{\theta_{\text{old}}}(a_t\mid s_t)} $$
클리핑 목적 함수 (Clipped Surrogate Objective):
PPO의 핵심으로, 정책 업데이트가 너무 과격하게 일어나는 것을 방지합니다. 어드밴티지가 양수일 때와 음수일 때를 나누어 업데이트에 상한과 하한을 둡니다.
$$ \mathcal{L}_{\text{CLIP}}(\theta)=\hat{\mathbb{E}}_t\!\left[\min\Big(r_t(\theta)\,\hat{A}_t,\ \text{clip}\big(r_t(\theta),1-\epsilon,1+\epsilon\big)\,\hat{A}_t\Big)\right] $$

  • $\hat{A}_t$: 시점 $t$에서의 어드밴티지 추정치.
  • $\text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)$: 확률 비율 $r_t(\theta)$를 $[1-\epsilon, 1+\epsilon]$ 범위 내로 강제로 제한합니다. $\epsilon$은 보통 0.1이나 0.2 같은 작은 값입니다.
  • $\min(\dots)$: 두 항 중 더 작은 값을 선택함으로써, 정책 업데이트로 인한 이득에 비관적인 하한(pessimistic bound)을 설정합니다. 이는 정책이 과도하게 변하는 것을 막아줍니다.

전체 목적 함수:
실제 PPO에서는 클리핑된 목적 함수 외에, 가치 함수를 정확하게 학습하기 위한 손실 항과 탐색을 장려하기 위한 엔트로피 보너스 항을 추가합니다.
$$ \mathcal{L}(\theta)=\hat{\mathbb{E}}_t\!\left[\mathcal{L}_{\text{CLIP}}(\theta)-c_1\big(V_{\theta}(s_t)-V^{\text{targ}}_t\big)^2+c_2\,\mathcal{H}(\pi_{\theta}(\cdot\mid s_t))\right] $$


15. 엔트로피 정규화(Entropy Regularization)가 포함된 정책 기반 강화학습의 목적 함수는 어떻게 수정되나요?

엔트로피 정규화는 정책 기반 강화학습에서 에이전트의 탐색(exploration)을 장려하고, 너무 빨리 결정론적인 정책으로 수렴하여 지역 최적해에 빠지는 것을 방지하기 위해 사용되는 기법입니다. 정책의 엔트로피가 높을수록 정책이 더 무작위적인 행동을 한다는 의미입니다.
엔트로피 (Entropy):
상태 $s$에서 정책 $\pi$의 엔트로피는 다음과 같이 정의됩니다. 정책이 특정 행동에 치우치지 않고 여러 행동을 고르게 선택할수록 엔트로피 값은 커집니다.
$$ H(\pi(\cdot\mid s))=-\sum_a \pi(a\mid s)\log\pi(a\mid s) $$
목적 함수 수정:
기존의 목적 함수(기대 리턴 최대화)에 엔트로피 항을 추가하여 새로운 목적 함수를 만듭니다. 에이전트는 이제 보상과 엔트로피의 가중합을 최적화하게 됩니다.
$$ J_{\text{entropy}}(\theta)=J(\theta)+\beta\,\mathbb{E}_{s\sim d^{\pi_{\theta}}}\!\left[H\big(\pi_{\theta}(\cdot\mid s)\big)\right] $$

  • $J(\theta)$: 기존의 목적 함수 (기대 리턴).
  • $\beta$: 엔트로피 보너스의 가중치를 조절하는 하이퍼파라미터. 이 값이 클수록 에이전트는 더 탐색적인 행동을 하도록 장려됩니다.

또는, 매 스텝마다 받는 보상에 엔트로피 보너스를 직접 더하는 형태로도 생각할 수 있습니다.
$$ J_{\text{entropy}}(\theta)=\mathbb{E}_{\pi_{\theta}}\!\left[\sum_{t=0}^{\infty}\gamma^t \Big(R_{t+1}+\beta\,H(\pi_{\theta}(\cdot\mid S_t))\Big)\right] $$


16. 생성 모델의 목표를 확률 분포를 이용하여 수학적으로 정의하세요.

생성 모델(Generative Model)의 근본적인 목표는 주어진 훈련 데이터셋이 생성되었을 것으로 추정되는 실제 데이터의 확률 분포 $p_{\text{data}}(\mathbf{x})$를 학습하는 것입니다. 모델은 파라미터 $\theta$를 갖는 확률 분포 $p_{\theta}(\mathbf{x})$를 정의하고, 이 모델 분포가 실제 데이터 분포와 최대한 유사해지도록 파라미터 $\theta$를 조정합니다.
수학적 목표:
생성 모델의 목표는 모델 분포 $p_{\theta}(\mathbf{x})$를 실제 데이터 분포 $p_{\text{data}}(\mathbf{x})$에 근사시키는 것입니다.
$$ p_{\theta}(\mathbf{x})\approx p_{\text{data}}(\mathbf{x}) $$
이를 최적화 문제로 표현하면, 두 확률 분포 사이의 차이 또는 거리(Divergence/Distance)를 측정하는 척도 $D$를 최소화하는 파라미터 $\theta^*$를 찾는 것입니다.
$$ \theta^{*}=\arg\min_{\theta}\,D\!\big(p_{\text{data}}(\mathbf{x})\,\|\,p_{\theta}(\mathbf{x})\big) $$

  • $p_{\text{data}}(\mathbf{x})$: 우리가 접근할 수 없는 실제 데이터의 분포. 훈련 데이터는 이 분포로부터 샘플링된 것입니다.
  • $p_{\theta}(\mathbf{x})$: 파라미터 $\theta$를 가진 우리 모델이 정의하는 확률 분포.
  • $D(\cdot\|\cdot)$: 두 확률 분포 간의 차이를 측정하는 함수. 어떤 척도를 사용하느냐에 따라 생성 모델의 종류가 달라집니다.
    • 쿨백-라이블러 발산 (KL Divergence): VAE, 자기회귀 모델 등에서 사용.
    • 젠슨-섀넌 발산 (Jensen-Shannon Divergence): GAN에서 사용.
    • 바서슈타인 거리 (Wasserstein Distance): WGAN에서 사용.

17. 생성 모델 학습을 위한 최대 가능도 추정(MLE)의 목적 함수를 작성하세요.

최대 가능도 추정(Maximum Likelihood Estimation, MLE)은 생성 모델을 학습시키는 가장 기본적인 원리 중 하나입니다. MLE의 아이디어는, 주어진 훈련 데이터셋 $\{\mathbf{x}^{(1)}, \dots, \mathbf{x}^{(m)}\}$이 우리 모델 $p_{\theta}(\mathbf{x})$로부터 생성되었을 가능성(Likelihood)을 최대로 만드는 파라미터 $\theta$를 찾는 것입니다.
가능도 (Likelihood):
훈련 데이터셋 전체에 대한 가능도는 각 데이터 포인트에 대한 확률의 곱으로 정의됩니다 (데이터가 독립적이고 동일하게 분포되었다고 가정).
$$ L(\theta)=\prod_{i=1}^{m} p_{\theta}(\mathbf{x}^{(i)}) $$
로그 가능도 최대화 (Log-Likelihood Maximization):
곱셈 연산은 미분과 최적화에 불편하므로, 단조 증가 함수인 로그를 취해 덧셈 연산으로 변환합니다. 이를 로그 가능도라고 하며, 로그 가능도를 최대화하는 것은 원래의 가능도를 최대화하는 것과 같습니다.
$$ \theta^{\text{MLE}}=\arg\max_{\theta}\sum_{i=1}^{m}\log p_{\theta}(\mathbf{x}^{(i)})=\arg\max_{\theta}\,\mathbb{E}_{\mathbf{x}\sim \hat{p}_{\text{data}}}\![\log p_{\theta}(\mathbf{x})] $$

  • $\hat{p}_{\text{data}}$: 훈련 데이터셋으로 정의되는 경험적 데이터 분포.

손실 함수로서의 음의 로그 가능도 (NLL):
대부분의 최적화 라이브러리는 손실 함수를 '최소화'하도록 설계되어 있으므로, 실제 구현에서는 로그 가능도를 최대화하는 대신, 음의 로그 가능도(Negative Log-Likelihood, NLL)를 손실 함수로 정의하고 이를 최소화합니다.
$$ \text{Loss}(\theta)=-\sum_{i=1}^{m}\log p_{\theta}(\mathbf{x}^{(i)}) $$


18. 변이형 오토인코더(VAE)의 목적 함수인 증거 하한(ELBO)을 수식으로 작성하세요.

변이형 오토인코더(Variational Autoencoder, VAE)는 잠재 변수(latent variable) $\mathbf{z}$를 사용하여 데이터 $\mathbf{x}$를 생성하는 모델입니다. VAE는 데이터의 로그 가능도 $\log p_{\theta}(\mathbf{x})$를 직접 최대화하기 어렵기 때문에, 대신 계산 가능한 '증거 하한(Evidence Lower Bound, ELBO)'을 최대화하는 방식으로 학습합니다. ELBO는 이름 그대로 항상 실제 로그 가능도보다 작거나 같다는 것이 수학적으로 보장됩니다 ($\log p_{\theta}(\mathbf{x}) \ge \text{ELBO}$).
ELBO 수식:
ELBO는 두 가지 주요 항으로 구성됩니다: 재구성 항과 정규화 항.
$$ \log p_{\theta}(\mathbf{x})\ge \mathcal{L}_{\text{ELBO}}(\theta,\phi;\mathbf{x})=\mathbb{E}_{\mathbf{z}\sim q_{\phi}(\mathbf{z}\mid \mathbf{x})}\!\big[\log p_{\theta}(\mathbf{x}\mid \mathbf{z})\big]-D_{\text{KL}}\!\big(q_{\phi}(\mathbf{z}\mid \mathbf{x})\ \|\ p(\mathbf{z})\big) $$

  • $\mathbb{E}_{\mathbf{z}\sim q_{\phi}(\mathbf{z}\mid \mathbf{x})}\!\big[\log p_{\theta}(\mathbf{x}\mid \mathbf{z})\big]$: 재구성 로그 가능도 (Reconstruction Log-likelihood)입니다. 인코더 $q_{\phi}$가 만든 잠재 변수 $\mathbf{z}$로부터 디코더 $p_{\theta}$가 원본 데이터 $\mathbf{x}$를 얼마나 잘 복원하는지를 측정합니다. 이 값을 최대화하는 것은 원본과 복원된 데이터 사이의 차이를 줄이는 것과 같습니다.
  • $D_{\text{KL}}\!\big(q_{\phi}(\mathbf{z}\mid \mathbf{x})\ \|\ p(\mathbf{z})\big)$: KL 발산 (KL Divergence) 항입니다. 인코더가 만들어내는 잠재 공간의 분포 $q_{\phi}(\mathbf{z}\mid \mathbf{x})$와, 우리가 사전에 정의한 간단한 사전 분포(prior) $p(\mathbf{z})$ (보통 표준 정규 분포 $\mathcal{N}(0, I)$) 사이의 차이를 측정합니다. 이 항은 잠재 공간이 너무 복잡해지지 않고 잘 정돈된 구조를 갖도록 하는 정규화(regularization) 역할을 합니다.

학습 목표:
VAE는 인코더(파라미터 $\phi$)와 디코더(파라미터 $\theta$)를 동시에 학습하여 ELBO를 최대화합니다.
$$ (\theta^{*},\phi^{*})=\arg\max_{\theta,\phi}\ \mathcal{L}_{\text{ELBO}} $$


19. VAE에서 사용되는 재매개변수화 트릭(Reparameterization Trick)을 수식으로 설명하세요.

VAE를 학습시키기 위해서는 ELBO 목적 함수를 인코더 파라미터 $\phi$에 대해 미분하여 경사 하강법을 적용해야 합니다. 하지만 ELBO의 재구성 항 $\mathbb{E}_{\mathbf{z}\sim q_{\phi}}[\dots]$ 에는 문제가 있습니다. 잠재 변수 $\mathbf{z}$를 확률 분포 $q_{\phi}(\mathbf{z}\mid \mathbf{x})$로부터 '샘플링'하는 과정이 포함되어 있는데, 이 샘플링 연산은 미분이 불가능하여 그래디언트가 인코더로 전달되지 않습니다.
재매개변수화 트릭은 이 문제를 해결하기 위한 기법입니다.
기본 아이디어:
샘플링 과정을 파라미터 $\phi$와 무관한 외부의 무작위성과, 파라미터 $\phi$에 의존하는 결정론적(deterministic)인 부분으로 분리합니다.
수식:
인코더가 출력하는 잠재 분포가 평균 $\mu_{\phi}(\mathbf{x})$와 분산 $\sigma_{\phi}^{2}(\mathbf{x})$를 갖는 정규 분포라고 가정합시다: $q_{\phi}(\mathbf{z}\mid \mathbf{x})=\mathcal{N}\big(\mathbf{z};\mu_{\phi}(\mathbf{x}),\sigma_{\phi}^{2}(\mathbf{x})\mathbf{I}\big)$
이때 $\mathbf{z}$를 직접 샘플링하는 대신, 먼저 파라미터가 없는 표준 정규 분포에서 노이즈 $\boldsymbol{\epsilon}$을 샘플링합니다. 그 후 이 노이즈를 인코더의 출력인 평균과 표준편차를 이용해 스케일링하고 이동시켜 $\mathbf{z}$를 생성합니다.
$$ \boldsymbol{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I}),\quad \mathbf{z}=\mu_{\phi}(\mathbf{x})+\sigma_{\phi}(\mathbf{x})\odot \boldsymbol{\epsilon} $$
이제 샘플링 과정은 $\boldsymbol{\epsilon}$에서만 일어나고, $\mathbf{z}$는 $\mu_{\phi}$와 $\sigma_{\phi}$에 대한 미분 가능한 결정론적 함수가 되었습니다. 따라서 재구성 항의 기댓값을 다음과 같이 변형하여 그래디언트를 계산할 수 있습니다.
$$ \mathbb{E}_{\mathbf{z}\sim q_{\phi}}\![\log p_{\theta}(\mathbf{x}\mid \mathbf{z})]=\mathbb{E}_{\boldsymbol{\epsilon}\sim\mathcal{N}(0,I)}\![\log p_{\theta}(\mathbf{x}\mid \mu_{\phi}(\mathbf{x})+\sigma_{\phi}(\mathbf{x})\odot \boldsymbol{\epsilon})] $$


20. 기본 GAN(Generative Adversarial Network)의 목적 함수인 Minimax 목적 함수를 작성하세요.

생성적 적대 신경망(GAN)은 두 개의 신경망, 즉 생성자(Generator, G)와 판별자(Discriminator, D)가 서로 경쟁하며 학습하는 프레임워크입니다. 생성자는 실제 데이터와 유사한 가짜 데이터를 만들려고 하고, 판별자는 주어진 데이터가 실제인지 가짜인지 구별하려고 합니다. 이 둘의 경쟁은 제로섬 게임(zero-sum game)으로, Minimax 목적 함수로 표현됩니다.
Minimax 목적 함수:
$$ \min_{G}\max_{D}\ V(D,G)=\mathbb{E}_{\mathbf{x}\sim p_{\text{data}}}\![\log D(\mathbf{x})]+\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}\![\log(1-D(G(\mathbf{z})))] $$

  • $G$: 생성자. 잠재 벡터 $\mathbf{z}$를 입력받아 가짜 데이터 $G(\mathbf{z})$를 출력.
  • $D$: 판별자. 데이터 $\mathbf{x}$를 입력받아 실제 데이터일 확률 $D(\mathbf{x})$를 출력 (0~1 사이의 값).
  • $p_{\text{data}}$: 실제 데이터의 분포.
  • $p_{\mathbf{z}}$: 잠재 벡터 $\mathbf{z}$의 분포 (보통 정규 분포 또는 균등 분포).

해석:

  • $\max_{D} V(D,G)$ (판별자의 목표): 판별자 $D$는 가치 함수 $V(D,G)$를 최대화하려고 합니다.
    • $\mathbb{E}_{\mathbf{x}\sim p_{\text{data}}}\![\log D(\mathbf{x})]$: 실제 데이터 $\mathbf{x}$에 대해서는 $D(\mathbf{x})$가 1에 가까워지도록 (로그 값이 0에 가깝도록) 학습합니다.
    • $\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}\![\log(1-D(G(\mathbf{z})))]$: 생성자가 만든 가짜 데이터 $G(\mathbf{z})$에 대해서는 $D(G(\mathbf{z}))$가 0에 가까워지도록 (로그 값이 0에 가깝도록) 학습합니다.
  • $\min_{G} V(D,G)$ (생성자의 목표): 생성자 $G$는 $V(D,G)$를 최소화하려고 합니다. 생성자는 $D(\mathbf{x})$ 항에 영향을 줄 수 없으므로, $\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}\![\log(1-D(G(\mathbf{z})))]$ 항만 최소화합니다. 이는 $D(G(\mathbf{z}))$를 1에 가깝게 만들어 판별자를 속이는 것과 같습니다.

이론적으로 최적점에서는 생성자의 분포 $p_g$가 실제 데이터 분포 $p_{\text{data}}$와 같아지고, 판별자는 어떤 데이터든 실제일 확률을 $\tfrac{1}{2}$로 출력하게 됩니다.


21. GAN 학습 시, 판별자(Discriminator)의 손실 함수를 수식으로 작성하세요.

GAN 학습 과정에서 판별자의 역할은 실제 데이터와 생성자가 만든 가짜 데이터를 최대한 잘 구별하는 것입니다. 이는 이진 분류(binary classification) 문제와 동일하며, 판별자는 실제 데이터에 대해서는 높은 값(이상적으로 1)을, 가짜 데이터에 대해서는 낮은 값(이상적으로 0)을 출력하도록 학습됩니다.
판별자의 목표와 손실 함수:
판별자는 Minimax 목적 함수 $V(D,G)$를 최대화하는 것을 목표로 합니다. 대부분의 최적화 프레임워크는 손실 함수를 '최소화'하므로, 실제 구현에서는 $V(D,G)$에 음수를 취한 값을 손실 함수로 정의하고, 이를 경사 하강법을 통해 최소화합니다.
$$ \mathcal{L}_D(\psi)=-\Big(\mathbb{E}_{\mathbf{x}\sim p_{\text{data}}}\![\log D_{\psi}(\mathbf{x})]+\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}\![\log(1-D_{\psi}(G_{\theta}(\mathbf{z})))]\Big) $$

  • $\psi$: 판별자 네트워크의 파라미터.
  • $\theta$: 생성자 네트워크의 파라미터 (판별자 학습 시에는 상수로 고정).
  • $\mathbb{E}[\dots]$: 실제 구현에서는 훈련 데이터셋의 미니배치와, 생성자가 만든 가짜 데이터의 미니배치에 대한 평균으로 근사됩니다.

이 손실 함수는 이진 교차 엔트로피(Binary Cross-Entropy) 손실의 형태와 동일합니다. 첫 번째 항은 실제 데이터에 대한 레이블 1과의 손실을, 두 번째 항은 가짜 데이터에 대한 레이블 0과의 손실을 계산합니다.


22. GAN 학습 시, 생성자(Generator)의 손실 함수를 non-saturating Loss 형태로 작성하세요.

GAN 학습 초기에는 생성자가 만드는 가짜 데이터의 품질이 매우 낮아 판별자가 쉽게 구별합니다. 즉, $D(G(\mathbf{z}))$ 값이 0에 매우 가깝습니다. 이 경우, 원래 Minimax 목적 함수에서 생성자가 최소화해야 할 항인 $\log(1-D(G(\mathbf{z})))$의 그래디언트가 매우 작아지는 문제(vanishing gradient)가 발생하여 학습이 거의 이루어지지 않습니다. 이를 'saturating' 문제라고 합니다.
Non-Saturating Loss:
이 문제를 해결하기 위해, 실제 구현에서는 생성자의 목표를 "$\log(1-D)$를 최소화"하는 대신 "$\log D$를 최대화"하는 것으로 변경합니다. 두 목표 모두 $D(G(\mathbf{z}))$를 1로 만드는 것을 지향하지만, 후자는 학습 초기에 훨씬 강한 그래디언트를 제공합니다. 이를 Non-Saturating Loss라고 합니다.
손실 함수(최소화 목표)로 표현하면 다음과 같습니다.
$$ \mathcal{L}_G^{\text{non-sat}}=-\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}\![\log D(G(\mathbf{z}))] $$
이 손실 함수를 최소화하는 것은 판별자가 생성된 이미지를 실제라고 판단할 확률($D(G(\mathbf{z}))$)의 로그 값을 최대화하는 것과 같습니다. 이 방식은 원래의 Minimax 게임과는 다르지만, 실제로는 더 안정적이고 빠른 학습을 가능하게 하여 표준적인 GAN 구현에서 널리 사용됩니다.


23. WGAN (Wasserstein GAN)의 목적 함수를 작성하세요.

WGAN은 기존 GAN의 불안정한 학습 문제를 해결하고, 생성자의 성능을 더 의미 있게 측정할 수 있는 손실 함수를 제공하기 위해 제안되었습니다. WGAN은 두 확률 분포 간의 거리를 측정하는 방식으로 JS 발산 대신 바서슈타인 거리(Wasserstein-1 distance, 또는 Earth-Mover's distance)를 사용합니다.
칸토로비치-루빈스타인 이중성 (Kantorovich-Rubinstein Duality):
바서슈타인 거리는 직접 계산하기 어렵지만, 이 이중성 원리에 따라 1-립시츠(1-Lipschitz) 연속인 함수 집합 상에서 다음과 같이 표현할 수 있습니다. WGAN에서는 판별자를 대체하는 '크리틱(critic)'이 이 1-립시츠 함수 $f_w$를 근사합니다.
WGAN 목적 함수:
$$ \min_{G}\max_{w \in \mathcal{W}}\ \mathbb{E}_{\mathbf{x}\sim p_{\text{data}}}\![f_w(\mathbf{x})]-\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}\![f_w(G(\mathbf{z}))] $$

  • $f_w$: 파라미터 $w$를 가진 크리틱 네트워크. 기존 GAN의 판별자와 달리, 확률을 출력할 필요가 없으므로 마지막에 시그모이드 함수가 없습니다.
  • $\max_{w \in \mathcal{W}}$: 크리틱 $f_w$가 1-립시츠 제약을 만족하는 함수 공간 $\mathcal{W}$ 내에서, 실제 데이터의 점수와 가짜 데이터의 점수 간의 차이를 최대화하는 것을 의미합니다.

WGAN의 크리틱은 데이터를 분류하는 대신 점수(score)를 매깁니다. 생성자는 크리틱이 가짜 데이터에 매기는 점수를 최대화하여, 실제 데이터의 점수에 가깝게 만들려고 합니다. 원 논문에서는 1-립시츠 제약을 강제하기 위해 크리틱의 가중치를 특정 범위로 클리핑(clipping)하는 간단한 방법을 사용했습니다.


24. WGAN-GP의 그래디언트 페널티(Gradient Penalty) 항을 수식으로 작성하세요.

WGAN에서 1-립시츠 제약을 강제하기 위해 사용된 가중치 클리핑은 학습을 불안정하게 만들거나 모델의 표현력을 저해하는 부작용이 있었습니다. WGAN-GP(Wasserstein GAN with Gradient Penalty)는 이 문제를 해결하기 위해, 크리틱의 그래디언트 노름(norm)이 1이 되도록 직접적으로 제약하는 '그래디언트 페널티' 항을 손실 함수에 추가하는 방식을 제안했습니다.
그래디언트 페널티 (Gradient Penalty):
페널티는 실제 데이터와 가짜 데이터 사이를 보간(interpolate)한 임의의 지점 $\hat{\mathbf{x}}$에서 크리틱의 그래디언트 노름을 계산하고, 이 값이 1에서 벗어날수록 페널티를 부과합니다.
먼저, 보간된 샘플 $\hat{\mathbf{x}}$를 정의합니다: $$\hat{\mathbf{x}}=\epsilon\,\mathbf{x}+(1-\epsilon)\,\tilde{\mathbf{x}},\quad \text{여기서 } \mathbf{x}\sim p_{\text{data}}, \tilde{\mathbf{x}}\sim p_g, \epsilon\sim \mathcal{U}[0,1]$$
이를 이용한 그래디언트 페널티 항은 다음과 같습니다:
$$ \mathcal{L}_{\text{GP}}=\lambda\,\mathbb{E}_{\hat{\mathbf{x}}}\!\left[\big(\|\nabla_{\hat{\mathbf{x}}} D(\hat{\mathbf{x}})\|_2-1\big)^2\right] $$

  • $\|\nabla_{\hat{\mathbf{x}}} D(\hat{\mathbf{x}})\|_2$: 크리틱(판별자) $D$의 입력 $\hat{\mathbf{x}}$에 대한 그래디언트의 L2 노름.
  • $\lambda$: 페널티의 강도를 조절하는 하이퍼파라미터 (보통 10).

전체 크리틱 손실:
WGAN-GP의 크리틱은 원래 WGAN의 목적 함수와 그래디언트 페널티 항을 더한 값을 손실 함수로 사용하여 학습합니다.
$$ \mathcal{L}_D=\Big(\mathbb{E}_{\mathbf{z}}[D(G(\mathbf{z}))]-\mathbb{E}_{\mathbf{x}}[D(\mathbf{x})]\Big)+\lambda\,\mathcal{L}_{\text{GP}} $$


25. 자기회귀 모델(Autoregressive Model)에서 이미지나 시퀀스의 결합 확률 분포를 어떻게 인수분해하는지 수식으로 보이세요.

자기회귀(Autoregressive) 모델은 데이터의 결합 확률 분포(joint probability distribution)를 조건부 확률(conditional probability)의 곱으로 인수분해하여 모델링하는 생성 모델의 한 종류입니다. 이는 확률의 연쇄 법칙(chain rule of probability)을 직접적으로 적용한 것입니다.
결합 확률 분포의 인수분해:
$T$개의 원소로 구성된 데이터 $\mathbf{x}=(x_1, \dots, x_T)$(예: 시계열 데이터, 1차원으로 펼친 이미지 픽셀)의 결합 확률 분포 $p(\mathbf{x})$는 다음과 같이 표현됩니다.
$$ p(\mathbf{x}) = p(x_1, x_2, \dots, x_T) = p(x_1) \cdot p(x_2|x_1) \cdot p(x_3|x_1, x_2) \cdots p(x_T|x_1, \dots, x_{T-1}) $$
이를 간결하게 곱셈 기호로 나타내면 다음과 같습니다.
$$ p(\mathbf{x})=\prod_{t=1}^{T} p(x_t\mid x_{<t}) $$

  • $p(x_t \mid x_{<t})$: 이전 시점까지의 모든 원소들($x_1, \dots, x_{t-1}$)이 주어졌을 때, 현재 시점의 원소 $x_t$가 나타날 조건부 확률입니다.

학습:
자기회귀 모델은 이 인수분해된 형태의 음의 로그 가능도(NLL)를 최소화하는 방식으로 학습됩니다. 즉, 각 시점에서 이전 시퀀스를 바탕으로 다음 원소를 정확하게 예측하도록 학습합니다.
$$ \text{Loss}(\theta) = -\log p_{\theta}(\mathbf{x}) = -\sum_{t=1}^{T}\log p_{\theta}(x_t\mid x_{<t}) $$
PixelRNN, WaveNet, Transformer와 같은 모델들이 이 원리를 기반으로 합니다.


26. 정규화 흐름(Normalizing Flows) 모델의 핵심 원리인 변수 변환 공식(Change of Variables Formula)을 작성하세요.

정규화 흐름(Normalizing Flows)은 간단한 확률 분포(예: 가우시안)를 갖는 잠재 변수 $\mathbf{z}$를, 일련의 미분 가능한 가역 변환(invertible transformations) 함수 $f$를 통해 복잡한 데이터 분포를 갖는 변수 $\mathbf{x}$로 변환하는 생성 모델입니다. 이 모델의 핵심적인 수학적 기반은 '변수 변환 공식'입니다.
변수 변환 공식:
잠재 변수 $\mathbf{z}$의 분포를 $p_Z(\mathbf{z})$라고 하고, 가역 함수 $\mathbf{x} = f(\mathbf{z})$ (따라서 $\mathbf{z} = f^{-1}(\mathbf{x})$)를 통해 변환된 변수 $\mathbf{x}$의 분포를 $p_X(\mathbf{x})$라고 할 때, 두 분포 사이의 관계는 다음과 같습니다.
$$ p_X(\mathbf{x})=p_Z\!\big(f^{-1}(\mathbf{x})\big)\left|\det\left(\frac{\partial f^{-1}(\mathbf{x})}{\partial \mathbf{x}}\right)\right| $$

  • $p_Z(f^{-1}(\mathbf{x}))$: $\mathbf{x}$에 해당하는 원래의 잠재 변수 $\mathbf{z}$에서의 확률 밀도.
  • $\frac{\partial f^{-1}(\mathbf{x})}{\partial \mathbf{x}}$: 역함수 $f^{-1}$의 야코비 행렬(Jacobian matrix).
  • $|\det(\dots)|$: 야코비 행렬의 행렬식(determinant)의 절댓값. 이는 변환 $f$가 국소적으로 공간을 얼마나 늘리거나 줄이는지를 나타내는 스케일링 팩터 역할을 합니다.

로그 가능도 학습:
이 공식을 이용하면 데이터 $\mathbf{x}$의 로그 가능도를 정확하게 계산할 수 있습니다. 이는 정규화 흐름 모델을 최대 가능도 추정(MLE)으로 직접 학습할 수 있게 해줍니다.
$$ \log p_X(\mathbf{x})=\log p_Z(f^{-1}(\mathbf{x}))+\log\left|\det J_{f^{-1}}(\mathbf{x})\right| $$
실제 모델에서는 간단한 변환 함수들을 여러 개 연쇄적으로 적용($\mathbf{x} = f_K(\dots f_2(f_1(\mathbf{z}))\dots)$)하여 복잡한 분포를 표현하며, 이때 로그 행렬식 항은 각 변환의 로그 행렬식의 합으로 누적됩니다.


27. DDPM의 순방향 과정(Forward Process)에서 $q(\mathbf{x}_t\mid \mathbf{x}_0)$를 수식으로 나타내세요.

확산 모델(Denoising Diffusion Probabilistic Models, DDPM)의 순방향 과정(또는 확산 과정)은 원본 데이터 $\mathbf{x}_0$에 점진적으로 가우시안 노이즈를 추가하여, 최종적으로는 순수한 가우시안 노이즈 $\mathbf{x}_T$로 변환하는 고정된 마르코프 연쇄입니다.
한 스텝 전이 (One-step transition):
각 스텝 $t$에서, 이전 스텝의 이미지 $\mathbf{x}_{t-1}$에 분산이 $\beta_t$인 작은 가우시안 노이즈를 추가하여 $\mathbf{x}_t$를 생성합니다.
$$ q(\mathbf{x}_t\mid \mathbf{x}_{t-1})=\mathcal{N}\!\left(\mathbf{x}_t;\sqrt{1-\beta_t}\,\mathbf{x}_{t-1},\,\beta_t \mathbf{I}\right) $$

  • $\beta_t$: 스텝 $t$에서 추가되는 노이즈의 양을 조절하는 하이퍼파라미터 (미리 정해진 스케줄).

$t$ 스텝 후의 분포 $q(\mathbf{x}_t\mid \mathbf{x}_0)$:
이 과정의 중요한 속성은, 중간 단계 없이 원본 이미지 $\mathbf{x}_0$에서 바로 특정 시점 $t$의 노이즈 섞인 이미지 $\mathbf{x}_t$를 샘플링할 수 있다는 것입니다. 이는 재매개변수화 트릭을 통해 유도됩니다.
$\alpha_t=1-\beta_t$ 이고 $\bar{\alpha}_t=\prod_{s=1}^{t}\alpha_s$ 라고 정의할 때, $q(\mathbf{x}_t\mid \mathbf{x}_0)$는 다음과 같은 닫힌 형태(closed-form)의 정규 분포를 따릅니다.
$$ q(\mathbf{x}_t\mid \mathbf{x}_0)=\mathcal{N}\!\left(\mathbf{x}_t;\sqrt{\bar{\alpha}_t}\,\mathbf{x}_0,\ (1-\bar{\alpha}_t)\mathbf{I}\right) $$
이를 재매개변수화 트릭으로 표현하면, 표준 정규 분포에서 샘플링한 노이즈 $\boldsymbol{\epsilon}$을 이용하여 $\mathbf{x}_t$를 직접 생성할 수 있습니다.
$$ \mathbf{x}_t=\sqrt{\bar{\alpha}_t}\,\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\,\boldsymbol{\epsilon},\quad \text{여기서 }\boldsymbol{\epsilon}\sim\mathcal{N}(0,\mathbf{I}) $$
이 공식은 모델 학습 시, 임의의 $t$와 훈련 데이터 $\mathbf{x}_0$로부터 학습 샘플 $\mathbf{x}_t$를 효율적으로 생성하는 데 사용됩니다.


28. DDPM의 역방향 과정(Reverse Process)에서 모델이 예측하려는 목표와 단순화된 손실 $L_{\text{simple}}$을 설명하세요.

DDPM의 역방향 과정(또는 디노이징 과정)은 순방향 과정과 반대로, 순수한 노이즈 $\mathbf{x}_T$에서 시작하여 점진적으로 노이즈를 제거함으로써 원본 데이터와 유사한 샘플 $\mathbf{x}_0$를 생성하는 것을 목표로 합니다. 이 과정은 신경망을 사용하여 학습되는 마르코프 연쇄입니다.
역방향 마르코프 연쇄:
$$ p_{\theta}(\mathbf{x}_{0:T})=p(\mathbf{x}_T)\prod_{t=1}^{T}p_{\theta}(\mathbf{x}_{t-1}\mid \mathbf{x}_t) $$
모델의 예측 목표:
역방향 전이 확률 $p_{\theta}(\mathbf{x}_{t-1}\mid \mathbf{x}_t)$의 평균을 직접 예측하는 대신, DDPM은 $\mathbf{x}_t$를 만드는 데 사용된 노이즈 $\boldsymbol{\epsilon}$을 예측하도록 모델 $\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_t, t)$를 학습시킵니다. 이는 수학적으로 더 안정적이고 좋은 성능을 보입니다.
단순화된 손실 함수 (Simplified Loss):
DDPM의 전체 목적 함수는 복잡한 변분 하한(variational lower bound)이지만, 저자들은 가중치를 무시한 단순화된 목적 함수가 실제로는 더 좋은 성능을 보인다는 것을 발견했습니다. 이 손실 함수는 각 스텝 $t$에서 실제 추가된 노이즈 $\boldsymbol{\epsilon}$과 모델이 예측한 노이즈 $\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_t, t)$ 사이의 평균 제곱 오차(MSE)를 최소화하는 것을 목표로 합니다.
$$ L_{\text{simple}}(\theta)=\mathbb{E}_{t,\mathbf{x}_0,\boldsymbol{\epsilon}}\!\left[\left\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_t,t)\right\|_2^2\right] $$

  • $\mathbb{E}_{t,\mathbf{x}_0,\boldsymbol{\epsilon}}$: 훈련 스텝 $t$를 균등하게 샘플링하고, 훈련 데이터 $\mathbf{x}_0$를 샘플링하고, 표준 정규 분포에서 노이즈 $\boldsymbol{\epsilon}$을 샘플링하는 것에 대한 기댓값.
  • $\mathbf{x}_t$: 순방향 공식을 이용해 생성된 노이즈 섞인 이미지. $\mathbf{x}_t=\sqrt{\bar{\alpha}_t}\,\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\,\boldsymbol{\epsilon}$

모델은 모든 노이즈 레벨 $t$에 대해 입력된 이미지 $\mathbf{x}_t$에서 원본 노이즈 $\boldsymbol{\epsilon}$를 복원하도록 학습됩니다.


29. CycleGAN의 전체 목적 함수를 수식으로 설명하세요.

CycleGAN은 서로 다른 두 도메인(예: 말 사진과 얼룩말 사진) 간의 이미지 변환을 학습하는 모델로, 핵심적인 특징은 쌍을 이루지 않은(unpaired) 데이터셋을 사용할 수 있다는 점입니다. 이를 위해 '순환 일관성 손실(cycle-consistency loss)'이라는 개념을 도입합니다.
모델은 두 개의 생성자($G: X \to Y$, $F: Y \to X$)와 두 개의 판별자($D_X, D_Y$)로 구성됩니다.
1. 적대적 손실 (Adversarial Loss):
각 생성자는 변환된 이미지가 타겟 도메인의 실제 이미지처럼 보이도록 학습합니다. 이는 표준적인 GAN 손실과 동일합니다.
$$ \mathcal{L}_{\text{GAN}}(G,D_Y)=\mathbb{E}_{y\sim p_{\text{data}}(y)}[\log D_Y(y)]+\mathbb{E}_{x\sim p_{\text{data}}(x)}[\log(1-D_Y(G(x)))] $$
$$ \mathcal{L}_{\text{GAN}}(F,D_X)=\mathbb{E}_{x\sim p_{\text{data}}(x)}[\log D_X(x)]+\mathbb{E}_{y\sim p_{\text{data}}(y)}[\log(1-D_X(F(y)))] $$
2. 순환 일관성 손실 (Cycle-Consistency Loss):
이것이 CycleGAN의 핵심입니다. 이미지를 한 도메인에서 다른 도메인으로 변환했다가 다시 원래 도메인으로 변환하면, 결과물은 원래 이미지와 동일해야 한다는 제약입니다. 이는 변환이 내용(content)은 유지한 채 스타일(style)만 바꾸도록 유도합니다.
$$ \mathcal{L}_{\text{cyc}}(G,F)=\mathbb{E}_{x \sim p_{\text{data}}(x)}[\|F(G(x))-x\|_1]+\mathbb{E}_{y \sim p_{\text{data}}(y)}[\|G(F(y))-y\|_1] $$

  • $\| \cdot \|_1$: L1 노름을 사용합니다.

3. 전체 목적 함수 (Full Objective):
전체 목적 함수는 두 종류의 손실을 가중합한 것입니다. 생성자는 이 목적 함수를 최소화하고, 판별자는 최대화하려고 합니다.
$$ \mathcal{L}(G,F,D_X,D_Y)=\mathcal{L}_{\text{GAN}}(G,D_Y)+\mathcal{L}_{\text{GAN}}(F,D_X)+\lambda\,\mathcal{L}_{\text{cyc}}(G,F) $$

  • $\lambda$: 순환 일관성 손실의 중요도를 조절하는 가중치.

최종적인 최적화 목표는 다음과 같은 Minimax 게임입니다.
$$ G^{*},F^{*}=\arg\min_{G,F}\ \max_{D_X,D_Y}\ \mathcal{L}(G,F,D_X,D_Y) $$


30. 조건부 GAN(Conditional GAN, cGAN)의 목적 함수를 수식으로 작성하세요.

조건부 GAN(Conditional GAN, cGAN)은 표준 GAN을 확장하여, 생성자와 판별자가 추가적인 정보(조건, $y$)를 입력으로 받도록 만든 모델입니다. 이 조건 $y$는 클래스 레이블, 텍스트 설명, 다른 이미지 등 다양한 형태가 될 수 있습니다. 이를 통해 우리가 원하는 특정 종류의 데이터를 생성하도록 제어할 수 있습니다.
목적 함수:
cGAN의 목적 함수는 기본 GAN의 Minimax 목적 함수와 구조적으로 동일하지만, 생성자와 판별자 모두에게 조건 $y$가 추가적으로 입력된다는 점이 다릅니다.
$$ \min_G\max_D\ V(D,G)=\mathbb{E}_{(\mathbf{x},y)\sim p_{\text{data}}}\![\log D(\mathbf{x}\mid y)]+\mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}},\,y\sim p_{\text{data}}(y)}\![\log(1-D(G(\mathbf{z}\mid y)\mid y))] $$

  • $G(\mathbf{z} \mid y)$: 생성자는 잠재 벡터 $\mathbf{z}$와 조건 $y$를 모두 입력받아, 조건 $y$에 부합하는 데이터 $\mathbf{x}$를 생성합니다.
  • $D(\mathbf{x} \mid y)$: 판별자는 데이터 $\mathbf{x}$와 조건 $y$를 모두 입력받아, 데이터 $\mathbf{x}$가 조건 $y$에 해당하는 '실제' 데이터일 확률을 출력합니다.

이 구조를 통해 판별자는 단순히 데이터가 '실제 같은지'만 판단하는 것이 아니라, '주어진 조건에 맞게 실제 같은지'를 판단하게 됩니다. 따라서 생성자는 판별자를 속이기 위해 조건 $y$에 부합하는 사실적인 데이터를 생성하도록 학습됩니다.