전통문화대전망 - 전통 미덕 - 순환 신경망 (RNN) 분석

순환 신경망 (RNN) 분석

RNN 은 두 신경망 모델의 약어로, 재귀 신경망 (Recursive Neural Network) 과 순환 신경망 (Recurrent Neural Network) 입니다. 이 두 신경망은 매우 밀접한 관련이 있지만, 이 기사에서는 주로 두 번째 신경망 모델인 순환 신경망 (Recurrent Neural Network) 에 대해 다루고 있습니다. < P > 순환 신경망은 시간이 지남에 따라 반복되는 구조입니다. 자연어 처리 (NLP), 음성 이미지 등 여러 분야에서 널리 사용되고 있습니다. RNN 네트워크와 다른 네트워크의 가장 큰 차이점은 RNN 이 일종의' 메모리 기능' 을 실현할 수 있다는 점이다. 시계열 분석을 할 때 가장 좋은 선택이다. 인간이 자신의 과거의 기억으로 세상을 더 잘 알 수 있는 것처럼. RNN 은 또한 인간의 뇌와 비슷한 메커니즘을 구현하여 처리된 정보에 대해 어느 정도의 기억을 보유하지만, 다른 유형의 신경 네트워크와는 달리 처리된 정보에 대한 기억은 보유하지 못한다. < P > 순환 신경망의 원리는 그리 복잡하지 않습니다. 이 섹션에서는 RNN 의 구조와 기능을 원칙적으로 분석합니다. RNN 의 수학적 유도와 증명은 다루지 않습니다. 전체 네트워크에는 단순한 입/출력 및 네트워크 상태 매개변수만 있습니다. 일반적인 RNN 신경 네트워크는 다음과 같습니다. < P > 위의 그림에서 볼 수 있듯이 일반적인 RNN 네트워크에는 입력 X, 출력 H 및 신경망 단위 A 가 포함되어 있습니다. 일반 신경망과는 달리, RNN 네트워크의 신경망 단위 A 는 입력과 출력뿐만 아니라 자체와도 하나의 회로를 가지고 있다. 이 네트워크 구조는 RNN 의 본질을 드러낸다. 즉, 이전 순간의 네트워크 상태 정보가 다음 순간의 네트워크 상태에 작용한다. 위 그림의 네트워크 구조가 여전히 명확하지 않은 경우 RNN 네트워크는 시계열로 전개될 수 있습니다. < P > 등호 오른쪽은 RNN 의 전개 형태입니다. RNN 은 일반적으로 시퀀스 정보를 처리하는 데 사용되므로 다음 설명에서는 시계열을 예로 들어 설명합니다. 등호 오른쪽에 있는 동등한 RNN 네트워크의 초기 입력은 x 이고 출력은 h 입니다. 즉, 시 RNN 네트워크의 입력은 x, 출력은 h, 네트워크 뉴런은 시 상태에서는 A 에 저장된다는 뜻입니다. 다음 순간 1 이 도착했을 때, 이 시점에서 사이버 뉴런의 상태는 1 시 입력 x1 뿐만 아니라 시 뉴런 상태에 의해 결정된다. 이후의 상황은 시계열의 끝 T 순간까지 이런 식으로 진행됩니다. < P > 위의 과정은 간단한 예를 들어 논증할 수 있다. 현재' I want to play basketball' 이라는 말이 있다고 가정해 보자. 자연어 자체가 시계열이기 때문에 이전 언어는 이후 언어와 어떤 연관이 있다. 예를 들어, 아까 문장에서' play' 라는 동사는 뒤에 반드시 명사가 있어야 한다는 것을 의미한다 아까 그 문장으로 돌아가면, 이 문장 중 5 개 단어는 시간순으로 나오는데, 우리는 이제 이 다섯 단어를 인코딩한 후 RNN 에 차례로 입력하겠습니다. 첫 번째는 단어 "I" 로, 시계열에 처음 나타나는 단어로 x 입력으로 사용되어 h 출력을 가지며 초기 뉴런 A 의 상태를 변경합니다. 단어' want' 는 시계열에서 두 번째로 나타나는 단어로 x1 입력으로 RNN 의 출력과 뉴런 상태가 x1 뿐만 아니라 이전 순간의 뉴런 상태나 이전 순간의 입력 x 에 의해 결정될 수 있습니다. 그 후의 상황은 위의 문장이 마지막 단어인 "basketball" 에 입력될 때까지 계속됩니다. < P > 다음으로 RNN 의 뉴런 구조에 주목해야 합니다. < P > 위 그림은 여전히 RNN 신경망의 타이밍 전개 모델이며, 중간 T 순간의 네트워크 모델은 RNN 의 구조를 보여 줍니다. 보시다시피 원래 RNN 네트워크의 내부 구조는 매우 간단합니다. T 순간에 뉴런 A 의 상태는 t-1 시간 뉴런 상태와 T 시간 네트워크에 입력된 쌍곡선 탄젠트 함수의 값일 뿐, 이 값은 해당 시점의 네트워크 출력일 뿐만 아니라 해당 시점의 네트워크 상태로 다음 순간의 네트워크 상태로 전달됩니다. 이 과정을 RNN 의 순전파 (forward propagation) 라고 합니다. 주: 쌍곡선 탄젠트 함수의 분석 공식은 다음과 같습니다. < P > 쌍곡선 탄젠트 함수의 파생은 다음과 같습니다. < P > 쌍곡선 탄젠트 함수의 이미지는 다음과 같습니다. < P > 여기서 문제가 발생합니다. RNN 네트워크의 활성화 함수는 왜 sigmod 대신 쌍곡 탄젠트를 사용해야 합니까? (RNN 의 활성화 함수는 쌍곡 탄젠트를 제외하고 RELU 함수도 많이 사용됩니다.) RNN 네트워크는 해결 시 시계열에 대한 대량의 파생 연산을 포함하고, sigmod 함수를 사용하면 그라데이션이 사라지기 쉬우며, sigmod 의 파생 형태는 더 복잡하기 때문입니다. 실제로 쌍곡 탄젠트 함수를 사용해도 기존 RNN 네트워크에는 그라데이션 소멸 문제가 남아 있어 긴 시퀀스의 정보를 "기억" 할 수 없습니다. 이 버그는 LSTM 에 셀 상태가 도입될 때까지 잘 해결되지 않았습니다. < P > 이 섹션에서는 RNN 과 관련된 수학적 파생에 대해 설명합니다. RNN 은 타이밍 모델이므로 해결 프로세스가 일반 신경망과 다를 수 있습니다. 먼저 RNN 의 전체 구조도를 소개해야 하는데, 이전 섹션에서 제시한 RNN 구조도는 많은 내부 매개변수를 생략하고 하나의 개념 모델로만 제공됩니다. < P > 위 그림은 RNN 네트워크의 전체 토폴로지를 보여 주며, RNN 네트워크의 매개변수 상황을 볼 수 있습니다. 여기서 우리는 T-순간 네트워크의 행동과 수학적 추론만 분석한다. T 순간 네트워크는 입력 XT 를 맞이합니다. 네트워크의 이 순간의 뉴런 상태 ST 는 다음과 같은 식으로 표현됩니다.

