hidden vector의 차원은 hyperparameter이다. 여기서는 2차원이라고 가정해보자. 3차원의 입력벡터 $X_{t}$가 들어가고 2차원의 hidden state vector인 $h_{t-1}$이 RNN의 입력으로 들어간다고 해보자. 처음에는 $X_{t}$와 $h_{t-1}$이 concatenation되어 hidden layer에 fully connected 된다. 당연하지만 $h_{t-1}$이 2차원이기때문에 $h_{t}$를 뽑아내는 layer의 차원도 2차원이다. hidden layer의 선형변환 W와 입력벡터의 곱 WX에 nonlinear activation인 tanh(WX)로 $h_{t}$가 뽑힌다. Vanilla RNN이 실제로 tanh()를 activate function으로 썼다..
1. language model 앞의 주어진 문맥을 활용해 다음에 나타날 단어를 예측하는 모델 사람의 언어를 이해하는 것은 쉬운 일은 아니지만 통계적 관점, 딥러닝적 관점에서 문맥이 주어질 때 다음 단어를 잘 예측했다면 언어의 패턴을 잘 학습한 것이다. 2. 확률적 관점 언어 모델은 문장에 대한 확률을 부여하는 task 조건부확률을 이용하여 생성확률을 부여 ’오늘은 햇살이 좋다’라는 문장에 대한 확률은 ‘오늘은’이 먼저 나올 확률에 ‘오늘은’이 주어질때 ‘햇살이’가 나타날 확률에 ‘오늘은 햇살이’ 주어질 때 ‘좋다’가 나타날 확률을 곱한 것 3. RNN을 활용한 예측 x는 input이고 y는 현재 시점의 예측값, h는 각 시점에서 모델이 기억하는 잠재적인 정보 U,V,W는 RNN의 parameter 이전..
A Hierarchical Latent Vector Model for Learning Long-Term Structure in Music | Papers With Code Papers with Code - A Hierarchical Latent Vector Model for Learning Long-Term Structure in Music Implemented in 7 code libraries. paperswithcode.com 기본적으로 우리 모델은 autoencoder이며, 다시 말해 정확하게 input을 reconstruct하는 것을 목표로 한다. 그러나 우리는 추가적으로 새로운 sample을 만들어내고 잠재 공간의 interpolation과 attribute vector의 연산을 수행하길 원한..
1. RNN의 기본 구조 일반적으로 데이터 사이에 서로 영향을 주지 않고 시간적 정보가 없는 경우가 많다. 하지만 시계열과 같은 순차적 데이터(sequential data)는 과거가 미래에 영향을 주므로 데이터 사이에 독립을 가정한 모형을 적합시키면 좋은 성능을 기대하기 어렵다. Recurrent Neural Network(RNN)는 음성 인식과 자연어 처리와 같이 순차적 데이터에 사용되는 대표적인 알고리즘 Long Short term memory(LSTM)와 Gated Recurrent Unit(GRU)의 근간이 되는 모델 인공신경망과 CNN은 입력층에서 은닉층으로, 은닉층에서 출력층으로 움직이는 순방향 신경망(Feed forward neural network) 반면 RNN은 입력층에서 출력층(x ->..
1. layer의 계산적인 측면 self attention의 layer의 계산적인 측면에서 본다면 input sequence의 길이가 n이고 hidden vector의 차원이 d일때 Q는 n*d차원이고 $K^{T}$ 는 d*n차원이므로 $O(n^{2}d)$ RNN은 d차원의 $h_{t-1}$이 $h_{t}$로 변환되기위해서는 $W_{hh}$라는 d*d행렬을 곱하여 계산되는데 input sequence의 길이 n에 대하여 $O(nd^{2})$ input sequence의 길이 n과 hidden vector의 차원 d는 의미적으로 큰 차이가 있는데 hidden vector의 차원은 hyperparameter로 선택할수있는 값이다. 그러나 input sequence는 선택할수 없는 값으로 데이터의 길이에 따라..