프로그래밍/AI

순환 신경망(RNN)의 이해

에이티에스 2024. 10. 5. 13:52
728x90

애플의 시리(Siri)와 아마존의 알렉사(Alexa)는 개인 비서라는 점 외에도 순환 신경망(Recurrent Neural Networks)을 사용해 인간의 말을 이해하고 응답을 생성한다는 공통점이 있습니다. 뿐만 아니라 거의 모든 회사에서 순환 신경망을 사용하고 있습니다. 

 

기계 학습 분야의 의제는 다면적이며 컴퓨터가 데이터에서 학습하고 명시적 프로그래밍 없이 예측 또는 결정을 내리는 능력을 향상시키는 것을 목표로 합니다. 여기에는 패턴 인식, 예측 분석, 자연어 처리(NLP), 딥 러닝 등을 포함한 다양한 작업이 포함됩니다. NLP, 시계열 분석 및 순차 데이터 처리에서 응용 프로그램의 진화는 RNN(Recurrent Neural Networks)의 개선에 의해 크게 형성되었습니다.

 

인간의 두뇌에서 영감을 받은 인공 신경망(ANN)은 컴퓨터가 데이터를 처리하도록 가르치는 것을 목표로 합니다. 여기에는 인간의 두뇌와 유사한 계층 구조에서 상호 연결된 노드 또는 뉴런을 사용하는 기계 학습 프로세스(딥 러닝)가 포함됩니다. 컴퓨터가 실수로부터 배우고 지속적으로 개선하는 데 사용하는 적응형 시스템을 만듭니다. 결과적으로 ANN은 문서 요약 또는 얼굴 인식과 같은 복잡한 문제를 보다 정밀하게 해결하려고 시도합니다.

 

RNN은 시계열 데이터 또는 시퀀스와 관련된 데이터에 대해 작동하도록 조정된 특별한 유형의 ANN입니다. 순차 데이터 입력을 처리하고 특정 순차 데이터 출력으로 변환하도록 훈련됩니다. 순차 데이터는 단어, 문장, 시계열 데이터와 같이 순차적 구성 요소가 복잡한 의미 체계 및 구문 규칙에 따라 상호 연관되는 데이터입니다.

 

 

 

반응형

 

1. 순환 신경망이란?

순환 신경망(Recurrent Neural Network)은 시간적 시퀀스를 따라 노드 간에 연결이 존재하는 신경망의 한 유형입니다. 이 연결은 유방향 그래프의 연결입니다. 시간적이란 시간에 따라 전환되는 데이터를 의미합니다.

 

시간에 따라 변하는 주가, 센서 판독값, 의료 기록 등과 관련된 시계열 데이터. 이러한 순환 신경망은 내부 상태 또는 메모리를 사용하여 입력 데이터의 시퀀스를 처리합니다. 이러한 입력은 이전 입력에 따라 달라집니다. 입력 시퀀스 간에 연결이 있으며 자연어 처리 및 음성 인식과 같은 영역에서 이를 사용합니다.

 

전통적인 신경망은 과거의 입력을 기반으로 미래의 입력을 처리할 수 있는 능력이 부족합니다. 예를 들어, 기존 신경망은 이전 시퀀스를 기반으로 시퀀스의 다음 단어를 예측할 수 없습니다. 그러나 순환 신경망(RNN)은 확실히 가능합니다. 순환 신경망(Recurrent Neural Network)은 이름에서 알 수 있듯이 반복되고 있어 정보가 유지될 수 있도록 루프에서 실행됩니다.

 

 

 

위의 다이어그램에는 입력 xt를 사용하고 출력 ht를 사용하는 신경망이 있습니다.  정보는 한 단계에서 후속 단계로 전달됩니다. 이 순환 신경망은 펼쳐졌을 때 정보를 다음 상태로 전달하는 동일한 네트워크의 복사본으로 간주될 수 있습니다.

 

RNN을 사용하면 시퀀스 또는 벡터 체인에 대해 모델링을 수행할 수 있습니다. 이러한 시퀀스는 입력, 출력 또는 둘 다일 수 있습니다. 따라서 신경망이 목록 또는 시퀀스와 관련이 있다는 결론을 내릴 수 있습니다. 순차적 특성의 데이터가 있을 때마다 순환 신경망을 적용해야 합니다

 

 

반응형

 

2. 순환 신경망 동작방식

전통적인 신경망에는 고유한 가중치와 편향 집합이 있는 숨겨진 계층이 있습니다. 이 가중치와 편향을 가중치와 편향 1에 대해 각각 w1과 b1이라고 가정해 보겠습니다. 마찬가지로 세 번째 레이어에는 w2,b2 및 w3,b3이 있습니다. 또한 이러한 계층은 서로 독립적이므로 이전 출력을 기억하지 않습니다.

 

