Finding Structure in Time

JY·2026년 3월 23일

논문정리

목록 보기
6/9
post-thumbnail

쿠키가 문장을 읽기 시작했다

지난 편에서 쿠키는 내리갈굼(역전파)으로 배우는 법을 터득했다.
틀리면 수셰프부터 재료손질담당까지 거꾸로 가면서 책임만큼 혼나는 흑백요리단 갈굼 시스템.

근데 쿠키가 지금까지 한 건 전부 사진 같은 거였다.
크기가 정해진 입력. 픽셀 784개면 784개, 100개면 100개. 딱 맞는 크기의 입력을 넣으면 답을 뱉는다.
(784 = 28 × 28 MNIST 데이터셋의 손글씨 이미지 크기)

그러다 누가 쿠키한테 이런 걸 시켰다.

야 이거 프랑스어로 뭐더라?


문장 길이는 제멋대로다

"나는 소년이다." — 3단어.
"나는 아주 착하고 예의 바르고 부모님 말씀도 잘 듣는 소년이다." — 뭐 한 15단어?

쿠키한테는 입력 구멍이 정해져 있다. 구멍이 3개면 3개만 넣을 수 있다.
근데 문장은 매번 길이가 다르다.

구멍을 100개로 만들면? 3단어짜리 문장 넣을 때 나머지 97개는 뭐 어떤 미사여구를 갖다넣어야하지?
그렇다고 3개로 만들면 또 미사여구가 필요한 그런것들은 못 넣는다.

다층퍼셉트론(MLP)은 문장을 처리할 수 없다.


일단 처음부터 차근차근 해볼까?

"한번에 다 넣지 말고, 단어를 하나씩 순서대로 넣자."

"나는"을 넣는다 처리한다 결과가 나온다.
"소년이다"를 넣는다 처리한다 결과가 나온다.

근데 이러면 "나는"이랑 "소년이다"가 따로 노는 거 아니냐?
"나는 소년이다"라는 문장인데 단어를 따로따로 처리하면 이건 단어장이지 문장이 아니잖아..

그래서 문장이니까 연속성을 보여주기위한 어떠한 아이디어가 나온다

"소년이다"를 처리할 때, 아까 "나는"을 처리한 결과를 같이 넣는다는 아이디어임

이전에 처리했던 나는 == I를 다시 자기한테 넣는거다. Recurrent 이게 RNN(순환신경망)이다.


이걸 기억이라고 해도 되나..?

MLP는 입력 넣으면 출력까지만 나온다, 마치 우리가 벼락치기로 공부하고나면 머리에 아무것도 안남듯이

RNN은 다르다. 이전 출력의 일부를 다음 입력에 섞는다.

"나는"(x⟨1⟩)을 처리한 결과가 a⟨1⟩이 된다.
"소년이다"(x⟨2⟩)를 처리할 때 a⟨1⟩이 같이 들어간다. 결과는 a⟨2⟩.
"를"(x⟨t⟩)을 처리할 때 a⟨t-1⟩이 같이 들어간다. 결과는 a⟨t⟩.

a⟨t⟩ 안에는 a⟨t-1⟩의 흔적이 있고, 그 안에는 또 그 전의 흔적이 있다.
결국 마지막 a에는 문장 전체의 흔적이 남아있는 거다.

이전 결과가 계속 돌아오니까, 쿠키에게 드디어 기억 같은 게 생겼다.

진짜 기억을 한다기보다는 뭔가 앞에 처리했던 결과가 남아있으니까 어렴풋이 흔적이 남아있는것인가?
마치 세살때의 기억은 없지만 부모님이나 누군가가 얘기해주면 그 상황이 내 기억인 양 착각하는것처럼?
근데 우리도 그걸 기억이라고 생각하고 사는 것 처럼...

쿠키는 이제 문장을 읽을 수 있다고 생각했다...


뒤로 갈수록 희미해지는 주인공의 이름

쿠키가 드디어 단어 뿐만 아니라 문장을 읽을 수 있게 됐다고 좋아했는데, 문제가 생겼어...

짧은 문장은 괜찮다. "나는 소년이다." 이 정도는 기억한다.

근데 이런 문장이 오면?

"어제 학교에서 점심을 먹고 있었는데 갑자기 옆 반 김철수가 와서 내 도시락에 있던 계란말이를 집어먹었고 나는 너무 화가 나서 선생님한테 말하러 갔는데 선생님이 뭐라고 하셨냐면 나는 참을 수 없다고..."

쿠키가 이걸 읽다보니까 뒤쪽에서 내가 누구지...? 싶은거다

a⟨1⟩의 흔적이 a⟨2⟩에 남고, a⟨2⟩의 흔적이 a⟨3⟩에 남고... a⟨100⟩까지 가면?

역전파를 생각해보자. a⟨100⟩에서 a⟨1⟩까지 거슬러 올라가면서 가중치를 곱해나간다.

0.9를 100번 곱하면?

0.9¹⁰⁰ = 0.0000265...

거의 0이 되어버린다 기울기 소실(Vanishing Gradient) 문제

반대로 1.1을 100번 곱하면?

1.1¹⁰⁰ = 13,780

폭발해버린다. 기울기 폭발(Exploding Gradient) 문제

기울기는 뭐 자꾸 문제가 생기냐

쿠키가 이제 달빛조각사같은 50권짜리를 읽으면 나중에
아 주인공 이름이 뭐였더라? 성이 달이고 이름이 빛조각사였던가? 하고 있는거지


쿠키성장기 줄거리

쿠키가 태어나고(Rosenblatt, 1957), 한계를 증명당하고(Minsky & Papert, 1969),
암흑기를 버티고, 역전파 하고(Hinton et al., 1986), 드디어 문장을 읽기 시작했다(Elman, 1990).

여기까지 오는 데 30년 넘게 걸렸다.

근데 읽을 수는 있는데, 길면 까먹는다.

다음 편: Long Short-Term Memory

profile
평생 애처럼 살고싶습니다

0개의 댓글