- 2019년 6월 28일 오후 5:52
- 조회수: 7455
REFERENCES
INFORMATION
- 2019년 7월 5일
- 오후 1시 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

금일 세미나는 Autoregressive Generative Models라는 주제로 진행했다. Generative 모델은 데이터 자체가 가지는 패턴과 구조를 unsupervised learning으로 학습하여 새로운 데이터를 생성하는 모델이다. 데이터의 density를 다루는데 있어서 generative 모델은 다양한 종류로 구분할 수 있는데 오늘 세미나에서 다룬 모델은 그 중에서 'density를 수식으로 정의할 수 있는' explicit & '학습에 있어서 density를 수학적으로 쉽게 미분, 적분 등이 가능한' tractable density에 속한다. Autoregressive는 과거의 자기 자신을 사용하여 현재의 자신을 예측하는 모델이다. 일반적으로 시계열, 텍스트 등 '시간종속성'을 갖는 데이터에 많이 사용되지만, 이전에는 이미지 데이터를 학습하는데도 많이 사용이 되었다.
Pixel Recurrent Neural Networks라는 논문에서 PixelRNN, PixelCNN이 갖고 있는 구조가 모두 소개된다. Autoregressive 모델을 구성하기 위해서는 데이터간 dependency 순서를 정해주는 것이 핵심적인데 이미지 픽셀의 dependency는 왼쪽위에서 오른쪽 아래 방향으로 정의하고 색깔은 RGB 순서대로 정의한다. 이러한 종속성을 RNN, CNN 등의 테크닉을 통해서 반영하기 위해서는 다소 복잡한 masking 테크닉이 요구된다. PixelRNN에서는 State-to-State 연산을 효과적으로 수행하기 위한 mapping architecture를 소개하였고, PixelCNN에서는 Input-to-State만으로 모든 정보를 전달하기 위한 masked convolution을 소개했다. 해당 논문에서는 이미지 데이터에 autoregressive 개념을 적용을 하기 위해 제안한 방법들이었지만, 조금 수정을 하면 다양한 도메인에서 사용할 수 있다고 생각한다. 추가적으로 PixelCNN이 갖는 blind point, long-term dependency 등의 문제점을 극복하기 위한 후속 연구인 Gated PixelCNN, PixelCNN++ 등에 대해서는 간단한 아이디어와 해결방법만 소개했다.
WaveNet은 raw audio 데이터를 생성하기 위한 모델이다. 음성 데이터는 이미지 데이터보다 순간순간의 변화가 심하다. 또한 데이터를 생성하기 위해서 고려해야 하는 데이터 관측치의 개수가 이미지에 비해 훨씬 많다. 많은 관측치 개수를 반영하는 것은 결국 receptive field의 크기를 증가시켜야 해결을 할 수 있는데 RNN, LSTM 등을 사용할 경우 너무 많은 연산량이 요구된다. 이를 해결하기 위해 causal dilated convolution을 사용해서 레이어를 많이 쌓을수록 receptive field의 크기를 exponential하게 증가시킬 수 있다. 또한 순간순간의 변화를 학습하기 위해 모델의 non-linearity를 증가시켜야 하는데 gated block, residual, parameterized skip-connection 등의 구조를 모두 결합시켰다. 2016년도에 나온 논문인만큼 현재는 WaveNet을 기반으로한 많은 변형모델들이 소개되고 음성 데이터 분석을 하는데 있어서 다양한 분야에서 좋은 성과를 거두고 있다.
청취자 후기

시퀀셜 데이터에서 이전 시점들에 해당하는 데이터를 통해 다음시점을 예측하는 autoregressive 생성모델에 대한 발표였다. 시계열, 오디오, 텍스트 데이터에 이러한 접근법이 유용하게 쓰일 수 있다는 것은 알고 있었지만 이미지 데이터에도 적용될 수 있다는 점이 상당히 흥미로웠다. 이미지에 autoregressive 방식을 적용하는 것이 가능한 이유는 한 픽셀이 그것의 좌상단의 픽셀에 대한 dependency를 갖는다는 가정을 하였기 때문이다. 이 가정에 따라 이미지는 모델이 가장 왼쪽 위의 픽셀부터 오른쪽 아래로 픽셀까지 차례대로 찍어나감으로써 완성된다. 이미지의 하단부를 가리고 그것을 예측하게 하는 테스크에서 이러한 모델의 가정이 어느정도 타당하였음을 볼 수 있었다. 하지만 이미지를 생성하는 것 결국엔 또한 사람이 그림을 그리는 과정을 모사하는것이 좋을 것이란 생각이 들었다. 왼쪽 위에서 오른쪽 아래로 픽셀을 찍어나간다는 것은 물체나 형태에 대한 이해를 통해 이미지를 생성한다기 보다는 단순히 컴퓨터가 보기에 자연스러운 이미지를 만들어나가는 것이 아닐까? 먼저 이미지에 포함될 물체를 선정한 뒤 그것들을 3차원 공간상에 배치하고 빛에 의한 효과를 고려한 뒤 2차원으로 표현하는 것이 궁극적으로 이미지를 만들어내는 것이 아닐까 라는 생각이 들었다. 물론 물체를 3차원으로 생성해야 한다는 큰 어려움이 존재하지만 이러한 방향의 연구는 언젠가는 꼭 이루어지게 될 것 같다.

