tensorflow rnn 예제

아래에 설명될 예제 코드에서는 텍스트 예측을 수행할 예정입니다. Word2Vec 알고리즘의 이전 자습서에서 설명한 것처럼 단어는 의미 있는 단어 벡터를 사용하여 신경망에 입력됩니다. 이 벡터는 단어의 의미의 일부 측면을 캡처하는 방식으로 인코딩됩니다 (의미는 일반적으로 단어가 일반적으로 발견되는 컨텍스트로 해석됩니다). 따라서 아래의 LSTM 네트워크에 입력된 각 단어는 650 길이 벡터가 됩니다. 다음으로, 언롤링된 LSTM 네트워크에 단어 시퀀스를 입력하기 때문에 각 입력 행에 대해 이러한 단어 벡터 중 35개에 대해 입력합니다. 따라서 각 행의 입력은 크기(35 x 650)가 됩니다. 마지막으로 TensorFlow를 사용하면 다차원 텐서를 통해 데이터 일괄 처리를 처리할 수 있습니다(기본 TensorFlow에 대해 자세히 알아보려면 이 TensorFlow 자습서를 참조하십시오). 일괄 처리 크기가 20인 경우 학습 입력 데이터(20 x 35 x 650)가 됩니다. 나중에 참조하기 위해 텐서 크기를 제시 한 방법 (예 : (20 x 35 x 650))을 배치 크기가 텐서의 첫 번째 차원인 „배치 메이저“배열이라고합니다. 우리는 또한 „시간 주요“형식으로 데이터를 정렬 할 수 있습니다, 이는 될 것 (35 x 20 x 650) – 동일한 데이터, 그냥 다른 배열. 아래에서는 간단한 RNN을 텐서플로우에서 코딩하여 단계와 출력의 모양을 이해합니다. 특히 좋은 예는 텍스트 시퀀스를 예측하는 것입니다. „한 소녀가 술집에 들어갔는데,`술을 마실 수 있을까?` 하고 물었습니다.

바텐더는 `확실히 {}“라고 말했다. 예를 들어 위의 문자열에서 {} 기호를 채울 수 있는 옵션(예: „miss“, „ma`am“ 등)에 대한 많은 옵션이 있습니다. 그러나 다른 단어는 „선생님“, „미스터“등과 같은 에도 맞을 수 있습니다. 명사에 대한 올바른 성별을 얻기 위해 신경망은 가능성이 있는 성별(예: „소녀“와 „그녀“)을 지정하는 두 개의 이전 단어가 사용되었다는 것을 „기억“해야 합니다. 반복 신경망에서 시간(또는 시퀀스)을 통한 이러한 유형의 정보 흐름은 시퀀스를 해제하는 아래 다이어그램에 나와 있습니다. 클래스. 첫 번째 클래스는 입력 데이터를 포함하는 간단한 클래스입니다: 또한 이것은 RNN의 작동 방식을 설명하는 간단한 예일 뿐이며, 이 기능은 몇 줄의 코드로프로그래밍할 수 있습니다. 네트워크는 데이터를 테스트할 필요가 없도록 에코 동작을 정확하게 학습할 수 있습니다. 가장 까다로운 부분은 입력을 올바른 형식과 시퀀스로 공급하는 것입니다.

이 예에서 LSTM은 3개의 정수(예: int의 1×3 벡터)의 시퀀스를 공급합니다. RNN널리 텍스트 분석, 이미지 캡션, 감정 분석 및 기계 번역에 사용됩니다. 예를 들어, 영화 리뷰를 사용하여 영화를 본 후 관중이 느끼는 느낌을 이해할 수 있습니다. 이 작업을 자동화하는 것은 영화 회사가 리뷰를 검토, 레이블 지정, 통합 및 분석할 시간이 충분하지 않은 경우에 매우 유용합니다. 기계는 더 높은 수준의 정확도로 작업을 수행 할 수 있습니다. 이제 다시 재생 신경망 자체로 돌아갑니다. 재발신경망은 매우 유연합니다. 위에 표시된 구현에서, 우리는 많은 – 투 – 다수 모델을 가지고 – 다른 말로, 우리는 입력 시퀀스가 „여자는 술집에 걸어 …“ 그리고 많은 출력 – $h_0$ $h_t$. 우리는 또한 여러 개의 다른 구성을 가질 수 있습니다.

또 다른 옵션은 일대다입니다.