본문 바로가기
바삭한 인공지능

바삭한 인공지능(RNN 알고리즘)

by Oceanlighth AI 2023. 3. 2.

목차

1. 머리글

2. RNN(순환신경망)이란?

3. 입력과 출력의 길이를 다르게 설정하는 순환신경망

4. RNN을 활용한 예시

5. 마치며

안녕하세요. 오션라이트에이아이 백승기연구원입니다.

 

머리글

이번 글에서는 RNN(Recurrent Neural Network)에 대해서 알아보도록 하겠습니다.

 

RNN(순환신경망)이란?

그림 1. RNN의 기본적인 구조(출처 : https://wikidocs.net/22886)

RNN(Recurrent Neural Network)는 순환신경망이라고 하며, 입력과 출력을 시퀀스 단위로 처리하는 신경망을 뜻합니다. 

 

Hidden Layer의 메모리 셀이서 나온 결과값이 다음 순서의 Hidden Layer의 메모리셀에 입력되는 방식으로 이루어져 있습니다. 다시 말해서 지금까지의 신경망들은 입력층에서 출력층으로 향하는 단방향 이동을 하였지만, 순환신경망의 경우에는 결과값을 출력층으로 보내는 동시에 다음 노드의 입력층으로 보내게 됩니다.

 

이러한 특징을 활용하여 순환신경망은 입력과 출력의 길이를 각각 다르게 설계할 수 있게 됩니다.

 

입력과 출력의 길이를 다르게 설정하는 순환신경망

순환신경망의 입력과 출력의 길이를 각각 다르게 설계할 수 있는것을 조금 더 쉽게 설명하면 다음과 같습니다.

 

그림 2. 입력과 출력의 길이를 다르게 설정하는 RNN (출처 : https://wikidocs.net/22886)

그림 2.와 같이 순환신경망에서는 일 대 다, 다 대 일, 다 대 다 의 경우처럼 입력과 출력을 조절 할 수 있습니다.

 

일 대 다의 경우 하나의 이미지에 대하여 이미지의 제목을 출력하는 이미지 캡셔닝(Image Captioning)작업에 사용할 수 있고, 다 대 일의 경우에는 입력문서에 대해서 그 문서가 긍정적인지 부정적인지를 판단하는 감성분류(Sentiment Classification)작업 혹은 메일이 정상메일인지 스팸메일인지 분류하는 스팸메일 분류에 사용할 수 있습니다.

 

마지막으로 다 대 다의 경우 사용자가 문장을 입력하면 그 입력값에 대해 대답을 하는 챗봇이나 입력된 문장을 번역해주는 번역작업에 사용할 수 있습니다. 

 

RNN을 활용한 예시

그렇다면 RNN 알고리즘을 활용한 예시에는 어떤것들이 있는지 살펴보겠습니다.

 

앞서 설명했듯이 순환신경망은 앞선 Layer가 다음에 오는 Layer에게 영향을 미치도록 설계가 되어있습니다. 우리 실생활에서 앞의 내용이 뒤의 내용에 영향을 미치는 것들이 어떠한 것이 있는지 생각해보면 예시에 대해서도 이해하기가 쉬울 것입니다.

1. 자연어 처리 : 우리가 사용하는 언어는 단어들이 합쳐져 문장이 되고 문장이 합쳐서 하나의 맥락을 만들게 됩니다. 이러한 과정 속에서 자연스럽게 말이란 것은 시퀀스를 만들어내게 됩니다. 순환신경망을 사용하면 자연어가 가진 맥락과 시퀀스에 대해 분석할 수 있습니다. 
2. 비디오 분석 : 비디오의 경우에도 자연어와 같은 원리로 영상 프레임이 이어진 시퀀스로 이루어져 있습니다. 이러한 시퀀스를 분석하여 영상에서 어떠한 현상이 일어나고 있는지 확인할 수 있습니다. 

 

마치며

이번 글에서는 RNN에 대해 알아보았습니다.

 

다음 글에서는 머신러닝과 딥러닝 알고리즘에서 사용되는 중요한 용어들, 특히 활성화 함수(Activation Function), 손실함수 (Loss Function)에 대한 내용과 역전파(BackPropagation)에 대해서 자세히 알아보도록 하겠습니다.

댓글