1) GAN - 이미지 생성모델 개념
: GAN 모델은 Generator와 Discriminator를 경쟁적으로 학습시킴 (두 모델 다 성능 향상)
-> 진짜와 구별이 안되는 Generator 모델 만듦
2) DCGan 실습
원래 GAN은 fullyconnected layer를 이용해 이미지생성 -> 이미지에는 convolution layer를 사용하는 것이 더 좋음 : DCGan
GAN( Generative Adversarial Network 생성적 적대 신경망 )



- 실제 사진과 동일한 수준의 이미지 생성
- Image to Image(Style Transfer) :다른 도메인의 이미지로 변환
- 추천 ITEM 생성 : 패션 카테고리의 추천시스템 - 의상을 분석해 주어진 스타일에 어울리는 새로운 아이템 생성
- 데이터셋 증강 : 의료 연구 - 데이터셋 증가
모델 개념 이해하기
- GAN : 이미지 생성모델 - 입력 데이터와 데이터 분포가 비슷하게 생성하는 것
Generative (생성적)
: 가짜모델을 생성
32 X 32 X 3 크기의 사진 이용 - 총 변수가 3072개로 그 조합에 따라 다양한 형태
ex. 얼굴이미지를 생성 - 사람 얼굴처럼 보이는 픽셀값들의 조합의 분포를 찾아냄
Adversairal (적대적)
: 두개의 모델을 적대적으로 경쟁-> 두 모델 성능 향상
=> GAN 모델은 Generator와 Discriminator를 경쟁적으로 학습시킴 (두 모델 다 발전)
-> 진짜와 구별이 안되는 Generator 모델 만듦
예) 위조지폐범/ 판별 경찰간의 관계
- 위조 지폐범 위조 기술을 발전시키고 / 경찰은 위조지폐를 찾기위해 위폐를 식별하는 기술을 발전 -> 서로 발전

Generator (생성자) - 가짜 이미지를 생성하는 모델
목표: 훈련 샘플과 구별이 불가능한 가짜 샘플만들기.
입력: 랜덤한 숫자로 구성된 벡터(잡음). Latent Vector
출력: 가짜 샘플
Discriminator (판별자) - 가짜 이미지를 판별하는 모델
목표: 생성자가 만든 가짜 샘플과 훈련 데이터셋의 진짜 샘플을 구별하기.
입력
1. 훈련데이터셋에 있는 진짜 샘플.
2. Generator가 생성한 가짜 샘플.
출력: 입력 샘플이 진짜일 예측 확률.
Train (훈련과정) 이해하기
Train을 통해 좋은 성능을 내는 Generator 모델을 학습시킴
Discriminator 훈련
- 진짜 샘플과 Generator가 생성한 가짜 샘플을 잘 분류하도록 학습
- 일반 classification 문제와 동일
Generator 훈련
- Generator와 Discriminator로 구성된 GAN 모델을 학습시킨다.
- Discriminator는 Forzen시키고 Generator의 파라미터들만 업데이트 되도록 한다.
1. 가짜 샘플 생성
2. 가짜 샘플의 label을 진짜로 Discriminator가 판별하게 함
- Discriminator Fake 이미지를 진짜로 판별하면 성공 -> loss 작아짐
- Discriminator가 Fake 이미지를 가짜로 판별하면 실패 -> loss 커짐
3. Loss에 대한 파라미터의 gradient를 계산하여 Generator의 파라미터들을 업데이트
Discriminator 훈련 -> Generator 훈련 반복
판별자를 학습을 시켜놓고 생성자를 학습시키면 모두 가짜라고함.
그러면 조금씩 학습을 같이 성능을 올려나가야함
'Data Science > ML & DL' 카테고리의 다른 글
데이터 수집과 라벨링 | Open Dataset + 데이터 수집 방법 (0) | 2023.11.06 |
---|---|
GAN 실습 | DGan (1) | 2023.11.04 |
LSTM 주가예측 | 삼성전자의 주가(시계열데이터)를 예측해보자 (0) | 2023.11.04 |
RNN 개요 | RNN (1) | 2023.11.01 |
주요 CNN 모델 | VGGNet , ResNet , Mobilenet (1) | 2023.11.01 |