본문 바로가기
머신러닝(Machine Learning)

머신러닝(ML) 순환신경망(Recurrent Neural Network) 기초

by Blaze_블즈 2023. 7. 10.

안녕하세요

블레이즈 테크노트의 블레이즈입니다. 

 

오늘은 순환신경망(Recurrent Neural Network)에 대해 간단히 알아보도록 하겠습니다. 

앞으로는 순환신경망이라는 단어와 RNN을 혼용할 예정이니 참고해주세요:)

 

 

 

순환 신경망에 대해서 아주 쉽게 설명한 영상입니다. 

특히 내가 원하는 정보를 벡터로 변환하는 걸 잘 보여준다고 생각합니다. 

 

 

영상에서 요리사는 애플파이, 햄버거, 치킨을 만드는데요 

이 각각의 요리를

[100] [010] [001]

벡터로 표현하고 결국 행렬곱으로 문제를 풀 수 있다는 걸 보여줍니다. 

 

 

순환 신경망에서 핵심적인 부분은 output이 다시 input으로 들어간다는 점입니다. 

이게 바로 순환의 핵심인데요. 

https://youtu.be/UNmqTiOnRfg

예를 들어, 영상에서는 요리사가 애플파이와 햄버거, 치킨을 순서대로 만들죠. 

 

이런 걸 영어로 sequential 하다고 하는데 

이렇게 sequential한 규칙이 있을 때 우리는 output인 애플파이만 가지고 다음의 결과인 햄버거를 예측할 수 있습니다. 

 

애플파이-햄버거-치킨-애플파이-햄버거-치킨-애플파이- ?

이런 문제니까 초등학생들 규칙 추론하기 문제와 비슷하다고 볼 수도 있을 것 같습니다.  

 

 

그리고 위 영상에서는 날씨에 따라 요리가 바뀌는데요, 다시 말해 input이 두개여서 

하나는 그 이전 state의 output이고 하나는 연관이 없는 독립적인 input(날씨)입니다. 

 

이 두 input이 엮여서 이번 state의 output을 만들어내는 원리를 잘 보여주고 있습니다. 

 

위 그림에서는 날씨가 맑으면 전날의 요리가 그대로 나오고 

비가 오면 다음 순서의 요리가 나오는 규칙을 따르고 있습니다. 

 

 

각각의 요리와 날씨를 벡터로 변환하고(vector transformation) 순환 신경망을 나타낼 수 있습니다. 

 

 

이제 예시를 벗어나서 보다 넓은 범위의 RNN에 대해 알아보도록 하겠습니다.

RNN에서 순환의 정의에 의해 output은 다시 input이 됩니다.

이러한 output을 우리는 hidden state 라고 부릅니다. 

 

 

RNN (순환신경망)은 이처럼 두 개의 입력값을 받습니다. 

그리고 t에서의 hidden state은 항상 t 에서의 입력과 t-1에서의 입력을 영향을 받는 구조입니다. 

 

https://towardsdatascience.com/day-1-2-attention-seq2seq-models-65df3f49e263

 

모든 hidden state가 바로 직전의 인풋에 영향을 받기 때문에 

RNN은 순서가 있는 업무에서 잘 작동합니다.

 

 

감사합니다. 

블레이즈 테크노트.