๐ Reference
http://www.incodom.kr/LSTM
https://dgkim5360.tistory.com/entry/understanding-long-short-term-memory-lstm-kr
LSTM (Long Short Term Memory)์ ๊ธฐ์กด์ RNN์์ ์ถ๋ ฅ๊ณผ ๋ฉ๋ฆฌ ์๋ ์ ๋ณด๋ฅผ ๊ธฐ์ตํ ์ ์๋ค๋ ๋จ์ ์ ๋ณด์ํ์ฌ ์ฅ/๋จ๊ธฐ ๊ธฐ์ต์ ๊ฐ๋ฅํ๊ฒ ์ค๊ณํ ์ ๊ฒฝ๋ง์ ๊ตฌ์กฐ์ด๋ค. ์ฃผ๋ก ์๊ณ์ด ์ฒ๋ฆฌ๋, ์์ฐ์ด ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ค.
๊ธฐ์กด์ neural network๋ ์ด์ ์ ์ผ์ด๋ ์ฌ๊ฑด์ ๋ฐํ์ผ๋ก ๋์ค์ ์ผ์ด๋๋ ์ฌ๊ฑด์ ์์ง ๋ชปํ๋ค. RNN์ Input x
๊ฐ ๋ค์ด๊ฐ๋ฉด ์ฌ๋ฌ ๋ฒ์ ์ํ์ ๊ฑฐ์ฒ output y
๊ฐ ๋์ค๋ ๊ตฌ์กฐ์ด๋ค. ์ด์ ๋จ๊ณ์์ ์ป์ ์ ๋ณด๊ฐ ์ง์ํ ์ ์๋๋ก ์ฒด์ธ
๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
RNN์ BPTT(BackPropagation Through Time) ์ญ์ ํ ๋ฐฉ์์ ๋ชจ๋ ํ์ ์คํ
์ ์ ์ฉํ๋ค. ์ด๋ ํ์ ์คํ
์ด ํฌ๋ฉด (์ค๋์ ์ ์ ๋ณด๋ฅผ ํ์๋ก ํ๋ฉด) ๋งค์ฐ ๊น์ ๋คํธ์ํฌ๊ฐ ๋๋ฉฐ Gradient vanishing / exploding
๋ฌธ์ ๋ก ์ด์ด์ง ์ ์๋ค. ๋ ์ฅ๊ธฐ์ ์ธ ํจํด์ ํ์ตํ ์ ์๊ธฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฅ๊ธฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง ์ ์๋ LSTM Cell
์ด ์ ์๋์๋ค.
LSTM๋ RNN๊ณผ ๊ฐ์ ์ฒด์ธ ๊ตฌ์กฐ๋ก ๋์ด ์์ง๋ง, ๋ฐ๋ณต ๋ชจ๋์ ๋จ์ํ ํ ๊ฐ์ tanh layer
๊ฐ ์๋ 4๊ฐ์ layer
๊ฐ ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๊ณ ์๋ค. LSTM Cell
์์๋ state๊ฐ ํฌ๊ฒ ๋ ๊ฐ์ ๋ฒกํฐ๋ก ๋๋์ด์ง๋ค. ๋ฅผ ๋จ๊ธฐ ์ํ(short-term state), ๋ฅผ ์ฅ๊ธฐ ์ํ(long-term state)๋ผ๊ณ ๋ณผ ์ ์๋ค.
Cell state
๋ ์ ๋ณด๊ฐ ๋ฐ๋์ง ์๊ณ ๊ทธ๋๋ก ํ๋ฅด๋๋ก ํ๋ ์ญํ ์ด๋ค. Cell state๋ ์์ linear interaction๋ง์ ์ ์ฉ์ํค๋ฉด์ ์ ์ฒด ์ฒด์ธ์ ๊ณ์ ๊ตฌ๋์ํจ๋ค.
LSTM์ Cell state์ ์ ๋ณด๋ฅผ ๋ํ๊ฑฐ๋ ์์จ ์ ์๋๋ฐ ์ด๋ gate
๋ผ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ์ ์ํด ์ ์ด๋๋ค.
Forget gate
๋ cell state์์ sigmoid layer
๋ฅผ ๊ฑฐ์ณ ์ด๋ค ์ ๋ณด๋ฅผ ๋ฒ๋ฆด ๊ฒ์ธ์ง ์ ํ๋ค. sigmoid layer๋ 0๊ณผ 1์ฌ์ด์ ์ถ๋ ฅ์ ๊ฐ์ง๋๋ฐ ๊ทธ ๊ฐ์ด 0์ด๋ผ๋ฉด ์ ๋ณด๋ฅผ ๋ฒ๋ฆฌ๊ณ 1์ด๋ผ๋ฉด ๋ค์ state๋ก ๋๊ธด๋ค. LSTM์ 3๊ฐ์ gate๋ฅผ ๊ฐ์ง๊ณ cell state๋ฅผ ์ ์ดํ๋ค.
Input gate
๋ ์์ผ๋ก ๋ค์ด์ค๋ ์๋ก์ด ์ ๋ณด ์ค ์ด๋ค ๊ฒ์ cell state์ ์ ์ฅํ ๊ฒ์ธ์ง๋ฅผ ์ ํ๋ค. ๋จผ์ sigmoid layer๋ฅผ ๊ฑฐ์ฒ ์ด์ state ์์ ์ด๋ค ์ ๋ณด๋ฅผ ์
๋ฐ์ดํธํ ๊ฒ์ธ์ง๋ฅผ ์ ํ ํ - (1) tanh layer์์ ์๋ก์ด ํ๋ณด Vector ๋ฅผ ์์ฑํ๋ค.
์ด์ gate์์ ๋ฒ๋ฆด ์ ๋ณด๋ค๊ณผ ์
๋ฐ์ดํธ ํ ์ ๋ณด๋ค์ ์ ํ๋ค๋ฉด cell state update
๋ฅผ ์งํํ๋ค.
๋ฅผ ๊ณฑํด์ ๋ฒ๋ฆฌ๊ธฐ๋ก ํ ์ ๋ณด๋ฅผ ๋ฒ๋ฆฐ๋ค. ๋ฅผ ๋ํด์ ์
๋ฐ์ดํธ ํ๊ธฐ๋ก ํ ์ ๋ณด (1)๋ฅผ ์ผ๋ง๋ ์
๋ฐ์ดํธ ํ ์ง๊ฐ scale
ํ ๊ฐ์ด ๋๋ค.
Output gate
๋ ์ด๋ค ์ ๋ณด๋ฅผ output ํ ์ง ์ ํ๋ค. ๋จผ์ sigmoid layer ์ input data ๋ฅผ ๋ฃ์ด output ์ ๋ณด๋ฅผ ์ ํ ํ cell state ๋ฅผ tanh layer์ ๋ฃ์ด sigmoid layer์ output ๊ณผ ๊ณฑํ์ฌ output์ผ๋ก ๋ด๋ณด๋ธ๋ค.