일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ai tech
- GRU
- Linux
- Til
- forward
- nn.Sequential
- LSTM
- ubuntu
- tensorflow
- RNN
- error
- kernel density estimation
- triu
- band_part
- pytorch
- Chrome Remote Desktop
- 네이버 부스트캠프
- 크롬 원격 데스크톱
- kde
- tril
- Today
- Total
무슨 생각을 해 그냥 하는거지
[학습정리] 2021-08-13 본문
※ 정보전달이 목적인 포스트가 아니라 개인 학습 기록 및 정리가 목적인 포스트입니다 ※
해당 포스트는 네이버 커넥트 재단의 부스트캠프 마스터님이신 최성준 교수님의 강의를 바탕으로 작성되었습니다.
1. 강의 복습 내용
[Generative Models Part 1]
Generative Model이란 뭘까?
단순히 무언가를 생성하는 것(sampling)뿐만 아니라 입력에 대한 확률값을 얻을 수 있는(density estimation) 모델을 generative model이라고 한다.
- p_{model}(x)를 정의하고 estimation한다면 explicit model이라고 한다.
- 정의하지 않고 sampling한다면 implicit model이라고 한다.
이미지 픽셀을 결정하는 데는 사실 엄청난 수의 파라미터가 필요하다.
RGB 이미지인 경우, R G B는 서로 독립적이기 때문에 한 픽셀에 대해 256x256x256-1 (1을 빼는 이유는 나머지를 다 알면 하나는 자동으로 구해지기 때문이다.)개의 파라미터가 생긴다. 어마어마하게 많다.
파라미터 수를 줄이기 위해 말도 안되는 가정을 세워보자. 만약 모든 픽셀이 independent하다면? (이러면 이미지는 그냥 white noise 밖에 표현을 못한다.)
binary pixel(0 또는 1) n개로 이루어진 이미지가 될 수 있는 모든 경우는 2^n 이다.
픽셀들이 dependent한 경우에는 p(x_1, ... , x_n)를 결정하는 파라미터의 수가 (2^n)-1이 된다.픽셀들이 independent한 경우에는 p(x_1, ... , x_n)를 결정하는 파라미터의 수가 n이 된다. (아래 수식처럼 확률의 곱 형태로 표현이 되니까)
픽셀들이 independent하면 2^n개의 상태(states? entries?)를 n개의 파라미터로 표현할 수 있는 것이다.
하지만 우리가 원하는 이미지들이 이렇게 모든 pixel들이 independent할 리가 없으므로...
위의 내용은 단지 픽셀들이 fully-dependent하지 않다면 파라미터 수가 적어진다라는 것을 알기 위한 것일 뿐이다.
그래서 fully-dependent와 independent의 사이인 conditional independent를 고려하게 됐다.
z가 주어졌을 때 x와 y가 independent하다면, x라는 random variable을 표현하는 데 있어 z가 주어지면 y는 전혀 상관이 없다는 의미이다. 이건 잠깐 킵해두자!
chain rule(조건부확률의 연쇄법칙)을 수식은 아래와 같다.
p(x_1)은 파라미터 1개, p(x_2|x_1)은 파라미터 2개(x_1이 1, x_1이 0. 이렇게 2개인건가?)
p(x_3|x_2,x_1)은 파라미터 4개 ((x_1, x_2)={(0, 0), (0, 1), (1, 0), (1, 1)} 이렇게 4개?)
이런식으로 결국 파라미터 개수는 (2^n)-1개로 fully-dependent와 여전히 똑같다. (당연)
여기서 뭔가 달라지려면 당연히 어떤 가정을 추가해야 할 것이다.
해당 픽셀이 바로 뒤의 픽셀에만 dependent하다는 Markov assumption을 적용해보자.
p(x_1)은 파라미터 1개, p(x_2|x_1)은 파라미터 2개, 그 뒤의 p(x_k|x_k-1) 또한 파라미터를 2개씩 갖게 될 것이다.
따라서 모든 파라미터 수는 2n-1이 된다. (p(x_1)만 한 개의 파라미터를 가지니까)
fully-dependent에 비해 드디어 파라미터 수가 줄어든 것이다. (Markov assumption 짱)
Auto-regressive model은 이런 conditional independency를 이용한다. 물론 바로 이전 시점만 고려하는 것 외에도 n개의 이전 시점을 고려하는 경우도 있다.
Auto-regressive model examples
NADE: Neural Autoregressive Density Estimator (2016)
- explicit model → 주어진 input에 대한 density를 계산할 수 있음.
Pixel RNN (2016)
chain의 odering을 어떻게 하냐에 따라 model architecture가 나뉜다.
- Row LSTM: For a pixel x_i the layer captures a roughly triangular context above the pixel as shown in Figure 4 (center). ← 논문에서 가져왔다.
- Diagonal BiLSTM
[Generative Models Part 2]
autoencoder는 generative model인가? VAE는 generative model이 맞지만 autoencoder는 아니다.
VAE에 대한 내용은 다른 블로그를 참조했다.
- autoencoder는 input 자신을 언제든지 reconstruct 할 수 있는 latent space z를 찾는 게 목적
- VAE는 input이 만들어지는 확률 분포를 찾는 것이 목적이다.
목적을 비교하니까 autoencoder가 generative model이 아닌 게 와닿는다.
VAE
사후확률(posterior distribution) p_theta(z|x)를 찾는 것은 굉장히 어려운 일이다.
그래서 (비교적 다루기 쉬운 분포) variational distribution q_phi(z|x)로 근사하는데, 최적의 variational distribution을 찾는 것을 variational inference(VI)라고 한다.
두 분포 사이의 KL-Divergence가 최소화 되도록 업데이트를 하면 되는데, 실제 분포를 모르면서 어떻게 KL-Divergence를 구할 수 있을까?
ELBO (Evidence Lower Bound)를 maximize 시키면, 두 확률 분포의 KL-Divergence(objective)를 최소화 시킬 수 있다. KL-Divergence는 다루기 힘든 항이지만, ELBO는 상대적으로 다루기 쉬운 항이기 때문에 ELBO를 maximize 하는 방향으로 분포를 업데이트 한다.
ELBO term을 두 개의 term으로 쪼개보자. Reconstruction term은 auto-encoder의 reconstruction loss를 minimize하는 term, Prior fitting term은 latent distribution을 prior distribution과 비슷하게 만들어주는 term이다.
2. 과제 수행 과정 / 결과물 정리
금요일에는 필수 과제가 없었고, 선택과제는 주말에 할 예정...ㅠㅠ
3. 피어세션 정리
- 다음주 피어세션을 어떻게 알차게 보낼지 드디어 가닥이 잡혔다.
- 하루에 하나씩 알고리즘 문제를 풀고, 일주일에 한 번 1인당 하나의 논문을 리뷰하고자 한다. (논문이 겹치지 않게 주말 내로 논문 이름을 보내기로 했다!)
- 스페셜 피어세션을 통해 다른 피어세션 팀에서는 하루에 한 명이 그날 강의 내용을 전체적으로 정리해 발표하는 시간을 갖는다는 사실을 알게 되었다. 강의 내용의 전반적인 정리에 도움이 될 것 같아 우리 팀도 다음주부터는 그렇게 진행하기로 했다.
4. 학습 회고
- 이번주에 특강이 많아서 & 잘 모르는 모델들에 대한 내용이 많아서 혼자 공부할 시간이 부족했던 것 같다.
- 그만큼 코어타임 외 시간을 활용해서 공부해야 하는데 컨디션도 안좋아서 공부에 시간 투자를 못했다... 전적으로 내 잘못이다. 컨디션 조절을 잘해야지😂
- 주말 내로 덜한 학습 정리(LSTM, Transformer)를 마무리하고, 선택과제도 봐야겠다.
- 강의는 9시부터 제공된다고 하니까, 다음주부터는 9시부터 강의를 보는 것도 괜찮을 것 같다. (흑흑 내 잠..)
'Naver AI Tech 2기 > Today I Learned' 카테고리의 다른 글
[학습정리] 2021-08-18 (0) | 2021.08.20 |
---|---|
[학습정리] 2021-08-17 (0) | 2021.08.17 |
[학습정리] 2021-08-10 (0) | 2021.08.12 |
[학습정리] 2021-08-09 (0) | 2021.08.09 |
[학습정리] 2021-08-06 (0) | 2021.08.06 |