1.1 생성 모델링이란?
확률 모델 probabilistic model의 관점으로 보면 생성 모델은 데이터셋을 생성하는 방법을 기술한 것, 이 모델에서 샘플링sampling 하면 새로운 데이터를 생성할 수 있다.
데이터셋이 존재하고, 이 데이터셋에는 없지만 새로운 데이터를 생성하는 모델을 만들고 싶을 때, 이 데이터를 구성하는 일반적인 규칙을 학습해야 한다. 이것이 생성 모델링을 사용해 풀 수 있는 문제의 종류이다.
먼저 생성하려는 개체의 샘플을 많이 가진 데이터셋이 필요하다. 이를 훈련 데이터라고 하면 데이터 포인트 하나를 샘플이라고 부른다.
각 샘플은 많은 특성으로 이뤄진다. 이미지 생성 문제의 경우 일반적으로 개별 픽셀값이다. 목표는 일련의 새로운 특성을 생성할 수 있는 모델을 만드는 것이다. 이 모델은 원본 데이터와 동일한 규칙으로 생성된 것처럼 보이는 특성을 만든다. 개별 픽셀값이 가질 수 있는 경우의 수가 매우 많고 이 중 아주 작은 수의 조합이 흉내 내려는 개채의 이미지를 구성하기 때문에 (n차원 데이터가 실제 n차원 벡터 공간의 특정 지역에 존재할 확률은 n과, 존재할 수 있는 값의 범위가 증가함에 따라 급격하게 감소한다)
생성 모델은 결정적 deterministic 이 아니고 확률적 probabilistic 이어야 한다. 평균 값을 구하는 것과 같이 고정된 계산만 수행한다면 매번 동일한 값을 출력하기에 생성 모델이 아니게 된다. 이 모델은 생성되는 개별 샘플에 영향을 미칠 수 있는 확률적 요소를 포함해야 한다.
다른 말로 하면, 어떤 이미지는 훈련 데이터셋에 있을 것 같고, 다른 이미지는 그렇지 않은 이유를 설명할 수 있는 알려지지 않은 확률 분포가 있다고 가정, 해야 할 일은 가능한 이 분포에 가깝게 흉내 내는 모델을 만드는 것이다. 그다음, 이 분포에서 샘플링하여 원본 훈련 세트에 있을 것 같은 새롭고 완전히 다른 샘플을 생성한다.
1.1.1 생성 모델링과 판별 모델링
생성 모델링이 달성하려는 목적과 이유를 잘 이해하려면 반대되는 개념인 판별 모델링 discriminative modeling과의 비교해야한다.
반 고흐가 그린 것과 다른 화가가 그린 것으로 이뤄진 그림 데이터셋을 보유, 데이터가 많다면 어떤 그림이 반고흐가 그린 것인지 예측하는 판별 모델을 훈련할 수 있다. 이 모델은 여러 특성을 바탕으로 그림의 예측 지수를 높인다.
주요 한 가지 차이점은 판별 모델링을 수행할 때는 레이블을 가져야 한다는 것,
이런 이유로 판별 모델링을 지도 학습이라고 부른다. 또는 레이블된 데이터셋을 사용해 입력과 출력을 매핑하는 함수를 학습한다고 말한다. 생성 모델링은 보통 레이블이 없는 데이터셋에서 수행된다. 하지만 개별 클래스의 샘플을 생성하는 방법을 학습하기 위해 레이블을 가진 데이터셋에도 적용될 수 있다.
수학적으로 생성 모델링과 판별 모델링의 차이점을 확인
- 판별 모델링은 샘플 x가 주어졌을 때 레이블 y의 확률 p(y|x)을 추정 estimation한다.
- 생성 모델링은 샘플 x의 관측 확률 p(x)을 추정한다. 데이터셋이 레이블을 가지고 있다면 확률 p(x|y)를 추정하는 생성 모델을 만들 수 있다.
다른 말로 하면, 판별 모델링은 샘플 x가 범주 y에 속할 확률을 추정한다. 생성 모델링은 샘플의 레이블에는 관심이 없고, 대신 샘플을 발견할 확률을 출력한다.
반 고흐 그림을 완벽하게 판별하는 모델을 만들더라도 반 고흐 그림처럼 보이는 그림을 만드는 방법은 알지 못한다는 것이 핵심이다. 판별 모델링은 기존 이미지에 대한 확률을 출력한다. 우리가 원하는 것은 이런 모델이 아니라 원본 훈련 데이터셋에 속할 가능성이 높은 픽셀을 출력하는 생성 모델을 훈련하는 것이다.
1.1.2 머신러닝의 발전
학술적인 측면에서 판별 모델링의 발전은 측정하기 쉽다. 잘 알려진 분류 작업에 대해 성능을 측정하여 최고의 방법론을 결정할 수 있기 때문이다. 하지만 생성 모델은 출력의 품질이 대부분 주관적이라 평가하기 특히 더 어렵다.
1.1.3 생성 모델의 등장
생성 모델링을 실용적으로 사용하는 것 외에도 생성 모델을 아주 복잡한 인공지능 문제를푸는 열쇠로 생각하는 세 가지 이유
1. 순전히 이론적인 관점에서 데이터를 잘 분류하는 것뿐만 아니라. 먼저 데이터가 생성된 방법을 완전히 이해해야 한다. 출력 가능한 공간은 매우 고차원이고 데이터셋에 속할 수 있는 샘플은 비교적 적기 때문에 풀기 더 어려운 문제이다. 그러나 딥러닝의 많은 기술이 생성 모델에도 동일하게 사용될 수 있다.
2. 생성 모델은 강화학습 같은 다른 머신러닝 분야의 향후 발전을 주도적으로 이끌 가능성이 높다. 에이전트가 생성 모델을 통해 환경을 시뮬레이션할 수 있다면 컴퓨터 시뮬레이션이나 현실 세상에서 전략을 테스트할 필요가 없다. 자신의 환경 속에서 학습할 수 있을 것
3. 인간과 견줄만한 지능을 가진 머신을 진짜 만든다면 생성모델이 확실히 그 솔루션의 일부가 되어야 한다.
1.1.4 생성 모델링 프레임워크
2차원에 있는 생성 모델링 게임시행, 어떤 규칙을 선택하여 포인트 집합 X를 생성했다. 이 규칙을 P_data라고 부른다. 그리고 같은 규칙으로 생성된 것 같은 이 공간의 다른 포인트 x = (x_1,x_2)를 선택하는 것이 목표이다.
기존 데이터 포인트의 정보를 사용해 마음 속으로 어떤 모델 P_model 을 구성할 수 있다. 이 모델은 포인트가 이 공간에 발견될 가능성이 높은 위치이다. 이런 점에서 P_model 은 P_data 의 추정이다. 아마 P_model을 위 그림과 같이 포인트가 놓인 사각형 상자와 같다고 결정했을 것이다. 이 상자 바깥에서는 어떤 포인트오 발견될 가능성이 없다. 새로운 샘플을 생성하려면 이 상자 안에서 간단하게 랜덤한 포인트를 선택한다. 다시 말해 P_model 분포로부터 샘플링한다. 이렇게 첫 번재 생성 모델을 만들었다.
이를 통해 생성 모델이 달성하려는 것을 이해할 수 있다. 다음 프레임 워크가 모티브이다.
생성 모델링 프레임 워크
- 샘플 데이터셋 X를 가지고 있다.
- 샘플이 알려지지 않은 어떤 P_data 분포로 생성되었다고 가정한다.
- 생성 모델 P_model 이 P_data를 흉내 내려고 한다.
이 목표를 달성하면 P_model 에서 샘플링하여 P_data 에서 뽑은 것 같은 샘플을 생성할 수 있다.
- P_model 이 다음과 같다면 인상적일 것이다.
1:P_data 에서 뽑은 것 같은 샘플을 생성할 수 있다.
2:X에 있는 샘플과 다른 샘플을 생성할 수 있다.
이제 진짜 데이터 생성 분포인 P_data를 공개하고 이 프레임워크가 예제에 어떻게 적용되는지 알아본다. 데이터 생성 규칙은 전 세계 대륙에 걸쳐 선택된 단순한 균일 분포, 바다에는 이런 포인트가 없다.
모델 P_model은 P_data를 과도하게 단순화한 것이다. 포인트 A, B, C는 P_model 에서 생성한 3개의 샘플이지만 성공 여부는 서로 다르다.
1.2 확률적 생성 모델
표본 공간 sample space
샘플 X가 가질 수 있는 모든 값의 집합
확률 밀도 함수 probability density function
p(x)는 표본 공간의 포인트 x를 0과 1사이의 숫자에 매핑하는 함수이다. 표본 공간의 모든 포인트에 대한 확률 밀도 함수의 합은 1이 되어야 잘 정의된 확률 분포이다.
관측된 데이터셋을 생성했다고 가정한 진짜 확률 밀도 함수 P_data는 하나지만, P_data를 추정하기 위해 사용할 수 있는 확률 밀도 함수 P_model은 무수히 많다. 적합한 P_model(X) 를 찾기 위해 모수 모델 parametric model 이라 불리는 기법을 사용한다
모수 모델 parametric model
모수모델 parametric model p_a(x)는 한정된 개수의 파라미터 a를 사용하여 묘사하는 확률 밀도 함수의 한 종류, 사각형의 모양의 경우 네 좌표가 필요
가능도 likelihood
파라미터 집합 a의 가능도 likelihood L(a|x)는 샘플 포인트 x가 주어졌을 때 a의 알맞은 정도를 측정하는 함수이다. 다음과 같이 정의한다



