순환 신경망이란?
순환 신경망(Recurrent Neural Networks, RNN)에서 순차 데이터를 사용하여 언어 번역과 음성 인식에서 나타나는 일반적인 시간 문제를 어떻게 해결하는지 알아봅니다.
검은색과 파란색 배경
순환 신경망이란?

순환 신경망(RNN)은 순차 데이터나 시계열 데이터를 이용하는 인공 신경망 유형입니다. 이 딥러닝 알고리즘은 언어 변환, 자연어 처리(nlp), 음성 인식, 이미지 캡션과 같은 순서 문제나 시간 문제에 흔히 사용됩니다. 그리고 Siri, 음성 검색, Google 번역과 같이 널리 쓰이는 애플리케이션에도 통합되어 있습니다. 피드포워드 및 컨볼루션 신경망(CNN)처럼 순환 신경망은 학습하는 데 훈련 데이터를 활용합니다. 이 신경망은 "메모리"에 의해 구별됩니다. 과거의 입력으로부터 정보를 얻어 현재의 입력과 출력에 영향을 주기 때문입니다. 기존의 딥 신경망에서는 입력과 출력이 상호 독립적이라고 가정하지만, 순환 신경망의 출력은 시퀀스 내의 이전 요소에 의존합니다. 미래의 이벤트도 지정된 시퀀스의 출력을 결정하는 데 도움이 되지만, 단방향의 순환 신경망의 경우 예측에서 이러한 이벤트를 설명할 수 없습니다.

누군가가 아픈 상황에서 자주 쓰이는 관용구, "feeling under the weather(몸이 좋지 않다)"를 활용하여 RNN을 설명해보겠습니다. 이 관용구의 의미가 통하려면 해당 순서대로 표현해야 합니다. 결국 순환 신경망에서는 이 관용구에 포함된 각 단어의 위치를 설명해야 합니다. 그리고 이 정보를 사용하여 시퀀스 상의 다음 단어를 예측합니다.

순환 신경망의 또 다른 특징은 네트워크의 각 계층에서 매개변수를 공유한다는 것입니다. 피드포워드 네트워크는 각 노드에서 여러 다른 가중치를 갖지만, 순환 신경망은 네트워크의 각 계층 내에서 같은 가중치 매개변수를 공유합니다. 즉, 강화 학습을 촉진하기 위해 역전파 및 기울기 하강 프로세스를 진행하는 동안 이 가중치가 계속 조정됩니다.

순환 신경망에서는 BPTT(backpropagation through time) 알고리즘을 사용하여 기울기를 결정합니다. 이는 시퀀스 데이터에 특정되는 기존 역전파 방식과는 약간 다릅니다. BPTT의 원칙은 기존 역전파와 같습니다. 즉, 모델이 출력 계층에서 입력 계층까지의 오류를 계산하는 방식으로 스스로 학습합니다. 이러한 계산을 통해 모델의 매개변수를 적절히 조정하고 맞출 수 있습니다. BPTT는 각 시간 단계에서 오류의 합계를 구하지만 피드포워드 네트워크는 각 계층에서 매개변수를 공유하지 않으므로 오류의 합계를 구할 필요가 없다는 점에서 BPTT는 기존 방식과 다릅니다.

이러한 프로세스를 거치면서 RNN은 2가지 문제에 직면하게 됩니다. 바로 기울기 폭주(exploding gradients)와 기울기 소실(vanishing gradients)입니다. 이러한 문제는 기울기의 크기에 의해 정의되는데, 이는 오류 곡선을 따라가는 손실 함수의 경사입니다. 기울기가 너무 작으면 계속 더 작아지고, 가중치 매개변수는 업데이트되어 결국 무의미해집니다. 즉, 0이 됩니다. 이 상태에 이르면 알고리즘은 학습하지 않습니다. 기울기 폭주의 경우 기울기가 너무 커서 불안정한 모델을 만들 때 발생합니다. 여기서는 모델 가중치가 너무 커져서 결국 NaN으로 표시됩니다. 이러한 문제의 해결책 중 하나는 신경망 내의 숨은 계층 수를 줄여 RNN 모델의 복잡성을 다소 줄이는 것입니다.

주요 제품

Watson Studio

Watson Machine Learning Accelerator

순환 신경망의 유형

피드포워드 네트워크는 하나의 입력을 하나의 출력에 매핑합니다. 여기서 순환 신경망을 위 다이어그램과 같이 시각화했지만, 실제로 이러한 제한 조건은 없습니다. 그 대신, 입력과 출력의 길이가 다양해지며 음악 생성, 정서 분류, 기계 번역과 같은 서로 다른 적용사례에 저마다 다른 RNN 유형이 쓰입니다.

공통의 활성화 함수

신경망에 관한 학습 기사에서 다룬 것처럼, 어떤 뉴런을 활성화할지 여부는 활성화 함수에 의해 결정됩니다. 이 비선형 함수는 대개 어떤 뉴런의 출력을 0과 1, 또는 -1과 1의 값으로 변환합니다. 

변종 RNN 아키텍처