Generative Model은 기존의 Classification / Regression과 달리 데이터를 생성하기 위해 주어진 데이터 집합의 분포를 학습하는데 목적이 있다. 데이터의 분포를 학습함으로써, 학습된 모델을 통해 기존의 데이터와 유사한 데이터는 새로 생성할 수 있다. 일반적으로 Generative Model이라 하면, 흔히들 Generative Adversarial Network (GAN)을 생각한다. 그러나 본 세미나에서는 Generative Model의 다른 형태인 Autoregressive Generative Model에 대해 다뤘다. Autoregressive에서도 알 수 있듯 t-1시점까지의 데이터를 통해 t 시점의 데이터 자신을 예측하게 된다. 이러한 형태의 학습 기법은 시계열, 텍스트 또는 signal 형태의 데이터를 학습하는데 주로 사용된다. 본 세미나에서 다룬 PixelCNN/RNN은 이러한 autoregressive 학습 형태를 이미지에 적용한 것으로 생각된다. 이미지에 포함된 각각의 pixel을 하나의 sequence라 가정하고 순차적으로 학습 및 추론을 수행하게 된다. 이러한 방식을 통해 데이터를 학습하게 되고, 이 과정에서 연산량을 줄이고 효과적으로 학습하기 위해 다양한 trick를 사용하였다. 최근 GAN이 sequence / 텍스트 등 다양한 분야에 적용이 되고 있으나, GAN의 학습이 어렵다는 점을 감안할 때, Autoregressive generative model이 오히려 이러한 상황에서 적절한 접근법이 될 수 있다고 생각된다.

오늘 세미나는 Autoregressive Generative Models에 대한 주제로 민구형이 발표하였다. Generative는 우리가 학습하지 않은 새로운 데이터를 만들어 내는 것이고, Autoregressive는 자기 자신을 입력으로 하여 자기 자신을 예측하는 모델이며 이전 상태의 정보들에 기반하여 예측을 수행한다. 두 단어의 정의를 합쳐 나온 모델에는 이미지 데이터를 다루는 PixelRNN, PixelCNN이 있으며 오디오 데이터를 다루는 WaveNet이 있다. 기본적인 RNN과 CNN에 대해 아는 상태에서 이미지의 각 Pixel을 Sequence한 데이터로 생각하여 학습을 진행하는 부분에서 매우 흥미로웠고, 오디오 데이터에서도 Autoregressive 정의가 적용되어 학습을 진행하는 부분에서 새로운 개념을 배울 수 있었다. WaveNet은 생소한 부분이라 첨부한 논문을 통해 다시 한 번 공부를 하여 이해할 필요를 느꼈고 전반적으로 매우 재미있었다. 또한 텍스트 데이터, 시계열 데이터만이 아닌 이미지의 Pixel을 처리하는 방법에 대해 배울 수 있었던 시간이었다.

금일 세미나는 "Autoregressive Generative Models" 에 대해 세미나가 진행 되었다.
PixelRNN, PixelCNN, wavenet 에 대해 진행 되었는데 우선 Generative 에 대해 기존에는 supervised 방식으로 학습하였던것을 데이터 자체로써 가지고 있는 특징을 이해하기 위한 시도를 하고 있는 추세라고 한다.(unsupervised). autoregressive 가 자기 자신을 입력하여 자기 자신을 예측하는 모델이라고 설명을 들었다. sequence data 이기 때문에 보통 이러한 학습 기법은 시계열, 텍스트 또는 wave(audio) 형태의 데이터를 학습하는데 주로 사용된다. 장점은 generate 가 쉽고 정의하기가 쉬운 반면 단점은 순석에 dependent 하고 시간이 오려 걸린다. 세미나에서는 PixelCNN,PixelRNN 으로 이미지를 일련의 sequence 로 생각하여 진행 하였는데 여러 제약 조건을 따라야 하지만 잘 동작하는것이 흥미로웠다.
GAN 이 이미지에 대해서 잘 쓰인다고 들었는데 이 외에도 또다른 가능한 모델을 알게 되어서 좋았다.

