티스토리 뷰

 

 

- GAN과 적대적 훈련의 이면에 있는 이론 살펴보기.

- GAN과 CNN 차이점 이해하기.

- Keras로 GAN을 구현하고 훈련하여 손글씨 숫자 생성하기.

 

GAN 기초 : 적대적 훈련

Generative Adversarial Network 한국어로는 생성적 적대 신경망인데, '적대'라는 것이 뭔가 생소하고 뜬금없습니다. 그럼 왜 적대 신경망인지는 한번 살펴보죠.

유명한 '위조 지폐범과 경찰' 예시

GAN은 생성자("위조범")와 판별자("위조 지폐 전문가")로 이루어진 흥미로운 아이디어를 담은 모델입니다. 이 한 줄만 보아도 왜 '적대'라는 말이 들어갔는지 감이 오실겁니다. 생성자와 판별자가 서로 경쟁하며, 영향을 주면서 학습하는 모델이 바로 GAN입니다. 이 신경망은 각각의 비용함수를 가지고 있고, 판별자의 손실을 이용하여 back propagation을 하여 훈련합니다. 각각의 학습 목적을 간단히 설명하면, 판별자(D)는 진짜와 가짜 샘플을 제대로 분류해내야 하고, 생성자(G)의 임무는 D가 완전히 틀리도록 하는 것입니다.

 

 

 

이번에는 수학적으로 접근하여 설명하자면, 생성모델은 실제 데이터의 분포와 비슷한 분포의 output 결과를 내놓도록 학습하려고 합니다. 예를 들면, 어떤 사람의 키가 180cm에 80kg라고 했을 때, 진위 여부와 관계없이 충분히 자연스럽고 그런가보다 하게 될 것입니다. 하지만 나의 키가 2m이고 몸무게는 50kg라고 한다면 100% 되묻게 되겠죠. 즉, 실제 data가 띠는 확률 분포에 근사하려는 것이 생성모델의 목적입니다.

아래(naver d2 발표자료)의 자료가 나타내는 것은 데이터에 대한 실제 확률 분포입니다. \(x1\)은 고차원의 벡터인데, 이 부분에는 안경낀 남자에 대한 벡터입니다. 사람 얼굴에 대한 데이터에서 안경 낀 남자의 확률 밀도가 적다는 것을 의미합니다. 만약 흑발의 여성의 이미지가 제일 많다면 \(x3\)의 고차원 벡터 쪽에 위치하게 되겠죠. 반면에, 확률 밀도가 0에 근접한 부분에서는 실제의 사람 이미지와는 사뭇 다른 이질적인 사진이 보이게 됩니다. 

 

 

 

그래서, GAN의 목표에 따라 검은 점선의 원본 데이터의 분포(검은 점 자체가 원본 데이터 하나를 의미)에 근사하도록 학습이 됨에 따라 초록색 선의 분포가 점점 가까워지며, 일치하는 과정을 보여줍니다. 최종적으로, 검은 점들 사이의 빈 공간에 초록색 선 부분들은 그럴 듯하지만 생성모델에서 나온 데이터를 의미하게 됩니다.

동빈나의 GAN(꼼꼼한 딥러닝 논문 리뷰와 코드 실습) 슬라이드 자료 중

GAN의 목적함수

 

 

 

 

GAN정복하기 Channel : naver d2

'스터디 > GANs in Action' 카테고리의 다른 글

DCGAN (GANs 인 액션)  (1) 2022.05.03
오토인코더와 생성 학습 (GANs 인 액션)  (0) 2022.04.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함