양방향 순환 신경망(BRNN): RNN의 변종 네트워크 아키텍처 중 하나입니다. 단방향 RNN은 현재 상태에 관해 예측하기 위해 과거의 입력에서 가져오는 것만 가능하지만, 양방향 RNN은 정확도를 높이기 위해 미래의 데이터를 가져옵니다. 앞서 나왔던 “feeling under the weather”의 예에서는 모델이 시퀀스의 마지막 단어가 "weather"임을 알면 2번째 단어가 “under”임을 더 확실히 예측할 수 있습니다.

장단기 메모리(LSTM): Sepp Hochreiter 씨와 Juergen Schmidhuber 씨가 기울기 소실 문제의 해법으로 선보인 인기 있는 RNN 아키텍처 중 하나입니다. 이들은 연구 논문(PDF, 388KB)(IBM 외부 링크)에서 장기 종속성의 문제를 다룹니다. 즉, 현재 예측에 영향을 미치고 있는 이전 상태가 최근 과거가 아닐 경우, 이 RNN 모델에서 현재 상태를 정확히 예측하지 못할 수도 있습니다. 이를테면 “Alice is allergic to nuts. She can’t eat peanut butter.”에서 이탤릭체로 표시된 단어를 예측하고 싶다고 가정해 보겠습니다. 너트 알레르기라는 컨텍스트는 섭취 불가 식품이 너트를 함유하고 있음을 예측하는 데 도움이 될 것입니다. 하지만 이 컨텍스트가 몇 개의 문장 이전에 있다면, RNN에서 그 정보를 연결하는 게 어렵거나 아예 불가능합니다. LSTM에는 이러한 문제를 해결하기 위해 신경망의 숨은 계층에 “셀(cell)”이 있습니다. 이 셀은 3개의 게이트, 즉 입력(input) 게이트, 출력(output) 게이트, 망각(forget) 게이트가 있습니다. 이러한 게이트에서는 신경망에서 출력을 예측하는 데 필요한 정보의 흐름을 제어합니다.  예컨대 “she”와 같은 성별 대명사가 이전 문장에서 여러 차례 반복된 경우, 셀 상태에서 이를 제외할 수 있습니다.

게이트 순환 유닛(GRU): 이 RNN 변종도 RNN 모델의 단기 메모리 문제를 다룬다는 점에서 LSTM과 비슷합니다. 여기서는 "셀 상태"로 정보를 규제하는 게 아니라 숨은 상태를 사용합니다. 그리고 게이트가 3개가 아니라 2개입니다. 재설정(reset) 게이트와 업데이트(update) 게이트입니다. LSTM의 게이트와 비슷하게, 재설정 게이트와 업데이트 게이트는 어떤 정보를 얼마나 많이 보존할지를 제어합니다.

순환 신경망과 IBM Cloud

IBM은 IBM Watson을 개발하고 더욱더 발전시키는 등 수십 년 넘게 AI 기술 및 신경망 개발에 앞장서 왔습니다. 이제 Watson은 AI를 채택하여 구현하는 데 검증된 계층형 접근 방법을 사용함으로써 자사 시스템에 고급 자연어 처리와 딥러닝 기술을 적용하려는 기업들이 신뢰하는 솔루션입니다.

IBM Watson Machine Learning과 같은 IBM 제품에서는 TensorFlow, Keras, PyTorch와 같이 순환 신경망에 널리 쓰이는 인기 있는 Python 라이브러리도 지원합니다. 각 기업에서는 IBM Watson Studio, Watson Machine Learning과 같은 툴을 활용하여 오픈 소스 AI 프로젝트를 프로덕션 모드로 문제없이 전환할 뿐만 아니라 어떤 클라우드에도 모델을 배치하고 실행할 수 있습니다.

인공지능 기술을 활용하는 방법은 IBM Watson Studio를 참조하세요.

IBMid로 등록하고 IBM Cloud 계정을 생성하세요.
관련 솔루션
Watson Studio

클라우드에서 신뢰할 수 있는 AI를 구축하고 이를 스케일링합니다. ModelOps에 대한 AI 라이프사이클을 자동화합니다.

IBM Watson Studio 살펴보기
Cloud Paks

AI 기반 하이브리드 클라우드 소프트웨어

IBM Cloud Paks 살펴보기
IBM Cloud 솔루션

하이브리드. 하이브리드 접근 방식을 갖췄으며 우수한 복원성을 제공하는 디지털 혁신을 위한 플랫폼이자 파트너입니다.

클라우드 솔루션 살펴보기
리소스 Watson Studio

클라우드에서 신뢰할 수 있는 AI를 구축하고 이를 스케일링합니다. ModelOps에 대한 AI 라이프사이클을 자동화합니다.

Watson Machine Learning Accelerator

딥 러닝 워크로드를 가속화합니다. AI 모델 트레이닝과 추론을 이용하여 가치 구현 시간을 앞당깁니다.

다음 단계

이제 IBM Watson이 첨단 자연어 처리 기술과 딥러닝 기술을 시스템에 적용하려는 기업에서 어떻게 신뢰하는 솔루션으로 자리매김할 수 있었는지 그 이유를 알아보세요.

게임 성능 최대화