입력 계층 1개, 숨겨진 계층 3개, 출력 계층 1개로 구성된 더 깊은 신경망이 있다고 가정하겠습니다.

 

 

 

순환 신경망은 다음을 수행합니다.

  • 순환 네트워크는 먼저 독립적인 활성화를 종속 활성화로 변환합니다. 또한 모든 레이어에 동일한 가중치와 바이어스를 할당하여 매개변수의 RNN의 복잡성을 더욱 줄이고 이전 출력을 다음 레이어에 대한 입력으로 제공하여 이전 출력을 기억하기 위한 표준 플랫폼을 제공합니다.
  • 동일한 가중치와 편향을 가진 이 세 계층은 함께 하나의 순환 단위로 결합됩니다.

 

 

 

반응형

 

 

현재 상태를 계산하기 위해 –

HT – 현재 상태
HT-1 – 이전 상태
XT – 입력 상태

 
 

활성화 기능 tanh를 적용하기 위해 다음이 있습니다.

 

 

Whh - 순환 뉴런의 가중치
Wxh - 입력 뉴런의 가중치

 

산출 계산 공식은 다음과 같습니다.

Yt - 출력
Why - 출력레이어의 가중치

 

 

반응형

 

* RNN을 통한 교육

  • 신경망은 입력값에 대해 단일 시간 스텝을 취합니다.
  • 현재 입력과 이전 상태를 통해 현재 상태를 계산합니다.
  • 이제 현재 상태 출력값 ht는 다음 상태에 대해 ht-1이 됩니다.
  • n개의 단계가 있을 수 있으며 결국 모든 정보를 결합할 수 있습니다.
  • 모든 단계를 완료한 후 마지막 단계는 출력을 계산하는 것입니다.
  • 마지막으로 실제 출력과 예측된 출력 간의 차이를 계산하여 오류를 계산합니다.
  • 오차는 가중치를 조정하고 더 나은 결과를 생성하기 위해 네트워크로 역전파됩니다.

 

3. 순환 신경망의 응용

 

1. 기계 번역

번역 엔진에서 순환 신경망을 사용하여 텍스트를 한 언어에서 다른 언어로 번역합니다. LSTM과 같은 다른 모델의 조합으로 이 작업을 수행할 수 있습니다.

 

 

 

 

반응형

 

2. 음성 인식

 

순환 신경망은 Hidden Markov 모델을 사용한 기존 음성 인식 모델을 대체했습니다. LSTM과 함께 이러한 순환 신경망은 음성을 분류하고 컨텍스트 손실 없이 텍스트로 변환하는 데 더 잘 대처할 수 있습니다.

 

 

 

3. 자동 이미지 태거

 

RNN은 컨볼루션 신경망(Convolution Neural Networks)과 함께 이미지를 감지하고 태그 형태로 설명을 제공할 수 있습니다. 예를 들어, 울타리를 뛰어 넘는 여우의 이미지는 RNN을 사용하여 적절하게 설명하는 것이 좋습니다.

 

 

 

반응형

 

 

4. 감정 분석

 

사용자의 감정을 이해하기 위해 감정 분석을 사용하여 문장의 긍정성, 부정성 또는 중립성을 채굴합니다. 따라서 RNN은 문장의 감정을 찾기 위해 순차적 데이터를 처리하는 데 가장 능숙합니다.

 

 

 

RNN은 금융 모델을 구축하고 미래를 예측하기 위한 노력의 일환으로 금융 분야에서도 사용되고 있습니다. 시간적 특성으로 인해 RNN은 시장 내 주가, 추세 및 위험을 추정하는 데 사용할 수 있습니다. 따라서 투자 및 포트폴리오 관리는 물론 위험 관리에 영향을 줄 수 있는 귀중한 정보를 제공하기 때문에 특히 금융 부문에서 사용할 때 유용한 도구입니다.

 

또한 RNN은 의료 분야에서 환자의 기록과 미래의 가능한 질병을 진단하는 데 사용됩니다. RNN은 사슬이 질병 발생 또는 합병증 가능성에 대한 표시를 제공할 수 있는 의료 데이터의 염기서열을 분석하는 데 도움이 됩니다. 이러한 RNN의 사용은 조기 진단 및 치료 계획을 지원하는 데 유용한 예측 모델을 설계하는 데 중요합니다.

 

반응형

 

728x90
반응형
그리드형