본문 바로가기

Enginius/Machine Learning

Recent deep learning papers in archive

1. Training recurrent networks online without backtracking

http://arxiv.org/pdf/1507.07680v1.pdf

2. Semi-Supervised Learning with Ladder Network

http://arxiv.org/pdf/1507.02672v1.pdf

3. Towards Neural Network-based Reasoning

http://arxiv.org/pdf/1508.05508v1.pdf

4. Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks

http://arxiv.org/pdf/1506.03099v3.pdf

5. http://arxiv.org/pdf/1506.03099v3.pdf

http://arxiv.org/pdf/1503.04069v1.pdf



1. Training Recurrent Network Online Without Backtracking


이 논문은 RNN과 같은 dynamical system에서 사용될 수 있는 NoBackTrack 알고리즘을 제안한다. 이 알고리즘은 online이고, memoryless setting에서 돌아가기 때문에 기존에 많아 사용되는 backpropagation in time이 필요없다. 따라서 알고리즘이 scalable해진다. 


이 알고리즘은 매 시간에 parameter 공간에서 single search만을 필요로 한다. Evolution of this search direction은 partly stochastic 하고, 매 번 loss function에 대한 unbiased random estimate을 가능하게 한다. 그리고 unbiased하기 때문에서 average over time을 해도 괜찮다. 


결과로 나오는 gradient estimate은 Kalman filter와 같은 알고리즘을 이용해서 더 향상시킬 수 있다. RNN에 대해서는 제안하는 알고리즘은 파라미터의 수에 linear하게 scale한다. 


이 논문에선 다음과 같은 문제를 고려한다. 

$$ h(t+1) = f(h(t), x(t), \theta) $$

여기서 '$f$'는 fixed function of '$h$'와 입력 '$x(t)$'이고, '$\theta$'를 파라미터로 갖는다. Online minization의 목적은 다음의 loss function을 최소화하는 것이다. 

$$ \sum_t l_t(\hat{y}(t), y(t)) $$

여기서 

$$ \hat{y}(t) = Y(h(t), \phi) $$

은 prediction이고, '$h(t)$'이고, additional parameter '$\phi$'에 의존한다. 


가장 대표적인 예는 RNN이고, 이는 다음의 꼴을 갖는다. 

$$ a_i(t) = sigm(h_i(t)) $$ 

이고, 

$$ h_i(t+1) = b_i +\sum_k r_{ik}x_k(t) +\sum_j W_{ji} a_j(t) $$

with parameter '$\theta = (b_i, r_{ik}, W_{ji})_{i,j,k}$'.


만약 전체 sequence가 주어졌다면, backpropagation through time을 통해서 풀 수 있다. 하지만 만약 데이터가 streaming과 같이 하나씩 들어온다면 어렵다. 


2. Semi-supervised Learning with Ladder Network


Deep learning에서 supervised learning과 unsupervised learning을 섞었다. 제안된 모델은 supervised와 unsupervised learning의 cost sum을 minimize시키도록 학습을 시킨다. 이 연구는 Ladder network를 바탕으로 해서 만들어졌다. 

In this paper, we introduce an unsupervised learning method that fits well with supervised learning. The idea of using unsupervised learning to complement supervision is not new.


이 연구의 key aspects는 다음과 같다. 

1. 기존의 supervised method와 compatible하다. Unsupervised part는 supervised learning에서 찾아지는 relevant detail에 집중한다. 

2. Local learning을 하기 때문에 scalable하다. 이 모델의 top layer에서 supervised learning 외에도 local한 unsupervised learning을 하고 이는 very deep neural network에 적합하다. 

3. Computational effecient하다. 이 모델의 encoder 부분은 일반적인 supervised learning에 해당하다. 이 논문에서 제안하는 것과 같이 decoder를 연결함으로서 학습 단계에서 연산량을 약 세 배 정도 늘린다. 하지만 연산 시간 자체는 크게 차이가 안나는데, 더 효과적으로 학습을 하기 떄문이다. (더 좋은 결과가 나온다?)


Latent variable model은 semi-supervised learning의 매력적인 모델이다. 왜냐하면 이들은 supervised learning과 unsupervised learning을 하나의 방법론으로 합칠 수 있기 떄문이다. 유일한 차이는 class label이 observable하냐 안하냐이다. Goodfellow의 논문에선 multi-prediction deep Boltzmann machine을 제안하였다. 특히 계층 구조의 latent variable model은 하층에선 representation을 배우고, 상층에선 더 invariant한 feature에 집중할 수 있게 한다. 


Latent variable model의 학습은 inference와 learning으로 나눠질 수 있다. inference 단계에선 unobservable latent variable에 대한 posterior 를 찾고, learning에선 가지고 있는 observation을 잘 설명할 수 있게 probability model을 학습한다. 예를 들어서 EM에서 E 단계가 inference이고, M단계가 learning이다. 


Denoising과 probabilistic modeling사이에는 큰 연관 관계가 있다. 확률 모델이 주어졌을 경우에, optimal denoising을 구할 수 있다. 또한 denoising function이 주어졌을 경우, 해당 분포에서 corruption과 denoising을 반복하는 Markov chain을 만들어서 샘플을 뽑을 수 있다. 


Valpola는 Ladder network을 제안하였다. Ladder network는 denoising을 이용해서 inference process를 학습시켰다. 이는 기존의 supervised learning, denoising autoencoder (DAE), denoising source separation (DSS)에 사용되었다. DAE는 오염된 '$\tilde{x}$'를 가지고 원래 '$x$'를 복원하는 문제를 푼다. 학습은 단순히 이 둘 사이의 차이를 minimize하도록 한다. 


DSS는 '$\hat{z} = g{z}$'의 denoising function을 이용한다. 여기서 '$z$'는 latent variable이다. 그리고 input '$x$'와 '$z$'를 연결하는 '$z = f(x)$'를 학습시킨다. Denoising은 latent space에서 이뤄진다. 



위의 그림은 ladder network의 구조를 나타낸다. 각 layer는 cost function에 기여한다. 

구조를 좀 들여다보자. 먼저 입력은 맨 왼쪽과 맨 오른쪽 column에 들어간다. 그리고 상위 level로 올라갈 때는 같은 '$f$'라는 함수를 통해서 올라간다. 맨 왼쪽에 있는 데이터에는 에러가 섞이고, 이는 denoising function