1.2.1 헬로 로들!
새로운 스타일의 생성을 위해 50가지의 데이터를 받았다.
1.2.2 첫 번째 확률적 생성 모델
각 특성에 대해 가능한 값
- 7가지 머리 모양
- 6가지 머리 색깔
- 3가지 안경
- 4가지 옷
- 8가지 옷 색깔
총 4032개의 특성 조합이 있다.
이 데이터셋이 일부 특성이 다른 것보다 우선되는 어떤 분포 p_data로 생성되었다고 가정해본다.
문제는 명확하게 p_data를 모른다는 것이다. 가지고 있는 것은 p_data로 생성한 샘플 데이터셋 X 뿐이다. 생성 모델의 목표는 이 샘플을 사용하여 p_data 에서 생성한 샘플을 완벽하게 흉내 내는 p_model 을 만드는 것이다.
이를 위해 단순하게 가능한 특성의 조합마다 확률을 부여할 수 있다. 이런 종류의 모수 모델을 다항 분포 multinomial distribution 라고 하며 각 파라미터의 최대 가능도 추정값은 다음과 같이 계산한다.
n_j는 데이터셋에서 발견된 조합 j의 횟수이다. N = 50은 전체 샘플 개수이다. 다른 말로 하면, 각 파라미터의 추정값은 해당되는 패션 조합이 데이터셋에 등장하는 비율이다.
이런 식으로 모든 값을 계산하여 표본 공간의 분포를 정의할 수 있다. 이 분포에서 샘플링을 수행할 수 있기 때문에 이 목록을 생성 모델이라고 부를 수 있다. 하지만 원본 데이터셋에 없는 조합은 이 값이 0이기 때문에 본 적 없는 샘플은 생성할 수 없다.
이제 원본 데이터셋에 있지 않은 것을 포함하여 모든 개별 조합은 0이 아닌 샘플링 확률을 가진다. 하지만 이 확률이 단순한 상수이므로 여전히 만족할만한 생성 모델은 아니다.
이상적으로는 생성 모델이 데이터셋에 존재하는 포인트에 확률을 모두 부여하는 것이 아니라 표본 공간에서 가능성 있다고 믿는 영역의 가중치를 높이기를 바란다. 이는 데이터에서 학습한 잠재된 구조를 바탕으로 수행된다. 이런 작업을 수행하기 위해서는 다른 모수 모델을 선택해야 한다.
1.2.3 나이브 베이즈
나이브 베이즈 Naive Bayes 모델은 간단한 가정을 사용하여 추정할 파라미터 개수를 크게 줄여준다.
먼저 각 특성이 다른 모든 특성에 대해 독립적이라고 가정한다.