오늘 세미나는 지난 민구오빠의 세미나 WaveNet 이전의 deep learning 기반의 autoregressive generative 모델 PixelRNN과 PixelCNN에 대해서 주로 다루어졌다. WaveNet은 audio generation 모델인 반면에 오늘 다루어진 PixelRNN과 PixelCNN은 image generation을 위한 모델이라는 점에서 task가 다르지만 세 모델들은 deep learning 기반의 autoregressive한 generative 모델이라는 점에서 많은 점이 유사하다. 세 논문 모두 Google DeepMind에서 나온 것으로 물론 일부 저자도 공통적으로 포함되어있다. WaveNet 모델이 짜잔 하늘에서 떨어진 게 아니고 그동안의 많은 시행착오와 노력으로 만들어졌구나 싶었다. Image 데이터들의 분포를 추정하고 그것으로 새로운 data를 generation 하는 것은 기존 GAN, VAE을 다룬 세미나에서 다루어졌던 것처럼 고차원이기에 일단 어려움이 크다. 픽셀이 28*28이라고하면 784의 random variable로 구성된 결합확률분포를 추정해야되는 일이다. 이를 조건부확률분포를 사용해 쉽게 분해할 수 있는대 이때 텍스트나 시계열, 음성 signal 정보 같은 경우는 이전 시점의 값들을 condition으로 두는 것이 쉽게 이해가 된다. 하지만 이를 image에 적용하기위해 좌측 상위 pixel를 condition값으로 두는 것은 사실 그렇게 탐탁지는 않다. 하지만 GAN이 나오기 전에는 시도할 수 있는 방법으로는 최선이 아니었을까 생각이 든다.

오늘 전체세미나는 'Autoregressive Generative Models: PixelRNN, PixelCNN and WaveNet'라는 주제로 민구형이 진행하였다. 우리는 주로 예측모델링을 진행할 때, (1)설명변수(X)와 반응변수(y)를 구분하고, (2)X로부터 y를 잘 구분짓는(분류문제 경우) 함수f(X|y) 를 찾아나간다. 'Autoregressive Generative Models'은 이 두 가지에서 차이를 보인다. 'Autoregressive' 라 함은 곧 설명변수와 반응변수가 하나로 같은 경우를 의미한다. 날씨, 기온, 텍스트와 같은 순서정보가 중요한 시계열 패턴 데이터가 그 예다. 'Generative model'이라 함은 각각의 y를 잘 설명하는 데이터 구조 f(X,y)를 학습한다. Hidden Markov model, Generative adversarial nets와 같은 모델이 있다.
오늘 세미나에서는 'Autoregressive Generative Models'계열 알고리즘으로 Pixel RNN, Pixel CNN, WaveNet에 대해 소개해 주었다. RNN, CNN은 주로 예측에 초점을 두어 사용했었는데 생성모델로써 접근한 경우는 거의 처음 보는 것 같다. 특히 Pixel RNN을 이미지 데이터에 적용한 경우가 눈에 띄었다. 이미지 채널 내 셀 하나하나를 관측치로 보고, 그들의 순서정보를 활용하여 generative model을 구축하는 것이다. 순서정보를 어느 방향으로 반영할 지는 사용자 선택이다.
요즘 연구하고 있는 것 중 하나가 다채널 시그널 데이터를 이미지(2차원,3차원)으로 만들어 예측문제에 적용하는데 이 역시 순서정보가 중요하다. Pixel RNN, Pixel CNN을 적용해 볼 수 있을 것으로 생각한다. Generative model도 예측에 활용할 수 있기 때문이다. 클래스별 generative model(GM) 을 구축한 후(예를들어 GM_class1, GM_class2), 새로운 데이터가 적용되었을 때, 어느 GM에 가까운지 유사도를 보고 클래스를 선택하는 방향으로 예측하면 된다. 'Autoregressive', 'Generative model'에 대한 개념을 다시한번 짚고, 개인연구에 적용할 아이디어를 생각할 수 있는 계기가 된 세미나였다.

