GAN = Generative Adversarial Networks
GAN은 이미 실습을 한번 했었다. 아래 포스팅을 통해 한번 확인할 수 있다.
2023.12.07 - [인공지능/공부] - TensorFlow - 생성형 인공지능 GAN
여기선 descriminative model(판단 모델) 과 generative model(생성 모델) 두개를 사용한다.
생성 데이터와 실제 데이터의 분포는 같아야 한다. 즉 쉽게 말하면 실제 데이터에서 금발인 사람이 30프로 백발이 20프로 흑발이 50프로라면 생성형 데이터에서도 이와 같은 분포를 따라야 한다는 것이다.
network를 통해 output의 분포가 바뀌는 모습이다. 즉 mapping되는 모습이다.
위와 같은 원리로 생성형 인공지능이 만들어 지고 뒤에는 판별 인공지능의 특성이 나온다.
게임 이론
판별자는 1(진짜 데이터), 0(생성형 데이터)로 구분하려고 학습한다. 그리고 데이터는 진짜 데이터와 생성형 데이터를 섞어서 보내준다. 생성형 인공지능은 1(진짜 데이터)로 판별하도록 계속 학습한다.
위와 같이 생성형 데이터와 진짜 데이터를 판별한다. 학습 초기에는 판별자는 확실하게 구분하지만 학습을 진행할 수록 점점 가짜데이터에 속게 된다.
생성자는 판별자가 1로 판별하도록 계속 학습한다.
우린 계속 경사 하강법을 통한 학습을 하기 때문에 loss 계산은 필수이다. 위와 같이 loss를 계산하게 된다.
classfication의 loss 계산법이랑 굉장히 유사하다.
log 그래프는 0~1에서의 기울기가 커서 학습이 잘 된다.
GAN에서는 loss계산이 복잡하기 때문에 단지 fit 만으로는 학습이 불가능하다( tf2에서의 경우 나중에 발전되면 어떻게 될지 모르겠다)
코드는 실습을 확인해 보면 된다.
conditional GAN
이전 GAN에선 내가 무슨 데이터를 만들지 알려주지 않는다. 여기선 내가 무엇을 만들지 one hot을 통해 알려준다.
실습 코드가 이것이다.
위에 올렸떤 실습 페이지 다시
2023.12.07 - [인공지능/공부] - TensorFlow - 생성형 인공지능 GAN
2023.12.15 - [인공지능/공부] - 시계열 데이터(주가, imu data) 예측 인공지능 - RNN, LSTM
'인공지능 > 공부' 카테고리의 다른 글
인공지능 backpropagation, optimization- 개념 (0) | 2023.12.16 |
---|---|
시계열 데이터(주가, imu data) 예측 인공지능 - RNN, LSTM (49) | 2023.12.15 |
물체의 위치까지 구분하는 인공지능 -segmentation, odject detection (45) | 2023.12.15 |
생성형 인공지능 Autoencoder - 개념 (43) | 2023.12.14 |
CAM 실습 - MNIST, TensorFlow (0) | 2023.12.14 |