4

1 개의 출력을 생성하기 위해 연속적인 5 개의 입력 벡터로 구성된 화학 프로세스에 대한 데이터 세트가 있습니다. 내가 내 디자인에 대한 LSTMs을 찾아하기로 결정보다 출력이, 5 개 이전의 입력 벡터에 따라 생각하는 동안 출력 OS마다 5LSTM/RNN many to one

dataset

샘플 동안 각각의 입력 분마다 샘플링된다. LSTM 아키텍처가 어떻게되어야하는지에 대한 많은 연구 끝에 출력 시퀀스의 일부를 0으로 마스킹하고 마지막 출력 만 남겨 두어야한다고 결론을 내렸다. 마지막 아키텍처 내 데이터 세트에 따라 다음과 같습니다 :

lstm architecture

내 질문은 : 무엇 내 3D 입력 텐서 매개 변수를해야 하는가? 예 : [5, 5,?]? 또한 내 "일괄 처리 크기"는 무엇입니까? 그것은 나의 표본의 양이어야 하는가?

답변

7

시퀀스 모델링이 많아 질 것이므로 출력에 0을 채울 필요가 없습니다 (필요하지 않음). 가장 쉬운 방법은 마지막 시간에 분류를 수행하는 것입니다. 즉 RNN/LSTM이 5 번째 입력을 확인한 후에 분류를 수행하는 것입니다. 3D 입력 텐서의 크기는 [batch_size, sequence_length, input_dimensionality]입니다. 여기서 sequence_length는 5 번 (1-5, 7-11, 13-17 행 등)이고 input_dimensionality도 5입니다 (즉, A 열 - E). Batch_size은 예제의 수에 따라 다르며 (데이터의 안정성도), 10,000 개가 넘는 예제가있는 경우 30-50의 배치 크기는 괜찮습니다 (적절한 배치 크기 선택에 대한 설명은 this을 참조하십시오).

+1

마지막 시간 단계에 softmax 분류기를 포함해야한다는 의미입니까? 거기에 대한 샘플 코드가 있습니까? –

+1

예, 마지막 시간 단계에서 softmax 분류기가 있어야합니다. [This] (https://github.com/uyaseen/theano-recurrence/blob/master/model/rnn.py)는 좋은 출발점이 될 수 있습니다. ([Theano] (http://deeplearning.net/소프트웨어/theano /), 당신은'T.nnet.softmax (..)'외부 스캔을 이동해야합니다. 또한 배치없이 간단한 rnn이지만 추가하는 것은 쉽지 않습니다. – uyaseen

+1

[Keras] (https://keras.io/), [This] (https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py) 예제는 성취하고자하는 것을 정확히 수행합니다. 올바른 형식으로 데이터를 제공하십시오.) – uyaseen