오늘은 생성모델 분야에서 최근 GAN과 VAE이 패권을 잡기 전 모델인 Pixel RNN/CNN 그리고 WaveNet에 대해서 알아보았다. Density Modeling 관점에서 사전에 알고 있던 모델과 비교를 해보자면, GAN는 결합분포를 explicit하게 표현하지 못하고 implicit하게 가진 형태이며, VAE와 이번 시간에 다루는 모델들은 explicit한 표현이 가능하다. 결합분포 식을 '직접' 계산가능 할 때 tractable이라고 하는데, VAE는 결합분포를 적분식으로 표현되고 안타깝게도 이를 ‘직접’ 적분하지 못하기 때문에 variational inference로 '추정'하게 된다. 하지만, 이번 시간에 다루는 Pixel RNN/CNN(및 WaveNet)은 이전 sequence를 사전확률분포로 바로 다음에 있을 한 target(e.g 픽셀, 음정)을 생성하는 autoregressive 모델이다. 따라서, 다음 추정할 target의 분포는 이전 time step에 있던 target들의 분포 간 곱으로 explicit & tractable하게 표현이 가능하다. Autoregressive 특성 때문에 반드시 사전에 정의한 t의 진행 '방향'이 있게 되는데, 수식적으로 말하면 ‘결합분포를 어떠한 곱의 조합으로 표현해내는가’가 되며, 이는 모델 성능에 영향을 미치게 된다. 추정할 target pixel의 인근 두 픽셀로부터 추정하고, 또 그 각각의 픽셀은 마찬가지로 자기 인근의 pixel로부터 값을 얻어오는 식으로 recursive하게 풀어서 얻어온다. 이때 그 풀어 쓰는 방향에 따라서 Pixel RNN의 세부종류(Row vs Diagonal)가 정해졌다. 그 이전의 값을 계속 얻어와야 한다는 특징으로부터 오는 느린 계산속도를 보완하기 위해 해당 receptive field를 Convolution 으로 뚝딱해버리는 PixelCNN 방식도 있는데 계산이 빠른 대신 성능(Log-likelihood)가 그리 좋지 않다고 한다. 그래서 이를 또 보완하기 위해 여러가지 테크닉(Downsampling, Short-cut connections,...etc) PixelCNN++ 도 소개가 되었다. 세미나 마지막으로 소개된 WaveNet은 image(2D)가 아닌 음성 데이터(1D)에 대해서 autoregressive generative model이었다. 음성 데이터 같은 경우 1초에만 해도 일반적으로 16000개의 샘플이 추출되기 때문에 자잘한 변동이 많을 뿐만 아니라 유의미한 길이의 output(수십초 이상)을 내기 위해서는 이미지 데이터와 비교했을 때보다 더 많은 training이 필요하게 된다. 단순하게 이미지처럼 receptive field를 잡게 되면 long-term dependency 문제를 해결하지 못하기 때문에 상위 convolution layer로 갈수록 convolution을 할 때 n배수로 건너뛰면서 더 넓은(exponential한) receptive field를 갖게 된다. Autoregressive generative model 모델도 여러 생성모델 중 하나의 유망주였겠지만, 세월이 지나 GAN, VAE, attention model 모델에 눌려버린 것을 보면 어찌 됐든 간에 공부는 꾸준히 해야 되겠구나 라는 생각이 절로 들었다. 비록 지금 인기 있는 model은 아니지만 이렇게 generative model의 다른 한 갈래를 깔끔하게 소개해준 민구형에게 감사하다.

금일 세미나는 autoregressive generative model인 PixelRNN, PixelCNN, PixelCNN++, 그리고 WaveNet에 대한 간략한 소개로 진행되었다. 복잡한 데이터의 생성 과정을 효과적으로 학습하고 이해하기 위해 variational autoencoder, generative adversarial net등의 deep generative model이 연구되었다. Autoregressive generative model은 데이터의 generating process에 자기상관성(autoregressive)을 반영하여 더 좋은(실제에 가까운) 결과물을 만들어내기 위한 방법론이다. 이미지의 경우 인접한 픽셀들 간에 상관관계가 있으며, 소리 또는 시그널의 경우에도 시계열 데이터이기 때문에 자기상관성을 반영하여 모델링 한다면 이를 고려하지 않을 때 보다 좋은 결과를 얻을 수 있을 것이라고 기대할 수 있다. PixelRNN과 PixelCNN은 자기상관성을 고려하기 위한 autoregressive generative model들 중 하나이며, 이외에도 다양한 관점에서 autoregressive generative model이 연구되고 있다. 세미나의 설명이 간략한 점은 좋았으나, 배경이나 핵심 아이디어에 대해 조금 더 디테일하게 설명이 있었다면 deep generative model과 autoregressive model에 대해 잘 모르는 사람도 이해하는 데 더 많은 도움이 되었을 것 같다.

