GAN(Generative Adversarial Network)
- 생성모델로 유명한 딥려닝 알고리즘
- Generator 및 Discriminator라 불리는 두 신경망이 minimax game을 통해 서로 경쟁하며 발전
- Generator는 아래 식, 목적 함수를 최소화하는 방향으로, Discriminator는 목적 함수를 최대화하는 방향으로 학습함
위 식의 z는 임의의 노이즈를, D,G는 각각 Discriminator, Generator를 의미한다
Discriminator
실제 이미지를 1, 가짜 이미지를 0으로 두었을 때, D는 위 식을 최대화해야하므로 각각의 항이 최대가 되도록 해야한다.따라서 두개의 log 항의 값이 1이 되도록 해야한다.즉 D(x)는 1, D(G(z))는 0이 되도록 해야 한다.
Generator
Generator는 D와 반대로 위의 식을 최소화 해야한다.따라서 1- D(G(z))를 최소화해야한다.따라서 D(G(z)) = 1이어야 한다.즉 z를 입력받아 생성한 G(z)를 D가 진짜 데이터라고 예측할 만큼 진짜같은 가짜데이터를 만들도록 학습해야한다.
GAN은 생성된 이미지가 항상 비슷한 형태로 제한되는 Mode collabse 문제, 모델 하이퍼파라미터 조정의 어려움 등의 한계점이 존재한다.
이러한 GAN의 문제점을 해결한 것이 cGAN이다.
Conditional Generative Adversarial Nets (cGAN)
- 조건 있는 생성 모델
- 내가 원하는 종류의 이미지를 생성하고자 할 때 GAN이 가진 생성 과정의 불편함을 해소하여, 내가 원하는 종류의 이미지를 생성할 수 있도록 고안된 방법
cGAN의 목적 함수
GAN의 목적함수와 비교했을 때, D(x)와 G(z)가 각각 D(x∣y), G(z∣y)인 조건부 확률 형태로 바뀌었다.
y는 입력의 특정 조건을 나타내는 정보이다.
예를 들어 MNIST 데이터셋을 학습시킨다고 했을 때 y는 0~9까지의 라벨 정보이다.
이러한 특정 조건 y가 함께 입력되어 어떤 이미지를 생성할 것인지에 대한 방향성을 제어할 수 있다.
'AI Theory > key concept of AI' 카테고리의 다른 글
딥러닝 구조와 모델 (0) | 2023.07.24 |
---|---|
텐서 표현과 연산 (0) | 2023.07.24 |
[NLP] Text Summarization (0) | 2023.07.17 |
사이킷런을 활용한 추천 시스템 (0) | 2023.07.07 |
비지도학습(Unsupervised Learning) (0) | 2023.07.07 |