210826 EXPLORATION 13. AI로 새로운 패션 만들기

문소정·2021년 9월 1일
0

AIFFEL

목록 보기
40/66

1. GAN

분류생성모델링
(Generative Modeling)
판별모델링
(Discriminative Modeling)
목표없던 데이터를 생성해내는 것입력받은 데이터를 어떤 기준에 대해 판별하는 것
  • 생성모델에서 사용되는 네트워크
    • Generator(생성자) 모델
      • 무 의미 없는 랜덤 노이즈로부터 신경망에서의 연산을 통해 이미지 형상의 벡터를 생성
      • 무에서 유를 창조하는 것과 같은 역할
      • ex) 위조지폐를 만들어내는 팀
    • Discriminator(판별자) 모델
      • 존에 있던 진짜 이미지와 생성자가 만들어낸 이미지를 입력받아 각 이미지가 Real인지, Fake인지에 대한 판단 정도를 실숫값으로 출력
      • ex) 위조 지폐범을 잡아내는 경찰
  • 이미지 관련 응용 생성 모델 기법
    • Pix2Pix : 그림을 실제 사진처럼 변환(그림 이미지 → 실사 이미지)
      • 입력값 : 그림과 사진 쌍의 데이터
      • Input Image 입력 → Predicted Image 출력 → Ground Truth와 얼마나 비슷한지를 평가
    • CycleGAN : 양방향으로의 이미지 변환(실사 이미지 ↔ 그림 이미지)
      • 데이터 쌍의 불필요 → 데이터 구하기 용이함 → 주석(annotation) 비용의 불 필요

    • Neural Style Transfe : 이미지의 스타일을 변환
      • Neural : 신경망, 즉 딥러닝 기술을 사용
      • 전체 이미지의 구성을 유지하고 싶은 Base Image와 입히고 싶은 스타일이 담긴 Style Image 두 장을 활용해 새로운 이미지를 만들어 내는 것
      • ex) Base Image에서 Content(내용), Style Image에서 Style(스타일)만 추출한 결과물

2. Fashion MNIST 데이터셋 실습

  • Fashion MNIST : tf.keras의 datasets 중에 하나

    • 28x28 픽셀의 이미지(각 픽셀은 0~255 사이의 정숫값)
    • 특징
      • 생성 모델에서 데이터 쌍이 불필요
      • y_train, y_test 데이터를 쓰지 않음
  • GAN(Generative Adversarial Network)

    • 교차 엔트로피(Cross Entropy)를 손실함수(Loss)로 사용
      • 교차 엔트로피 : 분류 모델을 설계시 많이 사용하는 손실함수. 두 클래스 간의 차이를 정량적으로 계산
      • 판별자가 두개의 클래스 분류 문제를 풀기 때문에 이진 교차 엔트로피(binary cross entropy)를 사용
  • DCGAN(Deep Convolutional GAN)

    • 합성곱 층(Convolutional Layer)으로 이루어진 딥러닝 모델
      • 입력값 : (가우시안)균일 분포에서 추출한 100개의 난수(코드 또는 잠재 변수, 빨간색)
      • 출력값 : 이미지 출력(이 경우 64x64x3오른쪽 이미지, 녹색)
    • 네트워크(노란색)의 구성
      + 디컨볼루션 계층 (컨볼루션 계층의 역)
      + 완전 연결 계층 등과 같은 표준 컨볼루션 신경망 구성요소
      (출처 : 생성모델)
  • Conv2D vs Conv2DTranspose

    1. Convolution
    2. DeConvolution : 표준 컨볼루션 레이어의 동작을 반대 수행
      • 표준 컨볼루션 레이어를 통해 생성된 출력이 디콘볼루션되면 원래 입력을 다시 얻음
    3. Transposed Convolution : 값을 기준으로 표준 컨볼루션을 뒤집지 않고 차원만 기준
ConvolutionTransposed Convolution

<참고자료>
1. [러닝 텐서플로]Chap07.3 - 텐서플로 추상화와 간소화, Keras
2. Transposed Convolutional Layer 란 무엇입니까?
3. Deep Convolutional GAN
4. Improved Techniques for Training GANs 논문
5. GAN 성능향상 code

0개의 댓글