금일 세미나는 'Autoregressive Generative Models'라는 주제로 민구 형이 진행을 하였다. 특히 인상적이었던 부분은 WaveNet 부분이었다. 오디오는 1초에 16,000개의 샘플이 생성된다고 한다. 또한 이러한 샘플들끼리 Dependency가 존재한다. 이러한 Dependency를 제거하고 CNN에 샘플들을 태워서 똑같은 오디오를 생성하는 알고리즘이 바로 WaveNet 이었다. WaveNet은 특정 오디오 샘플이 입력되어, 똑같은 오디오를 출력하게 하는 알고리즘이다. 다시 한번 발표자료를 보며 다음의 생각이 들었다. 주식/ 선물의 값들 또한 틱단위로 가격이 계속 변한다. 일정 기간 동안 가격의 변동을 오디오와 같이 생각해서 WaveNet을 이용해 학습한다면 주식/선물시장의 변동을 예측할 수 있을 것이라는 생각이 들었다. 직접 코드를 보고, 학습 과정에 대한 부분까지 살펴보지 못했지만, 추가적으로 찾아본 뒤 이를 주식/선물 가격 예측에 적용해 볼 수 있다는 생각이 들었다.
또한 Pixel CNN/ RNN에 관한 내용을 소개해주었다. 해당 부분은 이미지 내에서도 Pixel 별로 순서가 있다고 가정하고 이를 이용해 똑같은 입력 이미지를 생성하는 모델이다. Pixel CNN/ Pixel RNN의 시간과 정확도의 trade off 가 존재한다는 내용도 언급해주었다. 이들과 더불어 Pixel GAN에 관해서 3개를 엮어서 비교해보는 공부도 나에게 필요 할 것으로 생각한다.

오늘 세미나는 Autoregressive Generative Models에 대한 내용을 채워졌다. 평소 이름만 많이 들어보던 PixelCNN, WaveNet에 대한 자세한 설명을 들을 수 있어서 좋았다. PixelCNN에서는 픽셀 간 순서를 가정하여 조건부 확률로 풀어내는데, 1D 정보를 다루는 WaveNet에 비했을 때 그 가정이 잘 와닿진 않는다. 하지만 이후 등장한 Glow와 같은 모델을 봤을 때 충분히 좋은 성능을 보이기 때문에 한편으론 놀랍다. 오늘 다룬 내용들을 이해하려면 convolution 연산의 정확한 구동 방식을 알고 있어야 하는데, 기초에 대한 정확한 이해가 모든 연구의 시작이 된다는 것을 다시 한 번 느꼈다. 기회가 된다면 WaveNet을 실제로 구현하여 다양한 실험을 해보면 좋을 것 같다.

오늘 세미나의 주제는 Autoregressive Generative Models: PixelRNN, PixelCNN and WaveNet이었다. Autoregressive는 과거의 정보를 이용하여 예측하는 방법이고 이러한 방법에 딥러닝(RNN, CNN)을 이용하여 generative 모델을 만들었다. Wavenet이 나오기까지의 전반적인 흐름을 설명해 주었고 여러 시도들이 있었다는 것을 알 수 있었다. 이러한 내용들을 보면서 autoregressive한 모델은 text분야에서도 비슷하게 사용되어 유사한 부분이 많이 있었다고 생각했다. 대부분의 사람들이 RNN과 CNN을 이용하여 과제를 하거나 프로젝트를 진행하는데 이 때 사용되는 정형적인 방식보다는 조금 더 다양한 방식으로 사용되었다. 이러한 시도들은 기존의 CNN에 대한 이해를 바탕으로 진행한 새로운 시도들이었으며 굉장히 자유롭게 변형하여 사용되는 느낌이었다. 예측을 진행해야 하는 프로젝트들 중에서도 미래에 사용할 수 있는 데이터가 없는 경우 Autoregressive 모델을 사용해야 하는데 유용하게 사용 될 수도 있을 것 같다.Wavenet을 사용해 본 적은 없지만 흥미로운 주제였으며 앞으로 공부를 할 때 좋은 가이드가 될 것 같다.

오늘 세미나는 Autoregressive Generative Model에 대한 내용이었다.
Generative Model은 새로운 데이터를 어떻게 만드느냐에 따라 두가지 관점으로 분류한다. 유명한 Generative Adversarial Network(GAN) 계열의 모델은 새로운 데이터를 생성하는 방법이 명시적이지 않지만 PixelRNN, PixelCNN, WaveNet, VAE 등은 결합확률의 분포를 명시적으로 표현하는 모델이다. 특히 오늘 다룬 세 모델은 쉽게 수식으로 표현가능하게 알고리즘을 제시하였다. Text의 경우에는 많이 보아왔던 Recurrent Neural Network을 Image와 Wave(audio)에 적응한 점이 새로운 시각을 갖게 해주었다.
Image의 경우 해상도가 높아지면서 Input의 값이 많아지고 Wave도 16kHz의 경우 초당 16,000건의 데이터가 생성되기에 Text보다 계산량이 많아지게 된다. RNN을 새로운 도메인에 적용하다보니 속도가 느려지는 문제가 발생하였기에 계산량을 줄이기 위한 3가지 방법(Row LSTM, Diagonal BiLSTM, PixelCNN)이 소개되었다.
이 세미나를 통하여 도메인을 한정짓지 않고 다른 모델을 사용해 볼 수 있는 가능성에 대해 배울 수 있었고 Computational Cost를 줄이기 위해 시도한 방법들 또한 앞으로 연구를 하면서 적용하는 것을 고려해볼 만한 시도라는 생각을 하였다.

