NARX(Nonlinear AutoRegressive with eXternal input) 신경망을 훈련시키고 새 시계열 데이터에 대해 예측을 수행합니다. 시계열의 값 시퀀스를 예측하는 것을 다중 스텝 예측이라고도 합니다. 폐루프 신경망은 다중 스텝 예측을 수행할 수 있습니다. 폐루프 신경망은 외부 피드백이 없을 때 내부 피드백을 사용하여 계속해서 예측을 수행할 수 있습니다. NARX 예측에서 미래의 시계열 값은 그 시계열의 과거 값과 피드백 입력값 및 외부 시계열을 사용해 예측됩니다.
간단한 시계열 예측 데이터를 불러옵니다.
데이터를 훈련 데이터 XTrain과 TTrain 및 예측 데이터 XPredict로 분할합니다. 폐루프 신경망을 만든 후 XPredict를 사용하여 예측을 수행합니다.
NARX 신경망을 만듭니다. 입력 지연, 피드백 지연 및 은닉 계층의 크기를 정의합니다.
preparets를 사용하여 시계열 데이터를 준비합니다. 이 함수는 입력 시계열 및 목표 시계열을 필요한 스텝 개수만큼 자동으로 이동하여 초기 입력 및 계층 지연 상태를 채웁니다.
개루프에서 신경망을 완전히 생성한 다음, 향후 다중 스텝 사전 예측을 위한 폐루프로 변환하는 것이 좋습니다. 그러면 폐루프 신경망에서 원하는 만큼의 많은 미래 값을 예측할 수 있습니다. 폐루프 모드에서만 신경망을 시뮬레이션하면 신경망은 입력 시계열의 시간 스텝 수만큼 예측을 수행할 수 있습니다.
NARX 신경망을 훈련시킵니다. train 함수는 검증 및 테스트 단계를 포함해 개루프(직렬-병렬 아키텍처)에서 신경망을 훈련시킵니다.
훈련된 신경망을 표시합니다.
신경망 입력값 Xs, 초기 입력 상태 Xi 및 초기 계층 상태 Ai를 사용해 개루프 신경망의 신경망 출력값 Y, 최종 입력 상태 Xf 및 최종 계층 상태 Af를 계산합니다.
신경망 성능을 계산합니다.
이후의 20개의 시간 스텝에 대한 출력값을 예측하려면 먼저 폐루프 모드에서 신경망을 시뮬레이션합니다. 개루프 신경망 net의 마지막 입력 상태 Xf와 계층 상태 Af는 폐루프 신경망 netc의 초기 입력 상태 Xic와 계층 상태 Aic가 됩니다.
폐루프 신경망을 표시합니다.
폐루프 모드에서 향후 20개의 시간 스텝에 대해 예측을 실행합니다.
Yc=1×20 cell array
{[-0.0156]} {[0.1133]} {[-0.1472]} {[-0.0706]} {[0.0355]} {[-0.2829]} {[0.2047]} {[-0.3809]} {[-0.2836]} {[0.1886]} {[-0.1813]} {[0.1373]} {[0.2189]} {[0.3122]} {[0.2346]} {[-0.0156]} {[0.0724]} {[0.3395]} {[0.1940]} {[0.0757]}