케라스 창시자에게 배우는 딥러닝 - 8장

Jajuna_99·2022년 12월 2일
0

8장 생성 모델을 위한 딥러닝

LSTM으로 텍스트 생성하기

언어 모델(language model) : 이전 토큰들이 주어졌을 때 다음 토큰의 확률을 모델링할 수 있는 네트워크, 언어 모델은 언어의 통계적 구조인 잠재 공간을 탐색한다.

초기 텍스트 문자열을 주입하고 새로운 글자나 단어들 생성한다. (한번에 여러개도 가능하다.) 생성된 출력을 다시 입력 데이터로 넣고 이 과정을 반복한다.

텍스트 corpus에서 N개의 글자로 이루어진 문자열을 추출하여 주입하고 N + 1 번째 글자를 예측하도록 훈련한다. 즉 출력은 다음 글자의 소프트맥스(확률 분포)이고 이 LSTM을 글자 수준의 신경망 언어 모델(character-level neural language model)이라고 한다.

모델의 샘플링 전략의 중요성과 유형(탐욕적 샘플링과, 확률적 샘플링)을 소개하고, 실습해본다. (p.357)

딥드림

딥드림 : 합성곱 신경망이 학습한 표현을 사용하여 예술적으로 이미지를 조작하는 기법. 카페(Caffe) 딥러닝 라이브러리를 사용해 구글이 구현하여 2015년에 첫 공개했다.

케라스로 딥드립 구현도 해본다...!(p.365)

뉴럴 스타일 트랜스퍼

2015년 여름 리온 게티스(Leon Gatys)가 소개했다.

뉴럴 스타일 트랜스퍼 : 딥드림과 마찬가지로 이미지를 변경하는 분야의 한 모델이다.

뉴럴 스타일 트랜스퍼 구현 (p.375)

변이형 오토인코더를 사용한 이미지 생성

볂이형 오토인코더(Variational AutoEncoders, VAE) : 생성 모델의 한 종류로 개념 벡터를 사용하여 이미지를 변형하는데 아주 적절한 기법이다. 입력을 저차원 잠재 공간으로 인코딩한 후 디코딩하여 복원하는 네트워크이다.
딥러닝과 베이즈 추론(Besyesian inference)의 아이디어를 혼합한 오토인코더의 업그레이드 버전이다.

고전적인 오토인코더는 이미지를 입력 받아 인코더 모듈을 사용하여 잠재 벡터 공간으로 매핑한다. 그다음 디코더 모듈을 사용해서 원보 이미지와 동일한 차원으로 복원하여 출력한다. 즉, 오토 인코더는 입력 이미지와 동일한 이미지를 타깃 데이터로 사용하여 훈련한다. (원본 입력을 재구성하는 방법을 학습)

여기서 VAE는 이미지를 어떤 통계 분포의 파라미터로 변환, 평균과 분산 파라미터를 사용하여 이 분포에서 부작위로 하나의 샘플을 추출한다. 이 샘플을 디코딩해서 원본 입력으로 복원한다. 이런 무작위한 과정은 안정성 향상과 잠재 공간 어디든 의미 있는 표현을 인코딩하도록 만든다. (즉, 샘플링들은 모두 유효한 출력으로 디코딩된다.)

VAE의 파라미터는 2개의 손실합수로 훈련한다.

  • 재구성 손실(reconstruction loss) : 디코딩된 샘플이 원본 입력과 동일하도록 만드는 함수
  • 규제 손실(regularization loss) : 잠재 공간을 잘 형성하고 훈련 데이터에 과대적합을 줄이는 함수

VAE를 사용한 간단한 컨브넷 구현(p.388)

적대적 생성 신경망 소개

적대적 생성 신경망(GAN) : 생성된 이미지가 실제 이미지와 통계적으로 거의 구분이 되지 않도록 강제하여 실제 같이 만드는 모델

GAN에는 2개의 네트워크를 사용한다.

  • 생성자 네트워크(generator network) : 랜덤 벡터(잠재 공간의 무작위한 포인트)를 입력으로 받아 이를 합성된 이미지로 디코딩한다.
  • 판별자 네트워크(discriminator network) : 이미지 (실제 또는 합성 이미지)를 입력으로 받아 훈련 세트에서 온 이미지인지, 생성자 네트워크가 만든 이미지인지 판별한다.

GAN은 최적화의 최솟값이 고정되지 않은 시스템이다.. 즉 경사 하강법처럼 고정된 손실 공간에서 언덕을 내려오는 방법이 아닌, 내려오는 매 단계마다 조금씩 전체 공간을 바꾼다. 최적화 과정이 최솟값을 찾는 것이 아닌 두 힘 간의 평형점을 찾는 다이나믹 시스템이다.

GAN 구현 (p.397)

요약

...

profile
Learning bunch, mostly computer and language

0개의 댓글