t 순간의 네트워크 상태 ST 는 다음 순간 t+1 의 네트워크 상태뿐만 아니라 해당 시점의 네트워크 출력으로도 입력해야 합니다. 물론 ST 는 직접 출력할 수 없고, 내보내기 전에 계수 V 를 하나 더 곱해야 하며, 오차 역전파 시 편의를 위해 출력을 정규화해야 하는 경우가 많습니다. 즉, 출력을 softmax 화하는 것입니다. 따라서 T 순간 네트워크의 출력 ot 표현은 다음과 같습니다. < P > 편의를 위해 필자는 위의 두 가지 공식을 다음과 같이 변환합니다. < P > 이상, 즉 RNN 네트워크의 수학적 표현입니다. 다음으로 이 모델을 해결해야 합니다. 구체적인 해법을 논술하기 전에 먼저 두 가지 문제를 명확히 해야 한다. 최적화 목표 함수는 무엇인가? 최적화해야 할 양은 무엇입니까?

이 두 가지 문제가 명확해질 때까지 모델을 구체적으로 추론하고 해결할 수 없습니다. 첫 번째 문제에 대해 필자는 모델의 손실 함수를 최적화 목표로 선택했습니다. 두 번째 문제는 RNN 의 구조도에서 쉽게 찾을 수 있습니다. 모델의 U, V, W 를 얻으면 모델의 상태를 완전히 확인할 수 있습니다. 따라서 이 최적화 문제에 대한 최적화 변수는 RNN 의 세 가지 매개변수입니다. 그건 그렇고, RNN 모델의 U, V, W 의 세 가지 매개 변수는 글로벌 * * * 입니다. 즉, 서로 다른 시점의 모델 매개 변수가 정확히 일치하며, 이 기능은 RNN 매개 변수를 약간 줄입니다. < P > 너무 많은 논의를 하지 않고 RNN 의 손실 함수는 기계 학습에서 가장 널리 사용되는 손실 함수 중 하나인 크로스 엔트로피 (Cross Entropy) 를 사용합니다. 일반적인 표현식은 다음과 같습니다. < P > 위 식은 교차 엔트로피의 스칼라 형식이고 y_i 는 실제 레이블 값, y \ 교차 엔트로피는 RNN 에 적용될 때 약간의 변화가 필요합니다. 첫째, RNN 의 출력은 벡터 형식이므로 모든 차원을 함께 추가할 필요가 없습니다. 손실 값을 벡터로 직접 표현하면 됩니다. 둘째, RNN 모델은 시퀀스 문제를 처리하므로 모델 손실은 한 순간의 손실일 수 없으며 모든 N 시간의 손실을 포함해야 합니다. < P > 따라서 T 시점에서 RNN 모델의 손실 함수는 다음과 같이 작성됩니다. < P > 모든 N 시간의 손실 함수 (글로벌 손실) 는 다음과 같이 표현됩니다. < P > 는 < P > 가 설명해야 할 것은 T 시에 입력된 실제 레이블 값, ot 는 모델의 예측 값, N 은 모든 N 시간을 나타냅니다. 아래 글에서는 글쓰기가 편리하도록 Loss 를 L 로 간략하게 적었다. 이 섹션을 끝내기 전에 마지막으로 softmax 함수의 파생 공식을 추가합니다. < P > RNN 모델은 시계열과 관련이 있으므로 BP(back propagation) 알고리즘을 직접 사용할 수 없습니다. RNN 문제의 특수한 상황에 대해 BPTT 알고리즘이 제시되었다. BPTT 의 전체 이름은 시간에 따른 역전파 알고리즘 (back propagation through time) 입니다. 이 방법의 기초는 여전히 통상적인 체인식 유도법칙으로, 다음에 구체적으로 추론하기 시작한다. RNN 의 글로벌 손실은 모든 N 개의 순간과 관련이 있지만, 단순 필자가 추론할 때 T 순간의 손실 함수에만 초점을 맞추기 위해서다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 성공명언)

