시간축 회귀 문제에 대해 양방향 LSTMS를 사용하는 CNN-RNN 모델 아키텍처가 있습니다. 내 손실은 50 개 이상의 신기원으로 수렴하지 않습니다. 각 신기원에는 20k 샘플이 있습니다. 손실은 0.001 - 0.01 사이에서 계속 수신 거부됩니다. 다 변수 LSTM 예측 손실 및 평가
batch_size=1
epochs = 50
model.compile(loss='mean_squared_error', optimizer='adam')
trainingHistory=model.fit(trainX,trainY,epochs=epochs,batch_size=batch_size,shuffle=False)
- 내가 손실이 0.5 주위를 유지하는 잘못 짝 X 및 Y 데이터와 모델을 훈련했는데, 내 X와 Y 할 수있는 비선형 관계를 가지고 합리적인 결론이다 내 모델에 의해 이상의 신기원에서 배울 수 있습니까?
- 내 모델의 예측은 패턴을 캡처하지만 오프셋을 사용하여 수동으로 예측의 정확성을 확인하기 위해 동적 시간 왜곡 거리를 사용합니다. 더 좋은 방법이 있습니까?
모델 :
model = Sequential()
model.add(LSTM(units=128, dropout=0.05, recurrent_dropout=0.35, return_sequences=True, batch_input_shape=(batch_size,featureSteps,input_dim)))
model.add(LSTM(units=32, dropout=0.05, recurrent_dropout=0.35, return_sequences=False))
model.add(Dense(units=2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy'])
은이 교육의 역사에 대해 언급 할 수 : { 'ACC': [0.54, 0.62, 0.70, 0.77, 0.81, 0.84, 0.85, 0.86, 0.88, 0.89], '손실 ': [0.69, 0.64 , 0.56, 0.47 , 0.40 0.35 0.32, 0.29 , 0.27, 0.24 ] 'val_acc ': 0.52, 0.52 ,,691 363,210 0.51 0.50 0.51 0.50 0.52 0.53, 0.51 0.49] 'val_loss': 0.69 0.75 0.81 0.99 1.03 1.09 1.04 , 1.16, 1.13, 1.35] – jakeN
오버 피팅과 비슷합니다. 테스트 데이터가 악화되는 동안 교육 데이터가 개선되는 경우. 이는 모델이 교육 데이터를 기억하는 것을 배우고 있음을 의미합니다. (매개 변수가 너무 많거나 레이어가 너무 많거나 단위가 너무 많습니다.) 사람들은 과도한 작업을 줄이기 위해 종종 "드롭 아웃"레이어를 사용합니다. 더 작은 모델을 사용해 볼 수도 있습니다. (이것은 귀하의 유효성 확인 데이터와 귀하의 훈련 데이터가 정확하고 편견없이 선택되었다고 가정합니다.) –
질문에 내 모델을 추가했습니다. 한번 봐주세요.나는 X와 Y에 학습 가능한 관계의 존재를 증명하려고 노력하고 있으며 정확하게 일치하는 데이터로는 더 나은 정확도 (2 % 더 @ 53 %)를 얻고 있기 때문에 존재를 결론 지을 수 있습니까? 내 손실 곡선이 인기있는 L 자 모양이 아니기 때문에 확실하지 않은 이유가 있습니다. – jakeN