LSTM의 복습 : 여러 노드를 가진 LSTM
실제 LSTM 모델은 이러한 과정을 거치는 노드가 여러 개 연결 되어 있는 형태를 가진다.
참고 : LTM = Long Term Memory , STM = Short Term Memory
LSTM Architechure
RNN의 수식적 표현과 tanh 함수를 지나 새로운 Memory를 형성하고 있다.
수식설명
STM_t-1 = Mt-1을 의미
Mt-1과 Et 벡터를 조인 후에, W(가중치) 매트릭스와 곱 + bias b
이 값을 하이퍼볼릭 탄젠트 (tanh) 에 넣으면 새로운 Mt 도출한다.
이 개념을 이용해 LSTM 내에 어떤 게이트에 어떤 연산과정을 거쳐 학습하는 지 이 포스트에서 소개할 예정이다.
LSTM Gates
LSTM 모델 내에는 4가지 게이트가 존재한다.
1. Forget Gate
장기메모리에서 학습에 크게 고려하지 않아도 될 정보를 삭제(forget) 한다.
2. Learn Gate
단기메모리와 이벤트가 함께 들어가 최근에 학습한 정보 반영 + 불필요 정보 삭제
3. Remember Gate
1,2 단계를 거친 메모리들과 이벤트를 모아서 장기메모리가 기억하도록 만든다.
4. Use Gate
1,2의 메모리를 사용해 어떤 정보를 사용 + 과거에 알고 있던 정보 + 지금 배운 정보를 조합해 예측결과를 도출한다. 이때 예측결과물은 새로운 단기 메모리가 된다.
Remember Gate 를 지나는 과정을 보여주는 도식이다. 대략적으로 1,2 => 3,4 단계를 지나 구체적으로 어떻게 Long / Short Term Memory 에 데이터가 학습되어 들어가는 지 볼 수 있다.
(Remember Gate : 1,2 단계를 거친 메모리들과 이벤트를 모아서 장기메모리가 기억하도록 만든다.)
1. Learn Gate
우리는 계속해서 숲 속의 동식물 데이터를 학습시켜서 늑대를 분류하는 신경망 모델을 만들고 있었다.
아까 잠깐 소개했던 RNN 모델의 예시를 다시 상기시켜보자.
Long Term Memory에 있는 정보는 숲에 사는 생명체인가? 자연과 관련이 있나? 와 같은 특징들이었다면,
Short Term Memory에는 늑대, 나무, 다람쥐 등 구체적인 동물 분류 정보가 들어 있다.
Learn Gate에 메모리와 이벤트를 대입하자. (2단계)
Learn Gate는 Combine, Ignore 두 단계에 걸쳐 필요한 학습 정보만 추출한다. 처음 인풋으로 들어오는 short term memory 에서, 본래는 나무, 다람쥐, 그리고 이벤트인 늑대 데이터가 들어왔고, 결과물에 나무에 대한 정보는 사라지고 다람쥐와 늑대에 대한 일부 정보만 남는다.
Combine 단계 : 우선 인풋으로 들어온 단기 메모리와 이벤트 데이터를 잘 결합한다.
Ignore 단계 : 학습에 있어 의미 없는 정보는 삭제한다. 위 에서는 나무가 식물이며, 두 데이터와는 많이 상이한 정보를 가지고 있으므로 나무에 대한 정보는 삭제한다.
수학적 표현
tanh에 대입하는 방식까지는 위에서 설명했으니 생략. 여기까지가 Combine 단계였다.
지금부터 설명할 단계는 Ignore 단계다. 이 단계에서는 Ignore factor i_t를 곱해 필요 없는 정보를 거른다.
i_t는 사실 벡터이지만, 모든 elements에 골고루 곱해지기 위해 매트릭스의 형태를 띈다고 설명하는 것 같다. (i_t is actually a vector but it multiples elemnet wise,)
Question) i_t는 어떻게 도출하는가?
단기 메모리와 이벤트로 부터 도출한 이전 학습정보 (previous info of the STM)를 이용한다.
아래의 그림에서 sigmoid function (ignore) 부분에서 i_t를 도출하기 위한 작은 신경망을 보여준다.
Ignore 단계의 수학적 표현
Ignore 단계 연산
Event of t와 STM_t-1가 sigmoid fuction를 거쳐 it를 위의 수식으로 도출한다.
Wi, bi는 i를 도출하기 위한 새로운 가중치와 bias를 의미한다.
이렇게 시그모이드를 지나 나온 결과는 X(곱셈)에 곱해진다. 이 부분이 Learning Gate의 Ignore 단계 연산이다.
2. Forget Gate
Forget Gate는 바로 위에서 언급한 Learning Gate의 Ignore 단계 연산과 동일한 알고리즘으로 진행된다. 이하 설명 생략.
3. Remember Gate
Remeber Gate가 가장 심플한 구조를 가지고 있는데...
그 이유는 그저...
1. Forget Gate에서 도출된 LTM과 2.Learning Gate에서 나온 STM & Event 를 결합하기만 하면 되니까.
그래서 수식도 매우 직관적이다.
✔️ ft : Forget gate의 forget factors
✔️Nt, it : Learning gate에서 도출된 ignore factors
두 팩터를 활용해 LTM + STM + Events를 선형 결합한다.
4. Use Gate
Use Gate는 Output Gate라고도 불린다.
✔️ input data는 forgotten LTM + Learned STM & Memory .
1,2의 메모리를 사용해 어떤 정보를 사용 + 과거에 알고 있던 정보 + 지금 배운 정보를 조합해 예측결과를 도출한다.
이때 예측결과물은 새로운 단기 메모리가 된다.
Use Gate 수학적 표현
✔️Forgotten LTM : tanh 활성화 함수
✔️Learned STM & Event : Sigmoid 함수를 지나면,
어떤 정보를 사용 + 과거에 알고 있던 정보(STMt-1) + 지금 배운 정보를 조합해 예측결과를 도출
게이트와 각 활성화 함수를 지나는 단계 하나하나가 모두 작은 신경망으로 구성되어 있는 셈이다. 이 연산이 끝난 결과물은 새로운 STM이 된다.
Wrap-Up and 시사점
✅ 1. Forget Gate LongTerm Memory -> 2. Learn Gate Short Term Memory & Events
-> 3. Remember gate에서 1, 2를 결합 -> 4. Use gate에서 각각의 작은 신경망을 통해 여러 정보를 선별
🦸🏽♂️활성화 함수를 사용하는 기준이 뭘까요? 왜 그리고 저런 수식이 도출되었나요?
저런 식으로 구성해야만 연산이 되기 때문이다. (Too Arbitrage) -> 블랙박스 문제 (Black Box)
결국 데이터의 설명력이나, 이 결과에 대한 원인이나 과정에 대해서 명확히 알 수 없다. 따라서, 명확한 로직이 필요한 상품이나 서비스에는 적합하지 않다. 결과가 중요하면 이것만큼 좋은.. 모델도 없을걸? Like 추천시스템, Recode 시스템..
'데이터사이언스 > ML & DL' 카테고리의 다른 글
[딥러닝] RNN 순환신경망과 LSTM (0) | 2020.08.21 |
---|---|
[Deep Learning ] About Neural Networks, 딥러닝 기초개념 (0) | 2020.08.15 |