신경망 스타일 트랜스퍼
스타일 트랜스퍼 알고리즘에 콘텐츠 이미지(C)와 스타일 이미지 (S)를 제공해야 한다.
스타일 트랜스퍼 알고리즘은 콘텐츠 이미지로부터 내용을 가져오고, 스타일 이미지로 부터 스타일을 가져와 새로운 이미지(O)를 만든다.
스타일 트랜스퍼를 이해하기 위해서 CNN의 작동 방식을 알아야한다.
CNN이 객체 인식을 학습할 때, 앞부분의 초기 레이어는 선, 곡선, 및 모양과 같은 일반적인 정보를 학습한다.
CNN의 뒷부분 레이어에는 눈, 건물 및 나무 와 같은 상위 개념의 이미지를 인식한다.
비슷한 이미지의 마지막 레이어 값은 비슷한 경향을 보인다.
MSE 를 사용해 두 이미지의 유사도를 계산한다.
두 이미지 사이의 오차값을 낮추기 위해서 최적화 알고리즘 사용.
신경 스타일 알고리즘 학습 과정
1.
데이터 로딩
2.
VGG19 모델 생성
3.
콘텐츠 오차 정의
4.
스타일 오차 정의
5.
VGG 모델의 레이어 들이 오차 추출
6.
옵티마이저 생성
7.
학습 - 콘텐츠 이미지와 유사한 이미지. 스타일 이미지와 유사한 스타일 생성
GAN
GAN (생성적 적대 신경망) 은 생성기와 판별기라고 불리는 2개의 심층 신경망을 학습시키고 서로 경쟁시켜 비지도 학습 문제를 해결한다. 이 학습 과정에서 두 심층 신경망은 맡은 일을 더 잘하게 된다.
Deep Convolution GAN
스스로 학습하고 의미 있는 이미지를 생성하는 GAN 모델을 구축하는 방법을 소개한 GAN 초기 모델 중 하나.
DCGAN 학습에 필요한 요소
•
생성기 네트워크 : 생성기 네트워크는 고정된 차원의 잠재 벡터를 어떤 형상의이미지에 대응시킨다.
예 : (3, 64, 64)
•
판별기 네트워크 : 생성기 네트워크가 만든 이미지 또는 실제 데이터셋의 이미지를 입력받는다. 이미지가 실제인지 가짜인지 평가 점수를 출력한다.
•
생성기와 판별기를 위한 오차 함수 정의
•
옵티마이저 정의
•
GAN학습
생성기 네트워크
고정된 차원의 랜덤 백터를 입력으로 사용한다. 랜덤 벡터에 전치 컨볼루션, 배치 정규화, ReLU 활성활를 적용하고 필요한 크기의 이미지를 생성한다.
•
전치 컨볼루션
전치 컨볼루션은 일반적인 컨볼루션이 동작하는 방식과 반대 방식으로 동작한다.
→ 전치 컨볼루션은 입력 벡터를 더 높은 차원에 매핑하는 방법을 계산하려 한다.
벡터를 필요한 차원의 텐서로 변환하는 것이고, 역전파를 통해 커널 값을 조정할 수 있다.
•
배치 정규화
신경망의 중간 레이어가 정규화된 데이터를 얻지 못하는 이유
배치 정규화는 학습과정에서 평균과 분산이 변경되는 경우에 중간 데이터를 정규화하는 조정 함수 또는 레이어로 동작한다.
또, 배치 정규화는 학습, 검증 또는 테스트 과정에서 다르게 작동한다.
학습 과정에서는 배치 데이터 단위로 평균과 분산이 계산된다.
검증과 테스트 단계에서는 전체 데이터의 평균과 분산값을 사용한다.
배치 정규화의 장점
배치 정규화 레이어 위치
배치 정규화 레이어는 컨볼루션 레이어 또는 선형/전연결 (FC) 레이어 다음에 위치한다.
판별기 네트워크
판별기 네트워크에서는 활성화함수로 Leaky ReLU를 사용하고 마지막 활성화 레이어로 시그모이드를 사용한다.
GAN에서는 Leaky ReLU를 사용하면 판별기 네트워크 성능이 향상됨.
또, 판별기 네트워크의 마지막에 전연결 레이어를 사용하지 않는다.
마지막으로 전연결 레이어가 전역 평균 풀링으로 대체되는 것이 일반적이다. 그러나 전역 평균 풀링을 사용하면 수렴 속도가 줄어든다. ( 수렴 속도 : 정확한 분류지를 만드는 데 필요한 반복 횟수 )
마지막 컨볼루션 레이어는 평평해지고 sigmoid 레이어로 전달된다.
오차와 옵티마이저
이진 교차 엔트로피 오차와 2개의 옵티마이저를 정의한다.
이때 옵티마이저는 생성기 네트워크를 위한 옵티마이저, 판별기 네트워크를 위한 옵티마이저이다.
언어 모델
텍스트를 생성하는 방법을 RNN (순환 신경망) 에 학습 시킨다. 여기에서 순환 신경망은 어떤 상황에서 다음 단어를 예측할 수 있다. 순차적 데이터를 생성하는 기능은 여러 분야의 애플리케이션에서 사용될 수 있다.
•
Image Captioning
•
Language translation
•
Speech recognition
•
Automatic email reply
LSTM 모델을 사용해 문자 수준언어 모델이나 단어 수준 언어 모델을 생성하는 것이 일반적이다.
문자 수준 언어 모델링에서 한 문자를 제시하면, LSTM 모델은 다음 문자를 예측하도록 훈련 받는다.
1.
데이터 준비
2.
데이터 배치 처리기 생성
3.
LSTM 기반 모델 정의
4.
모델 학습
5.
모델 테스트