여기에서 K는 전체 특성의 개수이다. 나이브 베이즈 가정을 적용하여 식을 간단하게 쓸 수 있다.
이것이 나이브 베이즈 모델이다. 각 특성에 대해 파라미터를 독립적으로 추정하는 문제로 축속되었다. 이를 곱해서 가능한 모든 조합에 대한 확률을 찾으면 된다. 로들 데이터셋의 경우 이 모델은 28-5=23개의 파라미터로 정의할 수 있다. -5를 적용한 이유는 특성마다 파라미터의 합을 1로 만들기 위해 마지막 파라미터가 자동으로 결정되기 때문 ( 자유도와 관련된 내용인가? )
최대 가능도 추정값은 다음과 같다

어떤 샘플 x를 생성하는 모델의 확률을 계산하려면 개별 특성의 확률을 곱하면 된다.
데이터에 없는 샘플에 대해 0이 아닌 확률을 할당할 수 있으므로 생성할 수 있다. 따라서 나이브 베이즈 모델은 데이터로부터 어떤 구조를 학습하고 이를 사용해 원본 데이터셋에 없는 새로운 샘플을 생성할 수 있다. 이 모델은 각 특성값의 발견 확률을 독립적으로 추정한다.
1.2.4 헬로 로들! 이어서
새로운 데이터셋은 이전과 같은 5개의 특성이 아닌 각 이미지를 구성하는 32*32 픽셀값으로 이루어져 있다. 그러므로 총 1024개의 특성을 가지고 각 특성은 256개의 값 중 하나의 값을 가진다.
나이브 베이즈 모델을 사용하여 이 픽셀 데이터셋을 훈련시키면 안경, 머리, 옷 등이 구분되지 않는 데이터를 생성한다.
1.3 생성 모델의 난관
이러한 이유는 나이브 베이즈 모델이 픽셀을 독립적으로 샘플링했기 대문에 인접한 2개의 픽셀이 비슷한 데이터라고 생각할 수 없다.
또한 표본 공간에 가능한 샘플 개수는 셀 수 없을 정도로 많아 나이브 베이즈 모델을 상관관계가 큰 픽셀값에 바로 적용했을 때 만족할만한 픽셀값의 조합을 찾을 가능성은 희박하다.
1. 특성 간의 조건부 의존성이 클 경우 어떻게 대처해야할까?
2. 모델이 어떻게 고차원 표본 공간의 생성 가능한 샘플 중에서 만족할 수 있는 하나를 찾을 것인가?
이에 대한 해결책으로 딥러닝이 존재, 미리 만든 가정이 아닌 데이터로부터 의미 있는 구조를 추론할 수 잇는 모델이 필요하다. 딥러닝이 저차원 공간의 특성으로 변환할 수 있다는 사실은 표현학습 representation learning을 수행한다는의미이다.
1.3.1 표현학습
표현학습의 핵심 아이디어는 고차원 표본 공간을 직접 모델링하는 것이 아닌 저차원의 잠재 공간 latent space를 사용해 훈련 세트의 각 샘플을 표현하고 이를 원본 공간의 포인트에 매핑하는 것이다.
표현학습의 강점은 샘플을 묘사하는 데 가장 뛰어난 특성과 이러한 특성을 원본 데이터에서 추출하는 방법을 학습한다. 수학적으론 데이터의 비선형 매니폴드를 찾고 이 공간을 완전하게 설명하기 위해 필요한 차원을 구성한다.
요약하자면 표현학습은 픽셀들이 어떻게 출력되어야 하는지 가장 잘 설명하는 고수준 특성을 만든다. 따라서 이 잠재 공간의 포인트는 잘 구성된 이미지를 표현할 것이다. 잠재 공간에서 특성값을 조금 바꾸면 새로운 표현을 생성할 수 있다.
'책 > 미술관에 GAN 딥러닝 실전 프로젝트' 카테고리의 다른 글
GAN - 생성적 적대 신경망 (1) | 2022.10.12 |
---|---|
2. 딥러닝 (0) | 2022.10.11 |