RNN의 아키텍처를 이해하려고합니다. 나는 매우 도움이되는이 튜토리얼을 찾았습니다 : http://colah.github.io/posts/2015-08-Understanding-LSTMs/
이것이 피드 포워드 네트워크에 어떻게 맞습니까? 이 이미지는 각 레이어의 다른 노드입니까?
RNN의 아키텍처를 이해하려고합니다. 나는 매우 도움이되는이 튜토리얼을 찾았습니다 : http://colah.github.io/posts/2015-08-Understanding-LSTMs/
이것이 피드 포워드 네트워크에 어떻게 맞습니까? 이 이미지는 각 레이어의 다른 노드입니까?
답변:
실제로 A는 풀 레이어입니다. 레이어의 출력은, 실제로는 maxmax 레이어에 연결될 수있는 뉴런 출력입니다 (시간 단계에 대한 분류를 원할 경우). 예를 들어) 또는 다른 LSTM 레이어와 같은 다른 것으로 더 깊이 가고 싶다면. 이 레이어의 입력은 일반적인 피드 포워드 네트워크와 구별되는 것입니다. 이전 시간 단계에서 네트워크의 전체 상태 (둘 다 LSTM 셀의 다른 변수).
참고 벡터입니다. 따라서 1 개의 숨겨진 레이어가있는 일반 피드 포워드 네트워크와 유사하게하려면 A는 숨겨진 레이어에서 이러한 뉴런을 모두 대체하는 것으로 생각할 수 있습니다 (반복적 인 부분의 추가 복잡성).
seq2seq 모델의 디코더에서주의 메커니즘 인 비교적 복잡한 컨텍스트에서 간단한 다이어그램을 설명하고 싶습니다.
흐름도에서, 에 시간 단계 (공백의 경우 PAD가있는 입력 번호와 동일한 길이)입니다. 단어를 i 번째 (시간 단계) LSTM 신경 (또는 이미지의 3 개 중 어느 것과 동일한 커널 셀)에 넣을 때마다 이전 상태 ((i-1) 번째 출력)에 따라 i 번째 출력을 계산합니다. i 번째 입력. 나는 이것을 사용하여 당신의 문제를 설명합니다. 시간 단계의 모든 상태는 마지막 것만 얻기 위해 버려지기보다는주의 메커니즘에 저장되기 때문입니다. 그것은 단지 하나의 신경이며 층으로 간주됩니다 (예를 들어, 일부 seq2seq 모델에서 양방향 레이어 인코더를 형성하기 위해 여러 레이어가 쌓여서 더 많은 추상 정보를 하 이거 레이어에서 추출 할 수 있습니다).
그런 다음 문장을 (L 단어와 각각 모양의 벡터로 표시 : embedding_dimention * 1) L 텐서 (각각 모양 : num_hidden / num_units * 1) 의 목록으로 인코딩 합니다. 그리고 디코더를 지나간 상태는 목록에서 각 항목의 동일한 모양이 포함 된 문장의 마지막 벡터 일뿐입니다.
사진 출처 : 주의 메커니즘