9. GAN(생성적 적대 신경망) 3강. 합성곱 계층 GAN 구현
학습목표
- 필기체를 생성하는 합성곱 계층 GAN을 구현할 수 있다.
- Fashion-MNIST 데이터를 생성하는 합성곱 계층 GAN을 구현할 수 있다.
학습내용
- 필기체를 생성하는 합성곱 계층 GAN 구현
- Fashion-MNIST 데이터를 생성하는 합성곱 계층 GAN 구현
1. 필기체를 생성하는 합성곱 계층 GAN 구현 (1) 합성곱 계층을 이용한 GAN 구현하기
∙ Generative: 생성(Generation) 모델
∙ Adversarial: 두 개의 모델을 적대적(Adversarial)으로 경쟁시키며 발전
∙ Network: 인공신경망(Artificial Neural Network)
∙ GAN은 입력한 필기체를 보고 배워 새로운 유사 필기체를 생성
① 이미지 처리용 툴을 다루는 PIL과 케라스 서브패키지를 불러옴
∙ 신경망의 출력이 스칼라나 벡터가 아니라 다차원일 경우에는 해당 차원에 맞 는 손실 함수가 필요
∙ 4차원 데이터를 이용하는 손실 함수를 케라스 백엔드와 Tensorflow로 구현
② 합성곱 계층 GAN 모델링
∙ GAN에 포함된 2가지 신경망(생성망, 판별망)을 모델링 - 클래스 초기화 함수 구현
- 생성망을 정의하는 함수 구현
- 입력된 이미지가 실제 이미지인지 생성망으로 만든 이미지인지를 판별하는 판별망 모델을 생성하는 판별망 함수 구현
- 학습용 생성망 함수 구현
- 무작위 신호를 만드는 함수 구현
- 모델들의 학습을 수행하는 함수 구현
③ 합성곱 계층 GAN 학습 수행
∙ GAN의 모델링과 학습용 클래스를 사용해서 실제로 GAN을 학습하는 코드 구현
④ 합성곱 계층 GAN 수행
∙ 각 배치마다 사용할 학습 데이터의 길이인 epochs과 배치 사이즈 등 파라미 터 지정 후 GAN 수행
∙ 합성곱 계층 GAN 모델 summary 출력 결과
∙ 학습 시 출력된 학습 진행사항을 나타내는 결과
2. Fashion-MNIST 데이터를 생성하는 합성곱 계층 GAN 구현 (1) 합성곱 계층을 이용한 GAN 구현하기
∙ GAN을 이용한 이미지 생성은 학습에 오랜 시간이 걸리고 파라미터를 이용한 조절이 중요하기 때문에 함수형으로 변수로 수정이 쉽게 구현하는 것이 좋음
① 이미지 처리용 툴을 다루는 PIL과 Tensorflow, 케라스 서브패키지 등을 불러옴
∙ 신경망의 출력이 스칼라나 벡터가 아니라 다차원일 경우에는 해당 차원에 맞 는 손실 함수가 필요
∙ 4차원 데이터를 이용하는 손실 함수를 케라스 백엔드와 Tensorflow로 구현
② 합성곱 계층 GAN 모델링
∙ GAN에 포함된 2가지 신경망(생성망, 판별망)을 모델링 - 클래스 초기화 함수 구현
- 생성망을 정의하는 함수 구현
- 입력된 이미지가 실제 이미지인지 생성망으로 만든 이미지인지를 판별하는 판별 망 모델을 생성하는 판별망 함수 구현
- 학습용 생성망 함수 구현
- 무작위 신호를 만드는 함수 구현
- 모델들의 학습을 수행하는 함수 구현
③ 합성곱 계층 GAN 학습 수행
∙ GAN의 모델링과 학습용 클래스를 사용해서 실제로 GAN을 학습하는 코드 구현
④ 합성곱 계층 GAN 수행
∙ 각 배치마다 사용할 학습 데이터의 길이인 epochs과 배치 사이즈 등 파라미 터 지정 후 GAN 수행
∙ 합성곱 계층 GAN 모델 summary 출력 결과
∙ 학습 시 출력된 학습 진행사항을 나타내는 결과
평가하기
1. Maxpooling으로 줄어든 데이터를 다시 확장시키는 함수를 고르시오.
① Dense
② Flatten
③ UpSampling
④ Batch Normalization
- 정답 : ③번
해설 : UpSampling 함수는 Pooling 연산으로 인해 줄어든 이미지를 다시 원래의 이미지 크기로 확장시키는 함수이다.
2. Numpy 패키지의 함수로, 기존 데이터는 유지하고 차원과 형상을 바꿔주는 함수를 고르 시오.
① Reshape
② Shape
③ Random
④ add
- 정답 : ①번
해설 : Reshape 함수는 기존 데이터를 유지하고 차원과 형상을 변경해주는 함수이다.
학습정리
1. 필기체를 생성하는 합성곱 계층 GAN 구현
∙ 필기체 이미지를 생성하는 합성곱 계층 GAN 구현
2. Fashion-MNIST 데이터를 생성하는 합성곱 계층 GAN 구현
∙ 옷, 신발 등 의류 이미지를 생성하는 합성곱 계층 GAN 구현
다음 주 예고
“10. 심층 강화학습” 에 대해 학습하겠습니다.