금일 세미나는 민구 오빠가 'Autoregressive Generative Models'라는 주제로 PixelRNN, Pixel CNN 그리고 WaveNet까지 소개해주었다. Generative Model은 data와 label사이의 관계를 학습하여 우리가 학습하지 않은 새로운 데이터를 생성하는 것을 목적으로 하는 모델을 의미한다. Autoregressive model은 자기 자신을 입력으로 사용하여 이후 시점의 자기 자신을 예측하는 모델이며, 이전 상태의 정보들에 기반한 조건부 예측을 수행한다. 이 때,. Sequential generation이 병렬 처리가 불가능 하다는 점에서 학습 및 생성 과정에 연산 부하가 크다는 한계점이 지적되어왔고, 이를 개선하기 위한 딥러닝 기반의 알고리즘을이 한 갈래로 연구되어왔다. Pixel CNN과 RNN은 이미지의 픽셀을 하나의 벡터로 취급하여 autoregressive한 성격을 띄도록 관점을 바꾸어 접목시킨 연구이다. 가장 초기의 Pixel RNN은 그 다음 픽셀을 예측하기 위해 이전 시점들의 픽셀을 일렬로 반영하게 되는데, 이런 경우 연산 부하가 크고, 주변부가 아닌 단순한 sequential 특성만을 고려하게 된다. 이를 개선하기 위해 픽셀의 정렬 방법에 따라 Row LSTM, Diagonal BiLSTM이 제안되었고, 이후 시점의 이미지에 masking을 씌워 현재 시점까지의 정보만 활용하도록 구성된 Pixel CNN이 제안되었다. 오늘 세미나를 들으면서 이미지를 일종의 sequential 특성을 반영한 것 과 같이 데이터를 바라보는 관점에 따라 혹은 목적에 따라 다양하게 모델링할 수 있고 접목시켜 볼 수 있다는 것이 흥미로웠다. 특히 오늘 소개된 casual, dilated convolution 기법들에 대해서는 시간을 두고 개인적으로 학습해보고 싶다는 생각이 들었다.

오늘 세미나는 Autoregressive Generative Models 를 주제로 진행 되었다. 특히 대표 모델이라고 볼 수 있는 PixelRNN, PixelCNN 과 WaveNet의 기본 개념을 자세히 리뷰하는 시간이었다. 기존의 이미지 분석은 이미지 데이터를 기반으로 이미지 레이블을 예측하는 형태로 진행이 되었다. 즉 이미지 데이터와 이미지 레이블 사이의 관계를 학습하여 레이블을 예측하거나, 이미지를 분류하는데 많이 이용되고 있다. 이와는 다르게 Autoregressive generative model 에서는 이미지 데이터 내의 점들이 다음에 올 점과 밀접한 관계가 있다고 보고 그 다음 점을 예측하는 방식으로 학습을 한다. 따라서 학습된 모델을 이용하면 랜덤한 초기값으로부터 새로운 이미지를 생성할 수 있게 된다. 이미지, 오디오, 텍스트와 같이 데이터의 순서가 의미있는 경우에 유용하게 활용될 수 있다. 또한 VAE나 GAN 같은 generative model 과는 달리 개념적으로 이해하기에 더 좋은 것 같다. 오늘 세미나에서 소개하는 PixelRNN 이나 PixelCNN의 개념을 보면 이미지내의 pixel들을 하나의 시퀀스로 보고 각 pixel 은 이전 시점의 pixel 의 영향을 받는다는 것이다. 모델링을 위해 중요한 데이터 처리 방법을 세미나에서 소개해 주었는데 개념적으로 잘 이해가 되어 도움이 되었다. 꼭 이미지가 아니더라도 시계열 센서 데이터나 이러한 특성을 가지고 있는 데이터에 적용하면 의미있는 분석이 될 수 있을 것 같다. 오늘 세미나를 통해서 데이터를 분석하는 새로운 방법을 접할 수 있어서 좋았고, 결국 데이터가 가지는 특성을 이해하는 것이 중요하다는 것을 느꼈다.

