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]}