Generative Model
Generative Model은 많은 데이터 사이의 본질을 파악하는데 아주 유망한 방식이다. Generative model을 학습하기 위해, 먼저 엄청난 양의 데이터(사진, 문장, 소리 등)를 모으고 이와 비슷한 데이터를 만들기 위해 모델을 학습시킨다. 이 접근법을 관통하는 직관(intuition)을 다룰 때 꼭 나오는 문장이 있다.
What I cannot create I do not understand.
- Richard Feynman
무슨 뜻일까? 우리가 Generative model로 사용하는 신경망(NN)은 우리가 훈련하는 데이터보다 현저히 적은 파라미터 수를 가져서, 모델은 데이터를 생성하기 위해 효율적으로 데이터의 본질을 찾아내고 내부화(internalize)한다.
생성 모델은 만들어내는 것이 전부가 아니다.
아래부터 'Generation model'은 생성 모델로 부른다. 생성 모델은 무엇을 할 수 있을까?
Generation
If we sample $x_{new}$ ~ $p(x), x_{new}$ should look like a dog (sampling).
예를 들어 강아지 이미지가 주어졌다 보자. 강아지를 샘플링하는 어떤 모델을 만들 수 있고, (train data에 있지 않은) 강아지와 같은 이미지를 만들 수도 있다.
Density estimation
$p(x)$ should be high if $x$ looks like a dog, and low otherwise (anomaly detection).
Also known as, explicit models.
임의의 학습한 이미지가 들어왔을 때 확률값이 출력돼서, 강아지인지 고양이인지를 구분하는 것이다.
Anomaly Detection (이상 감지) : Normal(정상) sample과 Abnormal(비정상, 이상치, 특이치) sample을 구별해내는 문제
Anomaly Detection은 마치 분류 문제 같다. 엄밀한 의미에서 discrimination 모델을 포함한다. 어떤 생성 모델을 충분히(fully) 학습하여 이미지를 만드는 것과, 어떤 이미지가 주어졌을 때 강아지인지 아닌지의 구분도 포함된다(엄밀한 의미). 이런 모델을 explicit 모델이라 한다. 어떤 입력이 주어졌을 때 확률값을 얻어낼 수 있는 모델이다. 단순히 생성(generation)만 할 수 있는 모델은 그 반대로 implicit 모델이라 부른다.
Unsupervised representation learning
We should be able to learn what these images have in common, e.g., ears, tail, etc (feature learning).
feature learning이 생성 모델에 포함되는진 확실하지 않지만, 비지도 표현 학습도 생성 모델이 했으면 하는, 할 수 있는 것이라 표현한다. (매우 표현이 애매하다 보니 확실하게 설명할 수 있는 분야는 아닌 거 같다.)
$P(x)$ 표현 방법 - Basic Discrete Distributions
$p(x)$는 x 입력에 대해 값이 나오는 구조일 수도, x를 샘플링할 수 있는 모델일 수도 있다.
Bernoulli distribution : (biased) coin flip
- $D = $ {$Heads, Tails$}
- Specify $P(X = Heads) = p$. Then $P(X = Tails) = 1 - p$.
- Write : $X$ ~ $Ber(p)$.
Categorical distribution : (biased) m-sided dice
- $D = $ {$1, …, m$}
- Specify $P(Y = i) = p_i$, such that $\sum_{i=1}^{m} p_i = 1$.
- Write : $Y$ ~ $Cat(p_1, …, p_m)$
Bernoulli를 표현하는 분포는 숫자가 한 개 필요하다. Heads or Tails의 구조이기 때문에 하나가 p이면 다른 하나가 1-p의 값을 가지면 되기 때문이다. Categorical의 경우는 n개의 요소가 있으면 n-1개의 숫자가 필요하다. RGB 예시를 통해 파라미터 개수를 계산해보자.
RGB 결합 분포(joint distribution)의 각 픽셀을 모델링해보자.
- $(r, g, b)$ ~ $p(R, G, B)$
- Number of cases : 256 × 256 × 256
- Number of parameters to specify : 256 × 256 × 256 - 1
RGB 이미지 픽셀 하나에 있는 r, g, b 각각이 256개의 경우(0~255)를 가지고 따라서 한 픽셀의 경우의 수는 256 * 256 * 256개이다. RGB의 경우는 Categorical 분포이기 때문에 파라미터는 256 × 256 × 256 - 1 개가 필요하다. 하나의 RGB 픽셀을 완전히 묘사(fully describe)하기 위한 파라미터의 숫자는 엄청나게 많음을 알 수 있다.
Suppose we have $X_1, …, X_n$ of $n$ binary pixels (a binary image).
이번엔 픽셀이 binary인 이미지가 있다고 해보자. 각각이 n개의 픽셀로 되어 있을 때 $2^n$개의 경우의 수(possible state)가 있다.
Sampling from $p(x_1, …, x_n)$ generates an image.
p(x)에 설정해야할 파라미터 수는 경우의 수에서 1개를 뺀, $2^n - 1$ 개가 된다.
Conditional Independence
$2^n$ 처럼 지수 단위로 커지는 파라미터를 줄여보고 싶다. 여전히 n개의 바이너리 픽셀을 예시로 들자.
What if $X_1, …, X_n$ are independent, then
$p(x_1, …, x_n) = p(x_1)p(x_2)…p(x_n)$
n개의 픽셀이 모두 독립(indenpendent)이라 가정하자. 사실 말이 안 되는 과정이긴 하다. 서로 인접한 픽셀은 비슷한 색을 가질 거라 보통 가정한다(모든 픽셀이 독립이면 표현할 수 있는 분포는 white noise 밖에 없기 때문).
각 픽셀에 번호를 순서(order)를 매김으로써 X는 일종의 시계열 데이터라고 볼 수 있다. 백색잡음과정(White Noise Process)이란 서로 독립이고 동일한 분포를 따르는(independently and identically distributed; i.i.d) 확률변수들의 계열로 구성된 확률과정이다.
이 때 경우의 수(possible state)는 $2^n$으로 처음과 똑같다. 모든 픽셀이 0 또는 1을 가질 수 있으니 n개의 픽셀이면 $2^n$로 변하지 않는다. 그런데 필요한 파라미터의 숫자는 n개만 있으면 된다. 각각의 픽셀에 대해서 파라미터 1개만 있으면 되고, 이 n개가 독립적으로 있으니 다 더하면 된다. 동일한 n개의 픽셀 간의 binary 이미지인데 파라미터가 줄었다. 다시 말하지만 이게 가능한건 n개의 픽셀이 독립적이라는, 말도 안 되는 가정(assumption) 때문이다.
$2^n$ entires can be described by just n numbers! But this independence assumption is too strong to model useful distributions.
두 가지 경우의 중간 어딘가를 찾고 싶다. 완전히 종속(fully dependent)이면 파라미터가 너무 많이 필요하고, 독립이면 너무 줄어든다. 이 때 나타나는 개념이 조건부 독립(conditional independence)이다.
Chain rule
$p(x_1, …, x_n) = p(x_1)p(x_2|x_1)p(x_3|x_1,x_2)…p(x_n|x_1, …, x_{n-1})$
n개의 joint distribution을 n개의 condition distribution으로 바꾸는 규칙이다. 이는 항상 성립(exact)한다. $x_1$과 $x_n$ 사이의 독립에 상관 없이 항상 만족한다.
Bayes' rule
$p(x|y) = p(x, y) / p(y) = p(y|x)p(x) / p(y)$
Chain rule처럼 이것도 exact 하다.
Conditional Independence
If $x ⊥ y | z$, then $p(x | y, z) = p(x | z)$
x and y are conditional indenpendent given z.
x, y는 확률 변수(random varaible)인데, x라는 확률 변수(random variable)를 표현하는 데 z가 주어지면 y는 없어져도 상관이 없다. 이를 이용하면 Chain rule에서 뒷단에 붙는 conditonal 부분은 날려줄 수 있다. 두 가지를 섞어서 아까 우리가 원했던 그 중간 지점을 찾을 수 있다.
다시 Chain rule로 돌아가보자.
$p(x_1, …, x_n) = p(x_1)p(x_2|x_1)p(x_3|x_1,x_2)…p(x_n|x_1, …, x_{n-1})$
Chain rule에서 파라미터는 몇 개 필요할까?
- $p(x_1)$ : 1 parameter
- $p(x_2 | x_1)$ : 2 parameters (one per $p(x_2 | x_1 = 0)$ and one per $p(x_2 | x_1 = 1)$)
- $p(x_3 | x_1,x_2)$ : 4 parameters
- Hence, $1 + 2 + 2^2 + … + 2^{n-1} = 2^n - 1$, which is the same as before.
바뀌지 않는다. Joint distribution을 Chain rule을 통해서 Conditional distribution의 곱으로 표현했는데, 어떤 가정도 하지 않았기 때문이다. 따라서 완전히 종속인(fully dependent) 모델과 같은 숫자의 파라미터를 갖겠다고 예상할 수 있다. 달라진 게 없으니까, 똑같은 출발을 해서 어떤 가정도 하지 않고 Chain rule만 갖고 모델을 바꿨으니까 변하지 않는건 당연하다.
Markov Assumption
Now, suppose $X_{i+1} ⊥ X_1, … , X_{i-1} | X_i$ (Markov assumption), then
$p(x_1, …, x_n) = p(x_1)p(x_2|x_1)p(x_3|x_2)…p(x_n|x_{n-1})$
i+1번째 픽셀은 i번째 픽셀에만 종속(dependent)이라고 가정해보자. 그러면 식이 간단해진다. $2n - 1$개의 파라미터가 필요해진다. 이 가정을 적용하여 지수 수준에 머물러 있던 파라미터 숫자를 줄일 수 있다(By leveraging the Markov assumption, we get exponential reduction on the number of parameters). Auto-regressive 모델은 이 조건부 독립을 적용한 모델이다.
Auto-regressive Model
Suppose we have 28 × 28 binary pixels.
Our goal is to learn $P(X) = P(X_1, …, X_784)$ over $X ∈ {0, 1}^784$.
Then, how can we parametrize $P(X)$?
AR 모델은 하나의 정보가 이전 정보들에 의존(dependent)하는 모델이다. Markov assumption에서 i번째 픽셀은 i-1번째 픽셀에만 종속인 AR 모델이었지만, i번째 픽셀이 1부터 i-1번째까지, 모든 히스토리에 의존(dependent)하는 것도 AR 모델이다. 전반적으로 하나의 정보가 이전 정보에 의존하는 것들을 AR 모델이라 부른다.
이미지 도메인을 AR 모델에 활용할 때 중요한 게 순서(ordering)다. 그러나 예시처럼 1부터 784까지 순서 매김이 명확하지 않은게 2차원 공간을 1차원으로 매기기 때문에 성능이 달라지고 방법론이 달라질 수도 있다. AR 모델이 단순히 이전 정보 한 개만을 고려할 수도 있지만 이전 세 개 혹은 다섯 개를 고려할 수도 있고 다 할 수도 있다. 이전 n개를 고려하는 걸 AR-n 모델이라고 한다. 이런 의존성(dependency)을 어떻게 주는지, 즉 조건부 독립(Conditional indenpendence)을 어떻게 가하는지에 따라 전체 모델의 구조(structure)가 달라지게 된다. Markov Assumption을 주거나, 어떤 임의의 조건부 독립 가정을 주는 것이, Chain Rule 입장에서 Joint Distribution을 쪼개는 것과 어떤 관계가 있는지를 생각해봐야 한다.
NADE : Neural Autoregressive Density Estimator
The probability distribution of i-th pixel is
$p(x_i | x_{1:i-1}) = σ(α_ih_i + b_i)$ where $h_i = σ(W_{<i^{x_{1:i-1}}} + c)$
i번째 픽셀을 첫 번째부터 i-1번째 픽셀에 의존(dependent)하게 하는 모델이다. 첫 번째 픽셀의 확률분포를 어느 것에도 종속되지 않은 상태로 만들고, 두 번째 픽셀의 확률분포는 첫 번째 픽셀에만 의존하게 한다. 첫 번째 픽셀 값을 입력값으로 받는 신경망(NN)을 만들어서 나온 결과값(single scalar)이 sigmoid 함수를 통과해서 0에서 1 사이 수로 바뀐다. 다섯 번째 픽셀을 만들 때는 첫 번째와 네 번째까지의 값을 받아서 똑같이 신경망과 sigmoid를 통과하는 과정을 거친다. 이 모델에서 알 수 있는건 i번째 픽셀은 i-1개의 입력에 종속적이라 AR 모델이고, 각 신경망(NN) 입장에서는 입력 차원이 달라지기 때문에 가중치(weight)가 계속 커지게 된다. 첫 번째 픽셀을 만들 때는 아무 것도 필요없지만, 세 번째 픽셀에 대한 신경망을 만들 때는 두 개의 입력을 받는 가중치가 필요하고, 100번째 픽셀에 대한 확률 분포를 만들 때는 99개의 입력을 받을 수 있는 신경망이 필요한 것처럼 말이다.
Suppose that we have a binary image with 784 binary pixels (i.e., ${x_1, x_2, …, x_{784}}$).
Then, the joint probability is computed by
${x_1, …, x_{784}} = p(x_1)p(x_2 | x_1) … p(x_{784} | x_{1:783})$ where each conditional probability
$p(x_i | x_{1 : i-1})$ is computed indenpendently.
NADE는 explicit 모델이다. 단순히 생성(generation)만 할 수 있는 게 아니라 임의의 784개의 입력(binary vector)이 주어지면 확률을 계산할 수 있다. 784개의 픽셀이 주어지면 joint distribution을 chain rule을 통해 conditional distirubtion으로 쪼갠다. 첫 번째 픽셀에 대한 확률 분포를 알고 있고, 첫 번째를 알면 두 번째를 알게 되고, 그걸 알면 세 번째를 알아가는 과정을 거쳐 각각을 독립적으로 넣어 곱하면, 매우 작은 값이겠지만 확률 값이 하나 나오게 된다. Density Estimator라고 부르는 것도 이렇게 확률값을 추정할 수 있기 때문이다. 일반적으로 Density Estimator를 다루는 논문에 들어가 있으면 explicit 모델을 얘기할 때가 많다. Density가 확률 밀도이니까, explicit하게 계산할 수 있음을 의미하기 때문이다. implicit는 위에서 언급했듯이 단순히 생성(generation)만 할 수 있다. 주어진 예시는 binary 픽셀이라 출력값이 sigmoid 함수를 통과했는데, 연속 확률 변수(Continuous random variable) 가우스 혼합 모델(mixture of Gaussian)을 마지막 레이어에 활용해서 연속 확률 분포(Continous distribution)를 만들 수 있다.
혼합 모델(Mixture model)은 통계학에서 전체 집단 안의 하위 집단의 존재를 나타내기 위한 확률 모델이다. 가우스 혼합 모델은 데이터마이닝, 패턴 인식, 머신 러닝, 통계 분석 등에 광범위하게 쓰인다. 이 때 모델의 파라미터들은 EM 알고리즘(기댓값 최대화 알고리즘(expectation-maximization algorithm, 약자 EM 알고리즘)을 통해 구한다.
Pixel RNN
We can also use RNNs to define an auto-regressive model.
For example, for an n × n RGB image,
$p(x) = ∏^{n^2}_{i=1} p(x_{i, R} | x_{<i}) p(x_{i, G} | x_{<i}, x_{i, R}) p(x_{i, B} | x_{<i}, x_{i, R}, x_{i, G})$
픽셀 RNN은 어떤 이미지에 있는 픽셀을 만들어내고 싶은 모델이다. n × n 이미지가 있을 때, rgb 픽셀을 고려하게 되고, i번째 픽셀의 R을 만들고 G, B를 만든다. 차이점은 앞의 AR 모델은 완전 접속망(fully connected layer)을 통해 만들었다. i번째 픽셀은 1부터 i-1개 입력을 고려할 수 있는 신경망(NN), 정확히는 dense layer를 만든 것이다. 픽셀 RNN은 대신에 순환 신경망(Recurrent Neural Network)을 만든 것이다. 순서(ordering)를 어떻게 매기냐에 따라 두 가지 이름이 붙는다. ROW LSTM은 i번째 픽셀을 만들 때 위쪽에 있는 정보를 활용한다. Diagonal BiLSTM은 양방향성(Bi-direcition)의 LSTM을 활용하되 픽셀에 대한 순서(ordering)를 매길 때 이전 정보를 활용한 RNN으로 픽셀 값을 예측하는데 사용이 된다.
도움 받은 곳
https://openai.com/blog/generative-models/
Generative Models
This post describes four projects that share a common theme of enhancing or using generative models, a branch of unsupervised learning techniques in machine learning.
openai.com
https://hoya012.github.io/blog/anomaly-detection-overview-1/
Anomaly Detection 개요: [1] 이상치 탐지 분야에 대한 소개 및 주요 문제와 핵심 용어, 산업 현장 적
이상치 탐지 (Anomaly Detection) 분야에 대해 주요 용어들을 정리하며 소개를 드리고 산업 현장에 적용되는 여러 가지 사례들을 소개 드립니다.
hoya012.github.io
시계열 분석1. 백색소음(white noise)이란?
안녕하십니까, 데분콘입니다. 이번 글은 white noise의 정의와 기본 가정을 알아보고, 기본 가정을 왜 그렇게 정했는지 살펴보겠습니다. 0. 시계열 데이터란? 시간(1, 2, ···, n, ···) 순서에 따라 수
dabuncon.tistory.com
https://datalabbit.tistory.com/109
[시계열분석] 백색잡음과정(White Noise Process)
Review 참고 포스팅 : 2021.07.04 - [Statistics/Time Series Analysis] - [시계열분석] 정상성(Stationarity) [시계열분석] 정상성(Stationarity) Review 참고 포스팅 : 2021.02.02 - [Statistics/Time Series Analysis] - [시계열분석] 확
datalabbit.tistory.com
12-02 양방향 LSTM과 CRF(Bidirectional LSTM + CRF)
**이번 챕터는 아래의 챕터를 이미 실행한 상태라고 가정합니다.** 이전 챕터 링크 : https://wikidocs.net/97519 이번 챕터에서는 기존의 양방향 LST…
wikidocs.net
https://hwiyong.tistory.com/274
Pixel Recurrent Neural Network
Abstract Modeling the distribution of natural images is a landmark problem in unsupervised learning. This task requires an image model that is at once expressive, tractable and scalable. We present a deep neural network that sequentially predicts the pixel
hwiyong.tistory.com
https://ko.wikipedia.org/wiki/%ED%98%BC%ED%95%A9_%EB%AA%A8%EB%8D%B8
혼합 모델 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 혼합 모델(Mixture model)은 통계학에서 전체 집단안의 하위 집단의 존재를 나타내기 위한 확률 모델이다. 좀 더 형식적으로는 전체 집단의 확률 분포를 나타내는
ko.wikipedia.org
https://arxiv.org/abs/1605.02226
Neural Autoregressive Distribution Estimation
We present Neural Autoregressive Distribution Estimation (NADE) models, which are neural network architectures applied to the problem of unsupervised distribution and density estimation. They leverage the probability product rule and a weight sharing schem
arxiv.org
'AI / DL > boostcourse' 카테고리의 다른 글
[딥러닝 기초 다지기] 5. Generative Models (2) (0) | 2022.12.13 |
---|---|
[딥러닝 기초 다지기] 4-2. Sequential Models - Transformer (0) | 2022.11.02 |
[딥러닝 기초 다지기] 3-3. Computer Vision Applications (0) | 2022.10.25 |
[딥러닝 기초 다지기] 3-2. Modern CNN - 1x1 convolution의 중요성 (0) | 2022.10.24 |
[Github으로 따라하는 버전 관리] Git 협업 (0) | 2022.10.07 |
댓글