https://papers.nips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf
G는 목적 함수의 값을 최소 값으로 만들고, D는 목적 함수의 값을 최대 값으로 만드는 방향으로 학습합니다. 따라서, 위 식을 항과 항으로 나누었을 때, D는 **좌측항에서의 가 더 높은 값을 출력하는 방향으로, 우측항에서의 는 더 낮아지는 방향으로 학습하게 되고, G는 우측항에서의 를 최대화 시키는 방향으로 학습하는데, 가 최대가 되는 가장 좋은 경우가 가 되는 경우가 됩니다. 앞서 언급한 것처럼 D**는 를 최대화 시키고 있으니까요. 기호를 해석하며 한번 더 상세하게 설명해 보겠습니다.
Adversarial Nets의 목적함수 V는 변수 D, G를 사용하며, G는 이 함수의 값을 최소화 시킬 것이고, D는 이 함수의 값을 최대화 시킵니다.
기대값, 평균값입니다. 뒤의 [] 안의 식을 계산한 기대값을 산출합니다.
라는 집합에서 임의의 를 여러번 추출하여 계산한 기대값을 말합니다.
이미지 생성 모델을 학습한다면, 이미지 데이터를 제공 할 것이고 는 학습과정에서의 mini batch가 될 것이고, 는 한장의 이미지가 됩니다.
이제 좌측항 전체를 보자면,
라는 집합에서 임의의 를 여러번 추출하여 모델 D에 넣고 나온 출력값이 최대가 되도록 D는 변화합니다. 에 한장의 이미지를 넣은 결과값으로는 0 ~ 1 사이의 값이 발생하는데, 진짜 데이터를 넣은 좌측항에서는 최대값이 될 수 있는 1을 출력하는 방향으로 학습합니다.
라는 분포에서 임의의 를 추출하여 계산한 기대값을 말합니다. 여기서 임의의 는 주로 1차원의 Latant Vector로 구성되는데, 이 가 모델 G의 입력값으로 들어가서, D에 입력이 될 수 있는 한 장의 이미지로 출력됩니다.
D는 해당 식을 최대화 시켜야합니다. 음수 기호가 적용된 입장에서 D는 의 값을 최소한으로 출력하기를 원할 것 입니다. 따라서 가짜 이미지를 생성하는 에 대해서는 0을 출력하는 방향으로 학습합니다.
G는 해당 식을 최소화 시켜야합니다. 그럼 음수 기호가 적용된 의 값이 커질 수록 식이 최소화 될 것이고, 는 와 비슷한 값을 출력하는 방향으로 학습합니다.
D는 진짜 이미지 를 입력 받기도하고, 가짜 이미지 를 입력 받기도 합니다.
를 받았을 때는 1을 출력하고, 를 받았을 때는 0을 출력하는 방향으로 가중치를 갱신합니다.
G는 임의의 Latant Vector인 를 입력으로 받습니다. 이 는 주로 1차원으로 구성된 벡터로, 이런 모양 일 수 있습니다. [0.1, 0.8, 0.23, 0.6, 0.72, 0.3, ... , 0.43, 0.85, 0.36]
를 입력으로 받아, 진짜 이미지 와 동일한 모양인, 그러니까 이미지 가 28x28 크기의 이미지라면 또한 28x28의 이미지를 출력합니다. 이렇게 발생하는 출력은 최종 학습 후에 이미지 와 유사한 형태를 갖게 됩니다.