그러나 교육 예제는 이전 예제의 입력 집합으로 보완됩니다. 이것은 „틀에 얽매이지 않는”, 예를 들어 재발신경망입니다. 단어의 시퀀스를 감안할 때 우리는 이전 단어를 주어진 각 단어의 확률을 예측할 수 있습니다. 언어 모델을 사용하면 높은 확률의 문장이 일반적으로 정확하기 때문에 기계 번역에 중요한 입력인 문장의 가능성을 측정할 수 있습니다. 다음 단어를 예측할 수 있는 부작용은 생성 모델을 얻게 되어 출력 확률에서 샘플링하여 새 텍스트를 생성할 수 있다는 것입니다. 그리고 우리의 교육 데이터가 무엇인지에 따라 우리는 모든 종류의 물건을 생성 할 수 있습니다. 언어 모델링에서 입력은 일반적으로 단어 의 시퀀스 (예를 들어 하나의 핫 벡터로 인코딩) 및 우리의 출력은 예측 된 단어의 시퀀스입니다. 네트워크를 교육할 때 단계의 출력이 실제 다음 단어가 되기를 원하기 때문에 설정했습니다. 예비 결과는 Neural 튜링 머신이 입력 및 출력 예제에서 복사, 정렬 및 연관 회수와 같은 간단한 알고리즘을 추론할 수 있음을 보여줍니다. 게이츠는 스스로 가중치가 적용되며 학습 단계 전반에 걸쳐 알고리즘에 따라 선택적으로 업데이트됩니다. 이 네트워크를 구성하는 방법에는 여러 가지가 있으며 전자 필기장에는 여러 가지 방법이 있습니다. 예를 들어 서로 겹쳐진 두 개의 LSTM 레이어, 양방향에서 시퀀스를 처리하는 양방향 LSTM 레이어 또는 더 많은 밀도 레이어를 사용할 수 있습니다. 나는 잘 작동 하기 위해 위의 설정을 발견.

RNN 을 훈련하는 것은 전통적인 신경망을 훈련하는 것과 유사합니다. 우리는 또한 역전파 알고리즘을 사용하지만 약간의 트위스트가 있습니다. 매개 변수는 네트워크의 모든 시간 단계에서 공유되므로 각 출력의 그라데이션은 현재 시간 단계의 계산뿐만 아니라 이전 시간 단계에도 따라 달라집니다. 예를 들어 그라데이션을 계산하려면 3단계를 역전파하고 그라데이션을 합산해야 합니다. 이를 시간(BPTT)을 통한 역전파라고 합니다. 이 아직 많은 의미를 하지 않는 경우, 걱정 하지 마세요, 우리는 피투성이 세부 사항에 전체 게시물을 거 야. 현재로서는 BPTT로 훈련된 바닐라 RNN이 소실/폭발 그라데이션 문제로 인해 장기 종속성(예: 멀리 떨어져 있는 단계 간의 종속성)을 배우는 데 어려움이 있다는 사실을 알고 있어야 합니다. 이러한 문제를 처리하기 위한 몇 가지 기계가 존재하며, 특정 유형의 RNN(예: LSTM)은 이러한 문제를 해결하도록 특별히 설계되었습니다.

단어 수는 매개 변수로 남아 있습니다. 여기에 표시된 예제에 50을 사용하므로 네트워크에 50개의 단어를 제공하고 51번째 를 예측하도록 교육합니다. 네트워크를 교육하는 다른 방법은 시퀀스의 각 지점에서 다음 단어를 예측하도록 하는 것입니다. 여기서 사용되는 구현이 반드시 최적(허용되는 최상의 솔루션은 없지만 잘 작동)은 아닙니다! 재발성 그물은 센서, 주식 시장 및 정부 기관에서 방출되는 텍스트, 게놈, 필기, 음성 단어 또는 숫자 시간 계열 데이터와 같은 일련의 데이터에서 패턴을 인식하도록 설계된 인공 신경망의 한 유형입니다. 이러한 알고리즘은 시간과 시퀀스를 고려하여 시간 차원을 갖습니다. 위의 코드에서 먼저 원시 텍스트 데이터는 int32 텐서로 변환됩니다. 다음으로 전체 데이터 집합의 길이가 data_len에 계산되고 저장되며 이 값은 정수 분할(//)의 일괄 처리 크기로 나누어 데이터 집합 내에서 사용할 수 있는 전체 데이터 일괄 처리 수를 가져옵니다. 다음 줄은 raw_data tensor(크기가 0에서 batch_size * batch_len까지)로 변경됩니다(batch_size, batch_len) 모양으로 변경됩니다.

다음 줄은 각 시대의 반복 횟수를 설정합니다.