RNN은 과거의 일일 홍수, 조수, 기상 데이터를 기반으로 일일 홍수 수준을 예측하는 데 사용할 수도 있고 언어 번역, 자연어 처리(NLP), 감정 분석, 음성 인식, 이미지 캡션과 같은 순서적 또는 시간적 문제 해결에도 사용할 수 있습니다.
순환 신경망은 피드포워드 신경망 및 콘볼루션 신경망(CNN)과 같은 전통적인 신경망과 마찬가지로 학습 데이터를 활용하여 학습합니다. 이전 입력에서 정보를 가져와 현재의 입력과 출력에 영향을 줄 때의 '메모리'가 이 신경망들의 차이점입니다.
전통적인 딥 러닝은 입력과 출력이 서로 독립적으로 가정하지만, 순환 신경망의 출력은 시퀀스 내의 이전 요소에 따라 달라집니다. 미래의 이벤트도 주어진 시퀀스의 출력을 결정하는 데 도움이 되지만, 단방향 반복 신경망은 예측에서 이러한 이벤트를 설명할 수 없습니다.
어떤 일이 아주 쉽다는 의미의 '식은 죽 먹기'라는 관용구를 예로 들어 RNN을 설명해 보겠습니다. 관용구는 특정 순서에 따라 표현되어야 의미를 가집니다. 때문에 순환 긴경망은 관용어에서 각 단어의 위치를 고려하고, 이 정보를 사용해 다음 순서에 올 단어를 예측합니다.
'식은 죽 먹기'의 각 단어는 순서가 중요한 시퀀스의 일부입니다. RNN은 각 시간 단계에서 숨겨진 상태를 유지하여 컨텍스트를 추적합니다. 피드백 루프는 숨겨진 상태를 한 단계에서 다음 단계로 전달하여 생성됩니다. 숨겨진 상태는 이전 입력에 관한 정보를 저장하는 메모리 역할을 합니다. 각 시간 단계에서 RNN은 현재 입력(예: 문장의 단어)을 이전 시간 단계의 숨겨진 상태와 함께 처리합니다. 이를 통해 RNN은 이전 데이터 포인트를 "기억"하고 그 정보를 사용하여 현재 아웃풋에 영향을 줄 수 있습니다.
순환 신경망의 또 다른 두드러진 특징은 네트워크의 각 계층에서 매개변수를 공유한다는 것입니다. 피드포워드 네트워크는 노드마다 가중치가 다르지만, 순환 신경망은 네트워크의 계층마다 가중치 매개변수가 동일합니다. 그러면서도 강화 학습을 용이하게 하기 위해 역전파 및 경사 하강법을 통해 가중치를 조정합니다.
순환 신경망은 순전파 및 BPTT(시간 전파를 통한 역전파) 알고리즘을 활용하여 그래디언트(또는 도함수)를 결정합니다. 이것은 전통적인 역전파와는 약간 다르며, 시퀀스 데이터에 특화되어 있습니다. BPTT의 원리는 모델이 출력 계층에서 입력 계층으로 오류를 계산하여 스스로 학습하는 기존의 역전파와 동일합니다. 이 계산을 하면 모델의 매개변수를 적절하게 조정하고 맞출 수 있습니다. BPTT는 각 시간 스텝에서 오차의 합을 구하는 반면, 피드포워드 신경망은 각 계층에서 파라미터를 공유하지 않기 때문에 오차의 합을 구할 필요가 없다는 점에서 기존 접근 방식과 다릅니다.
활성화 함수는 네트워크의 각 뉴런 계층의 아웃풋에 적용되는 수학적 함수로, 비선형성을 도입하고 네트워크가 데이터의 더욱 복잡한 패턴을 더 많이 학습할 수 있도록 합니다. 활성화 함수가 없으면 RNN은 단순히 입력의 선형 변환을 계산하므로 비선형 문제를 처리할 수 없습니다. 비선형성은 복잡한 패턴을 학습하고 모델링하는 데 매우 중요하며, 특히 NLP, 시계열 분석 및 순차 데이터 예측과 같은 작업에서 중요합니다.
활성화 함수는 뉴런의 아웃풋 크기를 제어하여 값을 지정된 범위(예: 0~1 또는 -1 및 1) 내로 유지합니다. 이를 통해 정방향 및 역방향 패스 중에 값이 너무 커지거나 너무 작아지는 것을 방지할 수 있습니다. RNN에서는 각 시간 단계에서 숨겨진 상태에 활성화 함수가 적용되어 네트워크가 현재 입력과 과거의 숨겨진 상태에 따라 내부 메모리(숨겨진 상태)를 업데이트하는 방식이 제어됩니다.
일반적인 활성화 함수(다음 그림)는 다음과 같습니다.
시그모이드 함수는 아웃풋을 확률로 해석하거나, 보존하거나 잊어버릴 정보의 양을 정하는 제어 게이트를 사용하기 위해 사용합니다. 단, 시그모이드 함수는 그래디언트 소실 문제(이후 설명 참조)가 발생하기 쉬우므로 심층 네트워크에는 적합하지 않습니다.
Tanh(쌍곡선 탄젠트) 함수는 0을 중심으로 하는 아웃풋 값을 출력하므로 자주 사용됩니다. 이러한 특성은 더 나은 그래디언트 흐름과 쉬운 장기 종속성 학습에 도움이 됩니다.
ReLU(정류 선형 단위)는 무한하지 않은 특성으로 인해 그래디언트 폭발 문제를 일으킬 수 있습니다. 그러나 이러한 문제를 일부 완화하기 위해 Leaky ReLU 및 Parametric ReLU와 같은 변형이 사용되었습니다.
순환 신경망의 작동 원리에 대해 자세히 알아보려면 순환 신경망 심층 분석을 참조하세요.
피드포워드 신경망은 하나의 입력을 하나의 출력에 매핑하며, 앞의 다이어그램에서 순환 신경망을 이런 방식으로 시각화했지만 이러한 제약 조건이 없습니다. 그 대신 입력과 출력의 길이가 다를 수 있으며 음악 생성, 감정 분류, 기계 번역과 같은 다양한 사용 사례에 다양한 유형의 RNN이 사용됩니다. 인기 있는 순환 신경망 아키텍처 변형은 다음과 같습니다.
아웃풋이 현재 입력과 이전 시간 단계의 숨겨진 상태 모두에 따라 다른 가장 기본적인 버전의 RNN은 그래디언트 소실과 같은 문제가 있어서 장기 종속성을 학습하기 어렵습니다. 이러한 RNN은 문장의 다음 단어(짧고 간단한 문장의 경우) 또는 간단한 시계열의 다음 값을 예측하는 등 단기 종속성이 있는 간단한 작업에 탁월합니다.
RNN은 센서 데이터를 처리하여 단기간 내 이상을 감지하는 것과 같이 실시간으로 데이터를 순차 처리하는 작업(이러한 작업에서 입력은 한 번에 하나씩 수신되고 가장 최근의 입력을 기반으로 즉시 예측해야 함)에 적합합니다.
단방향 RNN이 이전 입력에서만 데이터를 가져와 현재 상태를 예측할 수 있었다면, 양방향 RNN(BRNN)은 미래의 데이터를 가져와서 정확도를 높입니다. '식은 죽 먹기'의 예로 돌아가면, BRNN 기반 모델은 시퀀스의 마지막 단어가 '먹기'라는 것을 알고 있다면 해당 구문의 두 번째 단어가 '죽'이라고 예측할 확률이 높습니다.
LSTM은 Sepp Hochreiter와 Juergen Schmidhuber가 그래디언트 소실 문제에 대한 해결책으로 도입한 인기 있는 RNN 아키텍처입니다. 이 논문은 장기 종속성 문제를 다루었습니다. 즉, 현재의 예측에 영향을 미치는 이전 상태가 최근의 과거가 아닌 경우, RNN 모델은 현재 상태를 정확하게 예측하지 못할 수 있습니다.
예를 들어 '앨리스는 견과류 알레르기가 있다. 그래서 땅콩 버터를 먹지 못한다.'라는 문장에서 '땅콩 버터'를 예측한다고 합시다. 견과류 알레르기라는 맥락은 먹을 수 없는 음식에 견과류가 포함되어 있다는 것을 예상하는 데 도움이 될 수 있습니다. 그러나 그 맥락이 몇 문장 전에 등장한다면 RNN이 정보를 연결할 수 없거나 제대로 연결하지 못할 수 있습니다.
이 문제를 해결하기 위해 LSTM 네트워크는 신경망의 숨겨진 계층에 입력 게이트, 출력 게이트, 망각 게이트로 구성된 '셀'을 가지고 있습니다. 이 게이트는 네트워크의 출력을 예측하는 데 필요한 정보의 흐름을 제어합니다. 예를 들어 '그녀' 같은 성별 대명사가 이전 문장에서 여러 번 반복된 경우 셀 상태에서 이 단어를 제외할 수 있습니다.
GRU는 RNN 모델의 단기 메모리 문제를 해결하기 위해 작동한다는 점에서 LSTM과 유사합니다. 정보를 조절하는 '셀 상태' 대신 숨겨진 상태를 사용하며, 게이트가 3개가 아니라 2개입니다(리셋 게이트, 업데이트 게이트). LSTM 내의 게이트와 마찬가지로, 리셋 게이트와 업데이트 게이트는 어느 정보를 얼마나 많이 보존할 것인지 제어합니다.
GRU는 아키텍처가 더 단순하므로 LSTM에 비해 계산 효율성이 더 높고 더 적은 매개변수를 필요로 합니다. 따라서 더 빠른 학습이 가능하며, 특정 실시간 또는 리소스 제약이 있는 애플리케이션에 더 적합한 경우가 많습니다.
일반적으로 기계 번역과 같은 시퀀스 간 작업에 사용됩니다. 인코더는아웃풋력 시퀀스를 고정된 길이의 벡터(컨텍스트)로 처리하고, 디코더는 해당 컨텍스트를 사용하여 아웃풋 시퀀스를 생성합니다. 그러나 고정된 길이의 컨텍스트 벡터는 특히 긴 입력 시퀀스에서 병목 현상이 발생할 수 있습니다.
인공 지능 분야에서 RNN의 사용은 감소 추세이며, 특히 변환기 모델과 같은 아키텍처가 선호됩니다. 하지만 RNN이 쓸모없어진 것은 아닙니다. RNN은 시간적 종속성을 처리할 수 있는 기능이 있어서 이전부터 순차적 데이터 처리(예: 시계열 및 언어 모델링)에 널리 사용되었습니다.
그러나 소실되거나 폭발하는 그래디언트 문제에 대한 RNN의 취약성과 BERT 및 GPT와 같은 변환기 모델의 등장으로 인해 이러한 감소세가 나타나고 있습니다. 변환기는 장거리 종속성을 훨씬 더 효과적으로 포착할 수 있고, 병렬화가 더 쉬우며, NLP, 음성 인식 및 시계열 예측과 같은 작업에서 더 좋은 성능을 발휘합니다.
즉, RNN은 순차적 특성과 메모리 메커니즘이 유용할 수 있는 특정 컨텍스트, 특히 리소스 제약이 있는 규모가 작은 환경 또는 단계적 반복이 데이터 처리에 도움이 되는 작업에 여전히 사용됩니다.
그러한 사용 사례를 실험해보고 싶은 분들을 위해 이제 TensorFlow 라이브러리에 통합된 인기 오픈 소스 라이브러리인 Keras가 RNN용 Python 인터페이스를 제공합니다. 이 API는 사용과 사용자 정의가 용이하도록 설계되어 사용자가 사용자 정의 동작으로 자신만의 RNN 셀 레이어를 정의할 수 있습니다.
신경망, 신경망의 기본 기능 및 신경망 구축의 기본 사항에 대해 심층적으로 이해합니다.
IBM Granite는 비즈니스에 맞게 맞춤화되고 AI 애플리케이션 확장에 최적화된 신뢰할 수 있는 고성능의 개방형 AI 모델 제품군입니다. 언어, 코드, 시계열 및 가드레일 옵션을 살펴보세요.
IBM은 2,000개 조직을 대상으로 AI 이니셔티브에 대한 설문조사를 실시하여 효과적인 전략과 효과적이지 못한 전략, 그리고 앞서나갈 수 있는 방법을 알아보았습니다.
생성형 AI와 머신 러닝을 비즈니스에 자신 있게 통합하는 방법 알아보기
AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.
업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io