@@@ 인공지능/수학·통계를 몰라도 이해할 수 있는 쉬운 딥러닝

3 - 1. 자연어 학습 인공지능(2)

HTG 2021. 8. 30. 01:02
728x90

3-1-2. 장기 기억과 단기 기억, LSTM

●RNN의 정의

FNN은 정보가 한 방향으로만 전달. 그리고 매번 방금 학습한 데이터를 기준으로 가중치가 업데이트되기 때문에 최근에 입력한 정보만 기억, 오래전에 입력한 정보에 대해서 는 기억하지 못함.

이런 문제를 해결하고자 제안된 모델이 RNN(Recurrent Neural Network) - 한국어로 순환 신경망이라 번역

FNN은 데이터를 입력받아 결괏값을 출력하고 작업을 종료. 과거를 기억하지 못하는 기억상실증에 걸린 인공지능.

반면 RNN은 결괏값만 출력하고 끝나는 것이 아니라, 가중치 정보를 다음 단계로 전달함.

현재의 학습 정보를 미래로 전달하는 것. 덕분에 RNN은 매번 과거의 학습 기록을 참고하며 학습을 진행.

과거의 기억을 현재 또는 미래 학습에 활용하는 셈.

따라서 RNN은 순서가 중요한 데이터를 학습하는 능력이 뛰어남. (언어, 음악, 주가 등)

 

●RNN의 한계

RNN도 사람과 비슷하게 방금 전의 일은 기억하지만 오래된 기억은 기억하지 못할 수 있음.

아무리 과거의 가중치를 학습에 활용한다고 해도, 학습이 성능이 크게 전하되는 문제가 있음.

이 문제를 해결한 것이 LSTM

 

●LSTM의 구조

LSTM은 Long Short-Time Memory의 약자. 이름부터 '장단기 기억'

인간의 뇌세포 구조를 흉내 낸 퍼셉트론이나, 인간의 시각 피질 정보 처리를 흉내 낸 CNN이 잘 작동하는 것을 봄.

그렇다면 기억과 관련된 AI를 만들 때도 인간의 외가 기억을 처리하는 방식을 흉내 내면 조금 더 성능이 좋아지지 않을까? LSTM은 인간의 장기 기억과 단기 기억을 모방한 특수한 형태의 RNN

 

●망각

LSTM 내부 맨 아래에 있는 x를 통하여 데이터가 입력. 입력된 정보는 1번 신경망으로 입력.

1번 신경망은 0부터 1사이의 숫자를 출력. 이 숫자는 망각을 관장하는 숫자. 신경망이 출력한 값은 곱셈 연산을 통해 관거의 정보에 개입.

1번 신경망이 출력한 값이 1일 경우 과거의 정보에 1을 곱한 것과 같으므로 정보가 모두 보존.

반면, 1번 신경망이 출력한 값이 0일 경우 과거의 정보에 0을 곱한 것과 같으므로 정보를 0으로 만듦.

1번 신경망은 0 부터 1사이의 값을 적절히 출력하도록 학습되어 LSTM의 망각을 담당. 따라서 1번 신경망을 Forget Gate Layer라고 부름.

 

●기억

입력된 정보는 2번과 3번 신경망으로 입력된다. 3번 신경망은 입력된 데이터를 정리해 '기억'에 삽입할 정보를 다듬는 역할을 수행하고, 2번 신경망은 이렇게 다듬어질 정보를 얼마나 많이 '기억'에 삽입할 것인지 결정.

2번 신경망이 출력한 값이 0일 경우 '기억'에 아무 정보도 삽입하지 않음. 반면 2번 신경망이 출력한 값이 1일 경우 '기억'에 정보를 모두 삽입.

2번 신경망과 3번 신경망이 함께 움직이며 LSTM의 '기억'이 정돈.

 

●기억을 동원한 학습

마지막으로 4번 레이어는 입력받은 정보를 학습하여 결과물을 출력함.

일반적인 FNN과 작동 원리가 비슷.

4번 레이어가 출력한 결과물은 LSTM의 기억 속에 있는 정보와 합해짐.

LSTM의 기억에 해당하는 C 벡터에 tanh를 씌운 값을 4번 레이어의 출력값에 곱하는 방식으로 4번 레이어의 출력 정보에 기억 속의 정보를 얹는 것.

결과적으로 LSTM은 기존 기억에서 일부를 지워버리고, 새로운 정보도 엄선하여 기억하기 때문에 일반적인 RNN에 비하여 과거의 정보를 영리하게 처리할 수 있음.

 

 

장기 기억과 단기 기억

인간의 기억은 여러 종류로 구분.

LSTM을 보다 깊게 이해하려면 그 중 단기 기억과 장기 기억에 대한 이해가 필요.

단기 기억은 짧게 유지되는 기억. 

장기 기억은 오래 유지되는 기억

앞서 살펴본 RNN의 한계는 장기 기억에 해당하는 모델이 비어 있으므로 발생하는 문제.

단순한 구조의 RNN은 단기 기억만 존재하는 인공지능과 비슷.