금일 세미나는 PixelRNN, PixelCNN, WaveNet에 대한 전반적인 설명을 들을 수 있는 시간이었다. Autoregressive와 Generative Model에 대한 설명을 시작으로 PixelRNN, PixelCNN, WaveNet에 대한 설명이 이어졌다. 개인적으로 좋았던 점은 생소한 모델에 대해서 개괄적인 설명을 들을 수 있었다는 점이다. PixelRNN은 이미지의 픽셀 하나하나를 sequence로 생각하며 이미지를 생성하는 모델이다. 해당 모델은 이미지가 가지는 본질적인 특성을 반영해 학습을 진행하게 된다. PixelCNN의 경우 LSTM처럼 계산량이 많은 모델의 계산량을 줄이기 위해 제안된 방법이다. Convolution 연산만을 사용해 모델을 구축하는데, 특히 미래 정보를 반영하지 않기 위해 Masked Convolution을 사용하는 것이 특징이다. PixelCNN에 대한 설명 이후, Gated PixelCNN에 대한 설명이 이어졌는데, 이는 PixelCNN에 대한 개념에 추가적인 테크닉을 더한 모델이다. Gated PixelCNN은 blind spot이 발생하는 PixelCNN의 단점을 극복하고자 Horizontal & Vertical Stack 기법을 활용하였다. 이를 통해 blind Spot이 발생하지 않고 모든 픽셀 정보를 활용할 수 있다는 것이 장점이다. 마지막으로 Audio data를 분석하는 알고리즘 중 하나인 WaveNet에 대한 설명이 진행되었다. 개인적으로 Audio data에 대해서는 흥미를 느낀 적은 있지만 실제로 분석 경험은 없다 보니, 해당 세미나를 통해 Audio data에 대한 기본적인 분석 방법을 배울 수 있다는 점이 좋았다. 세미나를 통해 다양한 분야에 대한 연구를 들을 수 있다는 점은 아직 연구 기간이 짧은 나에게는 정말 좋은 기회인 것 같다는 사실을 다시 한번 느끼게 해주었다. 좋은 발표를 준비해 준 민구에게 감사함을 표한다.

금일 세미나는 Autoregressive Generative Models라는 주제로 곽민구 박사과정님께서 진행을 해주셨다. 한 학기 동안 Data Mining이라는 수업을 들으며 Regression이라는 기법에 대해서 배웠고, 연구실 내에 Generative Model을 연구하는 동료를 통해 대표적인 Generation Model인 GAN에 대하여 들었지만, Regression을 Generation에 활용한다는 Idea는 굉장히 신선했다. 많이 알수록 서로 연결고리를 찾아서 연결시키는 방법이 얼마나 큰 Synergy를 발휘하는지 알 수 있었던 세미나였다. 특히 시간이라는 선형 모델을 바탕으로 음악 생성 모델로 활용하는 WaveNet 뿐만 아니라, 이미지와 같이 가로/세로의 Pixel로 구성된 Data에 대해서도 Regression 방법을 활용하여 Generation 하는 모델은 나에게 큰 영감을 주었다. 세미나에서 배운 Autoregressive Generation을 이미지 파일에 적용하는 Idea는 다음과 같다. Regression 모델을 수행하기 위해서는 Data 간 Dependancy를 정해주어야 하는데 한 방향으로 되어 있지 않은 이미지 파일의 경우 왼쪽 최상단을 시작점으로 가로방향, 세로방향으로 이동하여 오른쪽 최하단을 종착점으로 지정하여 학습하는 방법으로 해결하는 모습을 보여주었다.
지금까지 세미나가 새로운 모델을 배우며 공부했다는 만족감을 주었다면, 이번 세미나는 모델간의 접목을 통해 새로운 모델을 만들 수 있다는 희망과 목표를 준 좋은 세미나였다는 느낌이 많이 들었다. 많은 교훈을 준 세미나를 해준 곽민구님께 감사하다는 말을 전한다.

금일 세미나에서는 민구가 Autoregressive Generative Models을 주제로 PixelRNN, PixelCNN, WaveNet에 대해 설명을 해줬다. Autoregressive Generative Model이란 데이터를 생성하는 과정에서 현재 시점까지 생성한 픽셀이나 시그널에 기반하여 다음 값을 생성하는 방식이다. PixelRNN, PixelCNN은 특히 이미지를 생성할 수 있는 generative model인데 현재까지 생성한 픽셀 정보를 바탕으로 다음 픽셀을 예측하는 과정을 하나의 이미지 생성을 완성할 때 까지 반복하는 과정으로 구성된다. 이 경우 Autoregressive 특성에 의해 픽셀간의 연관 정보를 조건부 확률로 모델링 할 수 있어 GAN과 같이 모든 픽셀을 독립으로 간주하고 생성하는 모델에 비해서 보다 정교한 조건부 픽셀 확률을 얻을 수 있다는 장점이 있어 보인다. 하지만 이미지와 같이 2차원 격자 구조의 데이터에 임의의 순서를 가정한다는 것이 현실과는 괴리가 있는 것 같고 이 때문에 GAN에 비해 성능이 떨어지는것이 아닐까라는 생각이 들었다. 반면 Autoregressive 특성은 명시적으로 순서가 결정되어 있는 오디오 데이터에 딱 들어맞는다. WaveNet은 이러한 Autoregressive에 기반하여 오디오 생성을 위해 제안된 모델로 최근 널리 사용되는 모델이다. 오늘 세미나에서는 WaveNet이 어떤 구조를 갖는지 그리고 어떻게 학습되는지 그 과정을 살펴볼 수 있는 좋은 기회였다.

