더북(TheBook)

이번에는 생성자와 판별자의 오차에 대한 변화를 그래프로 살펴보겠습니다.

코드 13-33 생성자와 판별자의 오차 확인

plt.figure()
losses_g = [fl.item() for fl in losses_g]
plt.plot(losses_g, label='Generator loss')
losses_d = [f2.item() for f2 in losses_d]
plt.plot(losses_d, label='Discriminator Loss')
plt.legend()

다음 그림은 생성자와 판별자에 대한 오차를 시각적 그래프로 표현한 결과입니다.

▲ 그림 13-31 생성자와 판별자에 대한 오차

처음 몇 에포크 동안 생성자의 오차는 증가하고 판별자의 오차는 감소하는 것을 볼 수 있습니다. 이러한 증상이 나타나는 이유는 학습 초기 단계에 생성자는 좋은 가짜 이미지를 생성하지 못하기에 판별자가 실제 이미지와 가짜 이미지를 쉽게 구분할 수 있기 때문입니다. 하지만 학습이 진행됨에 따라 생성자는 진짜와 같은 가짜 이미지를 만들며 판별자는 가짜 이미지 중 일부를 진짜로 분류합니다. 따라서 그림과 같이 생성자의 오차가 감소하면 판별자의 오차는 증가합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.