예제를 실행하여 나온 결과가 영상과 살짝 다른 부분 질문
273
작성자 없음
안녕하세요. 덕분에 시계열LSTM 예측을 할 수 있어 감사합니다.
다름아니라
딥러닝 스칼라 시계열 예측 (Python 실습) 강의의 예제 코드를 그대로 실행하였는데요. 영상에서 나온 예측결과(14:45)와 예제에서의 예측 결과가 다릅니다.
코드는 달라진점이 없고 다른점은 텐서플로우 버전(2.17.0)인것 같은데 버전에 따라 예측결과도 달라지는지 아니면 다른 문제로 결과가 다른지 여쭙고 싶습니다.
영상의 예측결과

예제코드를 수정없이 그대로 실행시킨 예측결과

回答 1
1
안녕하세요.
좋은 질문 주셔서 감사합니다 😄
먼저 TensorFlow의 버전 이슈는 아닌것 같습니다.
모통 딥러닝 모델의 파라미터 (가중치와 바이어스)는 랜덤으로 초기화 됩니다.
그래서, 매번 새롭게 train 하고 test 해보면 결과 (오류)가 조금씩 다른 것을 알 수 있습니다.
대다수의 경우에는, 경미한 차이이기 때문에 무시하고는 합니다.
그런데 이 경우에는 조금 도드라지게 보이는 것 같기도 하네요 ㅠㅠ
그래서 다음과 같이 랜덤 시드 (seed)를 설정해서 모든 랜덤적 요소를 제거해 보세요.
노트북 상단에 새롭게 셀을 삽입하고 (4번 째 셀), 다음과 같이 설정합니다.
아래와 같이 모델 파라미터를 초기화 해주는 kernel_initializer (Dense, LSTM layer), recurrent_initializer (LSTM layer)인자에도 랜덤 시드들 설정해 줍니다. 또한 bias는 0 값으로 초기화 되도록 합니다.

주의1: 모든 시드값이 꼭 일치할 필요는 없습니다. 여기에서는 단지 관리가 쉬워서 같은 값으로 설정했습니다 (my_seed=1234). 시드값들이 서로 다르더라도 매번 동일한 조건이 적용된다는 것이 중요합니다.
주의2: bias는 시드를 설정하지 않았고 그냥 0 값으로 초기화 해 보았습니다.
여러번 세션을 새롭게 시작해서 실행해보았는데 MAPE가 소수점 이하 4자리 까지 매번 같은 값이 나오는 것을 확인해 보았습니다.
시드 (my_seed)를 바꾸어 보시면 더욱 만족스러운 MAPE가 나오는 경우가 있습니다. 그 값으로 고정해 두시고 사용하면 되겠습니다.
정리해 보면, 딥러닝 모델의 파라미터는 랜덤적으로 초기화 되지만 시드를 설정해서 "매번 똑같이 반복되는" pseudo-random (유사 난수) 조건을 만들어 준 것입니다. "유사 난수"이기 때문에 MAPE는 재현되지만 실행해 보아야 실제 그 값을 알 수 있습니다 (!) 체계적으로 낮추는 방법은 없고 만족스러운 조건이 만들어 지도록 시드값 (my_seed)를 바꾸어 try 해보는 수 밖에는 없습니다.
도움이 되었기를 바래봅니다. 😀
루비네 코딩~
링크드 리스트 중간 삽입삭제 시간복잡도 질문
0
1
1
Kaggle 노트북(predict.ipynb) 관련
0
5
0
처음 에이전트 설정을 잘못 했을 경우 수정 하는 방법
0
5
0
5,6,7,8 내용이 없어요
0
8
0
커리큘럼 문서 제공받을 수 있을까요?
0
9
0
systemd 셋팅
0
8
1
강의 연장 문의
0
6
1
에이전트 에러
0
12
1
커스텀 에이전트 생성하기
0
8
1
수강 신청 연장 문의드립니다.
0
18
1
26년2회 실기기출은 언제쯤...
0
21
2
재귀함수 종료조건
0
10
1
강의 잘 들었습니다만 부탁이 하나 있어서요..
0
12
2
롱폼 영상 강의도 있으신가요? 도움이 많이 되었습니다.
1
10
1
outputStyle 설정하는데 어디서 문제일까요?
0
10
2
〈클로드 코드와 멀티 에이전트로 내 일상을 모두 자동화하기〉 강의 전자책 관련 문의
0
7
1
무서워요 다음에는... 조심.
1
15
1
git bash .env
1
12
1
실습프로그램이 뭔가요?
0
8
1
예제 001 실행 안됩니다.
0
13
3
test.txt파일 삭제시 rm명령어이니 클로드의 질문이 있어야 한다고 하셨는데
0
7
1
ipython 설치가 안되는거 같습니다.
0
9
1
검은화면
0
14
2
CodeCraft 실습 자료 및 클로드 코드 논문 필수 내용 재구성 학습 자료
0
14
2