금일 세미나는 Autoregressive Generative Models을 주제로 민구형이 진행해주셨다. Generative model 중 가장 잘 알려진 모델로는 VAE, GAN 등의 모델이 있지만, 오디오, 텍스트, 시그널 같은 순서가 있는 데이터의 경우 이전 스텝의 정보를 기반으로 다음 스텝을 예측해나가야 하는 특성을 가지므로 이를 반영하기 어렵다는 단점이 있다. Autoregressive data의 특성을 반영하여 효과적으로 데이터를 생성하는 방법으로 PixelRNN, PixelCNN, PixelCNN++, WaveNet 등의 Tractable Density 모델에 대한 소개가 세미나의 핵심 내용이였다. 시퀀스를 갖는 데이터들 중에서 오디오 데이터는 특히 시퀀스의 길이가 굉장히 길기 때문에 LSTM 계열의 알고리즘을 사용하면 computation cost가 매우 큰 문제가 있다. 문제를 해결하기 위한 여러 테크닉들이 develop 되는 과정에서 다양한 아이디어가 나오고 논문화 되는 것을 보면서 좋다고 알려진 방법론을 잘 수용하는 것도 중요하지만 문제점을 찾고 개선할 수 있는 포인트를 생각해보는 것이 연구자에게 중요하다고 생각하였다. 세미나에서 다룬 논문의 전반적인 설명과 실험이 오디오 데이터를 사용하였기 때문에 아주 디테일한 부분까지는 다 이해하기는 어려웠지만 민구형이 쉽게 설명해 주어서 전반적인 흐름이나 내용은 쉽게 이해할 수 있었다. 또한 개인 연구로 text data generation을 생각하고 있었는데 세미나를 듣고 나서 적용해 볼법한 아이디어가 생각이 나서 개인적으로는 매우 유익한 세미나였다.

오늘 세미나는 ‘Autoregressive Generative Models’라는 주제로 진행되었다. Autoregressive는 자기 자신을 예측하는 모델이며, 이전 상태의 정보들에 기반하여 예측을 수행하는 모델이고 Generative는 우리가 학습하지 않은 새로운 데이터를 만들어 내는 것이다. 여기서 이미지 데이터를 위한 모델인 PixelRNN과 PixelCNN이 나왔고 오디오와 관련된 WaveNet이 나왔다. 먼저 PixelRNN은 어떤 한 픽셀을 예측할 때 이전의 모든 시퀀스 정보를 RNN 아키텍처에 넣어서 예측을 하는 것이고 PixelCNN은 Masked Covolution을 통하여 예측해야하는 시점의 픽셀과 아직 예측하지 않은 시점의 픽셀에 해당하는 필터값을 0으로 설정한뒤 conv layer에 적용을 하게 되면 CNN을 가지고 Autoregressive를 할 수 있게 된다. Audio은 1초에 16000개나 생성되는 dependancy한 audio data를 생성한다. 이 데이터에서 dependency를 제거하고 1초당 16000개나 생성되는 많은 데이터들의 계산량을 줄이기 위해 나온 것이 WaveNet이다. Sequential한 구조를 반영하여 데이터 분포를 학습시키는 방법론이 이미지에서는 PixelRNN, PixelCNN이였고 오디오에서는 WaveNet이였다. 그리고 여기서 중요한 점은 데이터에 존재하는 dependency를 연결하는 방법에 있었다. 이번주 세미나는 생소한 내용이였음에도 불구하고 자세하게 설명해준 민구형에게 감사하다.

금일 세미나는 곽민구 연구원의 'Autoregressive Generative Models' 이라는 주제로 진행 되었습니다.
Generative 모델이라고 하면 보통 GAN이 떠오르는데, 다른 형태의 Generative model 에 대해 접할 수 있게 되어 뜻깊은 시간 이었습니다.
Autoregressive 의미는 자기 자신을 입력 데이터로 하여 스스로를 예측하는 모델인데 특히 오늘 다뤄진 PixelCNN/RNN은 이 Autoregressive를 이미지에 적용 한 모델로 보입니다.
보통 이런 형태는 시계열, signal 형태의 데이터를 분석 할 때 사용하는 기법으로 알고 있었으나 pixel을 하나의 sequence로 보고 학습 및 추론을 한 것이 흥미로웠습니다.
직접 찾아보지 않으면 몰랐을 새로운 정보를 얻게 해준 곽민구 연구원에게 감사 드립니다.