먼저 t 시간 손실 함수 o_t* 에 대한 미분 찾기:

손실 함수 찾기 매개변수 v 에 대한 미분:

따라서 글로벌 손실 매개변수 v 에 대한 미분은

t 시간 손실 함수 찾기 st* 에 대한 미분 정보:

참고: 시계열 모델이기 때문에 T 순간의 U 에 대한 미분은 상위 t-1 시와 모두 관련이 있으며, 구체적인 계산에서는 상위 N 순간까지 제한 할 수 있지만, 유도시 상위 t-1 순간을 모두 가져와야 합니다. < P > 따라서 글로벌 손실 U 에 대한 편미분은 < P > T 시간 손실 함수 정보 매개변수 정보 여기서는 여전히 모든 이전 t-1 시간의 상황을 계산해야 합니다. < P > 따라서 글로벌 손실 매개변수 W 에 대한 미분 결과는 < P > 입니다. 이 시점에서 글로벌 손실 함수는 세 가지 주요 매개변수에 대한 미분을 이미 얻었습니다. 정리는 다음과 같습니다. < P > 그런 다음 위의 미분 표현식을 더욱 단순화하여 단순화의 주요 방향은 T 순간의 손실 함수인 ot 의 미분과 st* 에 대한 미분을 단순화합니다. 알려진 t 순간 손실 함수 표현식, ot 에 대한 미분 찾기:

softmax 함수 유도:

그래서:

또:

및:

위의 수학적 유도를 통해 u, v 에 대한 글로벌 손실을 얻을 수 있습니다 하지만 이미 T 순간의 손실 함수인 s_t-1 에 대한 미분반복 공식을 제시했는데, 이 식을 푸는 것도 매우 간단하기 때문에 여기서는 군더더기를 하지 않는다. < P > 이상은 BPTT 알고리즘에 대한 모든 수학적 유도입니다. 최종 결과에서 볼 수 있듯이 세 가지 공식의 편미분 결과는 매우 간단하며 구체적인 최적화 과정에서 직접 가져와 계산할 수 있습니다. 이러한 최적화 문제에 대해 가장 일반적으로 사용되는 방법은 그라데이션 하강 방법입니다. 이 문서에서 다루는 RNN 문제에 대해 세 매개변수의 그라데이션 갱신 공식을 구성할 수 있습니다. < P > 는 위의 그라데이션 갱신 공식에 따라 세 매개변수의 값이 수렴될 때까지 세 개의 매개변수를 반복적으로 해석할 수 있습니다. < P > 필자가 RNN 의 수학적 모델을 추론하려고 시도한 것은 이번이 처음이며, 추출 과정에서 많은 버그를 만났다. 인터넷상의 일부 공개 자료와 블로그에 감사드립니다. 큰 도움과 지침을 주셨습니다. 다음으로 필자는 의미 예측 모델을 구현하기 위해 단일 숨겨진 레이어의 RNN 모델을 구현하려고 시도합니다.