>  기사  >  백엔드 개발  >  Keras의 상태 저장 LSTM은 기존 LSTM과 어떻게 다르며, 각 유형은 언제 사용해야 합니까?

Keras의 상태 저장 LSTM은 기존 LSTM과 어떻게 다르며, 각 유형은 언제 사용해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-05 04:17:02339검색

How do Stateful LSTMs in Keras differ from traditional LSTMs, and when should I use each type?

Keras 장단기 기억(LSTM) 이해

재형성 및 상태 저장

데이터 재구성:

Keras의 LSTM에 대한 예상 입력 형식인 [샘플, 시간 단계, 기능]을 준수하려면 재구성 작업이 필요합니다. 이 경우 샘플은 데이터 세트의 시퀀스 수를 나타내고, 시간 단계는 각 시퀀스의 길이를 나타내며, 기능은 각 시간 단계에 대한 입력 변수 수를 나타냅니다. 데이터를 재구성하면 LSTM이 시퀀스 정보를 적절하게 처리할 수 있는지 확인할 수 있습니다.

Stateful LSTM:

Stateful LSTM은 훈련 중에 여러 배치에서 내부 상태를 유지합니다. 이를 통해 지금까지 본 시퀀스 정보를 "기억"할 수 있습니다. 제공된 예에서 배치_크기는 1로 설정되고 훈련 실행 사이에 메모리가 재설정됩니다. 이는 LSTM이 상태 저장 기능을 완전히 활용하지 못하고 있음을 의미합니다. 상태 저장을 활용하려면 일반적으로 1보다 큰 배치 크기를 사용하고 배치 간에 상태를 재설정하지 않도록 합니다. 이를 통해 LSTM은 여러 시퀀스에 걸쳐 장기적인 종속성을 학습할 수 있습니다.

시간 단계 및 기능

시간 단계:

시간 단계 수 데이터 세트의 각 시퀀스 길이를 나타냅니다. 공유한 이미지에서는 가변 길이 시퀀스가 ​​단일 출력으로 압축되는 다대일 사례를 고려하고 있습니다. 분홍색 상자의 수는 입력 시퀀스의 시간 단계 수에 해당합니다.

특징:

특징 수는 각 입력 변수의 수를 나타냅니다. 시간 단계. 여러 금융 주식을 동시에 모델링하는 것과 같은 다변량 계열에서는 예측되는 다양한 변수를 나타내는 각 시간 단계에 대한 여러 기능을 갖게 됩니다.

상태 저장 LSTM 동작

다이어그램에서 빨간색 상자 숨겨진 상태를 나타내고 녹색 상자는 셀 상태를 나타냅니다. 시각적으로 동일하지만 LSTM에서는 서로 다른 요소입니다. LSTM의 상태 저장 동작은 이러한 상태가 후속 시간 단계 및 배치로 전달된다는 것을 의미합니다. 그러나 예제에서 훈련 실행 사이에 상태를 재설정하면 진정한 상태 유지가 방지된다는 점에 유의하는 것이 중요합니다.

다양한 LSTM 구성 달성

단일 레이어를 사용한 다대다:

단일 LSTM 레이어로 다대다 처리를 수행하려면 return_sequences=True를 사용하세요. 이렇게 하면 출력 형태에 시간 차원이 포함되어 시퀀스당 여러 출력이 가능해집니다.

단일 레이어를 사용한 다대일:

다대일 처리의 경우 return_sequences=False로 설정하세요. 이는 LSTM 레이어에 최종 시간 단계만 출력하도록 지시하여 그 이전의 시퀀스 정보를 효과적으로 삭제합니다.

반복 벡터를 사용한 일대다:

생성하려면 일대다 구성에서는 RepeatVector 레이어를 사용하여 입력을 여러 시간 단계로 복제할 수 있습니다. 이를 통해 단일 관찰을 LSTM 레이어에 제공하고 여러 출력을 얻을 수 있습니다.

상태 저장 LSTM을 사용한 일대다:

달성하기 위한 더 복잡한 접근 방식 일대다 처리에는 stateful=True 사용이 포함됩니다. 시퀀스를 수동으로 반복하고 각 시간 단계의 출력을 다음 단계의 입력으로 공급함으로써 단일 단계에서만 공급하여 일련의 출력을 생성할 수 있습니다. 이는 시퀀스 생성 작업에 자주 사용됩니다.

복잡한 구성:

LSTM은 다양한 구성으로 스택되어 복잡한 아키텍처를 생성할 수 있습니다. 예를 들어 자동 인코더는 다대일 인코더와 일대다 디코더를 결합하여 모델이 시퀀스의 인코딩과 디코딩을 모두 학습할 수 있도록 할 수 있습니다.

위 내용은 Keras의 상태 저장 LSTM은 기존 LSTM과 어떻게 다르며, 각 유형은 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.