(09강) Generative Models 1

210813

Introduction

Generative model을 만든다, 학습한다라는 것은?

  • 그럴듯한 이미지나 문장을 만드는 것이라고 보통 생각한다

  • 그러나, 단순히 "생성"의 의미만을 가지는 것이 gen model의 전부는 아니다. 그것보다 더 많은 개념을 포함한다

  • Generation : 학습 데이터셋에 없는 강아지 사진을 만드는 것도 gen이 할수있는 일.

  • Density estimation : 강아지 같은지 아닌지 구별할 수 있는 능력

    • 마치 분류모델과 같다.

어떤 모델이 Generative model이라고 하면, 그 모델은 단순히 generation 하는 능력뿐만 아니라 분류할 수 있는 능력까지 포함한다.

  • explicit model에 속한다. 입력이 주어졌을 때 입력에 대한 확률값을 얻어낼 수 있는 모델을 뜻한다.

  • feature learning : gen model은 unsupervised learning도 가능하다고 이야기 한다.

Basic Discrete Distributions

예를 한번 들어보자

한 픽셀당 표현할 수 있는 색은 몇가지일까?

  • 256 * 256 * 256

그렇다면 색을 정의하기 위해 필요한 파라미터 수는 몇개일까?

바이너리 이미지(흑백 이미지)에서 픽셀이 n개라면 만들 수 있는 이미지의 경우의 수는 몇개일까?

  • 2n 2^n

그렇다면 차원이 n인 벡터 X가 n개 있다고 했을 때, 이 벡터를 정의하려면 필요한 파라미터 수는 몇개일까?

  • 2n1 2^n -1

여기서, 요지는 n개의 픽셀을 구성할 때 조금 더 적은 파라미터를 사용할 수 없을까? 라는 것. 그래서 다음과 같은 가정을 둔다. 픽셀들은 서로 "Independent" 하다.

  • 현재 픽셀이 주변 픽셀에게 영향을 주지 않고, 영향을 받지않는다는 뜻으로 해석하면 된다.

그렇게 되면 경우의 수는 똑같지만 필요한 파라미터 수는 n개만 있으면 된다.

  • 각각의 픽셀은 베르누이 분포를 따르므로 필요한 모수는 확률 p 하나이다. 또 확률 p(x1, ... xn)에서 각각의 x는 독립이므로 joint distribution이 가능해서 각각의 확률곱 p(x1)p(x2)...p(xn) 으로 표현이 가능하다. 따라서 필요한 파라미터의 개수는 n이다.

  • 그러나 이건 어디까지나 Independent Assumption이 작용했을 때의 이야기

Fully Dependent하면 파라미터수가 너무 많고, Independent 하자니 파라미터수는 줄어들어서 좋지만 표현할 수 있는 이미지가 적어지기 때문에 그 중간쯤을 찾는 것이 목표

그래서 Conditional Independence 를 사용하게된다.

Conditional Independence

기본적으로 쓰는 연쇄법칙이다. x의 독립/종속에 관계에서 항상 만족한다

마찬가지로 항상 만족하는 법칙

이는 항상 만족하지는 않다. z가 주어졌을 때 x와 y가 independent 하다면 만족한다.

체인룰을 사용할 때 필요한 파라미터 개수는 몇개일까?

난 이부분이 이해가 잘 안갔다가 질문하고 고민하고 한 끝에 이해했다

종속적: p(x2|x1)은 다음과 같이 두가지로 표현 가능 p(x2|x1=1)과 p(x2|x1=0)

  • p(x2|x1=1) 에서 필요한 x2를 결정하는확률 q1

  • p(x2|x1=0) 에서 필요한 x2를 결정하는 확률 q2

이 때 확률 q1과 q2가 필요하므로 종속적일 때는 세 개(p, q1, q2)의 파라미터 필요(2^n-1개)

  • 만약 q1 = q2가 같다면 x1이 뭐든간에 x2의 확률이 같다는 것이므르 종속이라는 가정에 위배

독립적: p(x2|x1) = p(x2) 이므로 x2를 결정하는 확률 q 따라서, 독립적일 때는 두 개(p, q)의 파라미터 필요(n개)

이제 Markov assumption이라고 가정해보자. 그럼 확률은 다음과 같다.

  • 이는 현재 데이터는 가장 최근에 데이터 하나에만 의존적이라는 것(=영향을 받는다)

필요한 파라미터 수는 다음과 같다

  • x1은 한개가 필요하고 그 뒤부터는 2개씩 필요하므로

잘보면 처음에 Fully Independent 할 때는 2n 2^n 개이고 Markov assumption을 적용하니 지수가 한 차원 내려간 2n1 2n-1 그리고 완전 독립일 때는 n n 개이다.

따라서 우리가 조건을 어떻게 정해주냐에 따라서 필요한 파라미터 수가 달라지며 독립에 가까울 수록 적어지고 종속에 가까울 수록 많아진다.

이렇게 conditional independency를 잘 활용하는 모델을 Auto-regressive Model 이라고 한다.

Auto-regressive Model

위와 같이 MNIST 28*28 바이너리 이미지가 있다고 하자. 우리의 목표는 p(xi)를 학습하는 것.(i는 1부터 784) 이 때 p(x)를 어떻게 정의할까?

바로, 연쇄법칙을 사용해서 결합 분포로 변경하는 것. 이 때 여러 조건을 설정할 수 있는데, 현재 데이터가 바로 전 데이터에만 영향을 받든, 현재 데이터가 첫 데이더부터 바로 전 데이터까지에 영향을 받든 모두 Auto-regressive Model이라고 할 수 있다.

숫자든, 문자든, 이미지든 순서를 정해주는 것이 중요하다.

  • 이미지의 순서를 정해주는 것은 애매하다. 가로로 한줄로 나열할 수도 있고, 지그재그로 순서를 정할 수도 있다. 이에 따라 성능도 달라질 것이고 방법론도 달라질 것이다.

Auto-reg가 데이터 1개만을 고려할 때 AR-1 모델이라고 하며 n개를 고려할 때는 AR-n 모델이라고 한다

NADE: Neural Autoregressive Density Estimator

각 데이터셋의 순서의 신경망은 이전 데이터셋을 입력받으므로 명확히 Autoreg 모델이다. 각 신경망은 점점 입력 데이터의 차원이 커지게되고 이에 따라 가중치의 크기도 커지게 된다.

이 모델의 확률분포는 다음과 같이 구할 수 있다.

impulse 모델은 generating만 할 수있는데 반해 explicit 모델을 generate와 classify를 둘 다 할 수 있다.

또, 만약에 연속확률분포일경우 가우시안 혼합모델를 사용할 수 있다.

Pixel RNN

RNN을 사용해서 픽셀을 생성하는 모델

autoreg 모델은 FC를 거쳐서 만들어지는데, pixel rnn은 recurrent를 통해 generation이 이루어진다.

또, 이 때 ordering 하는 방법에 따라 두 가지 방법이 생기는데

Row LSTM은 자신보다 위쪽에 있는 정보를 활용하겠다는 것이고 Diagonal BiLSTM은 자신보다 이전에 있는 정보를 활용하겠다는 것이다

Last updated

Was this helpful?