Loading...
2023. 7. 27. 00:38

RNN을 개선한 LSTM(Long short term memory)

1. introduction Vanilla RNN을 개선하였다. 그래서 gradient vanishing/exploding을 개선하여 좋은 성능을 보임 the problem of long term dependency를 해결하고자 time-step이 먼 경우에도 필요한 정보를 처리할 수 있도록 단기로 기억되는 hidden state 정보를 길게 가져오자. Vanilla RNN은 현재 input의 정보와 이전 시점의 hidden 정보를 조합하여 새로운 hidden 정보를 만든다. $$h_{t} = f_{w}(x_{t} + h_{t-1})$$ 반면 LSTM은 전 시점에서 다른 역할을 하는 2가지 정보와 input 정보를 이용함 $$f(C_{t}, h_{t}) = LSTM(X_{t}, C_{t-1}, h_{t-..

2023. 7. 12. 02:28

RNN의 특별한 학습방법 Backpropagation through time 이해해보기

1. Backpropagation through time RNN의 backpropagation 알고리즘 모든 token을 계산하면서 ground truth와 비교하면서 loss를 최소화하는 방향으로 backpropagation을 통해 gradient를 계산 그런데 수백, 수천만 길이의 sequence면 한정된 GPU에서 계산이 불가 2. Truncated backpropagation through time 그러니까 일부 time을 잘라가지고 만든 여러개의 truncation을 만든다. 그래서 제한된 sequence를 가지는 truncation에서 backpropagation을 진행하고 다음 truncation에서도 진행하고 과정을 반복한다 자른 구간에서는 이제 GPU가 허용하는 한에서 backpropag..

2023. 7. 11. 02:41

RNN의 여러가지 유형(one to one, one to many, many to one, many to many) 되돌아보기

RNN이 하나의 input을 넣어서 하나의 output이 나온다고만 생각해서는 안된다 이미지를 넣고 문장을 생성하는 one to many 문장을 넣고 문장의 감정 label을 생성하는 many to one 혹은 여러 날의 주가를 넣고 다음날 주식의 종가를 예측한 many to one 1. one to one sequence data가 아닌 일반적인 input을 받는 neural network의 구조 다음은 키,나이,몸무게 3차원 벡터를 갖는 input을 입력하여 혈압의 범주를 예측하는 one to one neural network 2. one to many input이 하나이고 여러개의 output을 출력하는 구조 근데 주의할 점은 사실 input이 하나인 것 처럼 보이지만 하나가 아니다. 들어가지 않는..

2023. 7. 11. 02:30

Vanilla RNN에서 hidden vector로 예측값을 만드는 과정

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으로 썼다..

2023. 7. 5. 23:42

word embedding을 하는 또 다른 모델 Glove의 아이디어

1. Glove 입력단어,출력단어가 한 윈도우 내에 동시에 얼마나 나왔는지를 계산하는 co-occurrence matrix를 고려하여 동일한 단어쌍을 반복적으로 학습하는 일을 피하고자했다. 두 벡터의 내적에 이러한 co-occurrence matrix를 고려한 점을 loss function으로 나타내었다. 학습이 Word2Vec보다 빠르고 작은 단어뭉치에도 효과적이라고 알려져있다. Word2Vec은 특정한 입출력 단어 쌍이 자주 등장하는 경우 그들이 자연스럽게 여러번 내적되어 비례하여 유사도가 커지는데 Glove는 중복되는 단어쌍을 미리 계산하여 벌점화하여 중복계산을 줄여 학습이 빠르다는 것이다. 아무튼 두 모델 모두 단어의 embedding vector를 구한다. 성능도 꽤 비슷한것 같다 잘 나온건 W..

2023. 7. 3. 02:14

multimodal learning1 - image and text joint embedding

1. character embedding character level의 경우 아스키코드로 0~255사이 값으로 mapping하여 코딩하는 경우 있지만 machine learning 관점에서는 오히려 사용하기 까다로울수 있다?? 몰랐는데 CNN을 이용하여 character embedding을 하는 경우도 많은 것 같음 underestimate가 과소평가하다라는 뜻인데 misunderestimate는 실제 없는 단어지만 mis와 underestimate의 합성어로 잘못 과소평가하다라는 뜻으로 추측할 수 있음 이런 인간의 언어 능력을 흉내내기 위해 character embedding을 연구하고 있다고는 함 2. word embedding 근데 보통은 word level에서 embedding하는 경우가 많다 오..