해결된 질문
작성
·
146
0
강좌 TensorFlow 2.0을 이용한 선형 회귀 알고리즘 구현 편에서 나오는 선형 회귀 모델을 실행하였을 때 결과값이 계속하여 미세하게 변화하는 이유가 궁금해서 질문합니다. 수학적 계산식을 항상 동일하니 계산값 역시 항상 동일해야 하는 것 아닌가요?
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
선형 회귀 모델이 실행할 때마다 결과값이 미세하게 변하는 현상은 몇 가지 이유로 발생할 수 있습니다. TensorFlow 2.0을 포함한 대부분의 딥러닝 프레임워크는 모델을 학습할 때 초기 가중치를 무작위로 설정합니다. 이 초기 가중치가 매 실행 때마다 다르기 때문에, 동일한 선형 회귀 모델이라 해도 실행할 때마다 조금씩 다른 결과를 얻을 수 있습니다.
또한, 딥러닝 알고리즘은 주로 경사 하강법(Gradient Descent) 같은 최적화 알고리즘을 사용하여 손실 함수(loss function)의 최솟값을 찾습니다. 이 과정에서도 미분과 같은 수학적 연산을 반복하게 되는데, 컴퓨터가 실수를 표현하는 방식에 따라 매우 미세한 수치의 변화가 발생할 수 있습니다. 이런 작은 차이가 쌓이면서 최종 결과에 영향을 미치게 됩니다.
그럼에도 불구하고, 이러한 변동성은 모델의 성능에 일반적으로 큰 영향을 주지 않으멜 참고 부탁드립니다. 모델의 결과값에 일관성을 주고 싶다면, 학습 전에 난수 생성기의 시드 값을 설정하여 초기 가중치가 매번 동일하게 시작되도록 하는 방법을 사용할 수 있습니다. TensorFlow에서는 tf.random.set_seed()
함수를 사용하여 시드 값을 설정할 수 있습니다.
원하는 답변을 찾지 못하셨나요?
그럼 우측 하단의 ‘문의하기’ 에서 직접 문의해주세요.
최대한 빠르게 답변드리도록 하겠습니다!
답변 감사합니다!