lstm 시계열 예제

batch_size는 한 번에 모델에 표시된 기차 데이터 집합의 샘플 수입니다. batch_size 샘플이 네트워크를 통해 실행되고 오류가 계산된 후 가중치에 대한 업데이트가 수행됩니다. 너무 많고 업데이트가 너무 크고 너무 적으며 업데이트가 너무 시적입니다. 사용하는 하드웨어는 batch_size의 요소이기도 하며 샘플 배치를 메모리에 맞출 수 있도록(예: GPU가 이를 얻을 수 있도록) 하려고 합니다. 그런 다음 num_unrollings가 있고, 이것은 LSTM 모델을 최적화하는 데 사용되는 시간(BPTT)을 통한 역전파와 관련된 하이퍼매개변수입니다. 이는 단일 최적화 단계에 대해 고려하는 연속 시간 단계 수를 나타냅니다. 단일 시간 단계를 보고 모델을 최적화하는 대신 num_unrollings 시간 단계를 보고 네트워크를 최적화하는 것으로 생각할 수 있습니다. 클수록 좋습니다. 다중 회귀는 LSTM을 통해 직선으로 진행되며, 입력은 [샘플, 시간 단계, 피처]로 정의됩니다.

여러 입력이 기능입니다. 인터넷에 대한 대부분의 정보는 단일 시간계 및 다음 단계 예측을 위한 것입니다. 이전 15개월동안 100개의 서로 다른 타임시리즈에 대해 각각 54개월의 길이를 사용하여 6개월 미리 예측을 생성하고 싶습니다. 3) 또한, 나는 (모든 바구니에 대한 평균을 복용) 고객과 제품 키 모두에 대한 포함 층을 만들고있다. 이러한 경우 매 타임 계열이 얼마나 많은 단계를 뒤로 지정합니까? 4) 이 경우 배치 크기를 어떻게 지정해야 합니까? 아래 split_sequence() 함수는 이 동작을 구현하고 지정된 단변량 시퀀스를 여러 샘플로 분할하며 각 샘플에는 지정된 시간 단계가 있고 출력은 단일 시간 단계입니다. ConvLSTM을 필터 수와 2차원 커널 크기(행, 열)로 단일 레이어로 정의할 수 있습니다. 1차원 계열로 작업할 때 행 수는 항상 커널에서 1로 고정됩니다. 각 계열의 입력 및 출력 요소가 나란히 인쇄되어 예상대로 데이터가 준비되었지만 확인할 수 있습니다. 다중 단계 출력의 경우 출력 계층의 노드 수가 출력 시간 단계 의 수와 일치해야 합니다.

알 수 있듯이, 아주 당연하죠, 우리가 시간에 예측하려고 멀리, 이전 예측 된 오류에 구축 각 시간 단계에서 더 많은 오류. 그러나, 기능은 여전히 약화 사네 파처럼 행동! 앞서 말했듯이, 이것은 우리가 우리와 함께 손에 모든 미래의 시퀀스를 하지 않을 것이기 때문에 모든 시간 시리즈 문제의 더 현실적인 모델링입니다.