해결된 질문
작성
·
320
0
데이터 전처리 시 왜 0~ 255 사이의 픽셀값을 0 ~ 1 사이 값으로 변환해주는 걸까요?
자료의 범위가 맞춰져야 해서인 거 같은데 자세한 이유가 알고 싶습니다.
답변 1
0
안녕하십니까,
딥러닝 모델에서는 여러개의 서로 다른 갑 범위를 가지는 피처들을 고정된 스케일로 적용하기 위해서 정규화로 변환합니다. 보통은 정규화를 0~1 사이 값으로 합니다.
그런데 이미지의 모든 차원/피처들은 0 ~ 255 사이의 값으로 일정한 값을 가지고 있기 때문에 굳이 정규화를 적용할 필요는 없습니다.
그런데도 0~1 사이 값으로 변환하는 이유는 초기 딥러닝 연구에서 입력값이 큰 값이 들어오면 모델 성능이 떨어지는 현상들이 있었기 때문입니다. 딥러닝은 일반적으로 입력값이 작아야 상대적으로 좋은 모델 성능이 나오곤 했습니다.
그 전통(?)이 아직까지 이어지고 있습니다. 개인적으로 테스트를 해보면 이미지 모델이 0 ~ 1로 변환하지 않아도 성능이 크게 떨어지지는 않지만, 일반적으로 0 ~1 사이 값으로 pretrained 된 이미지 모델들이 있기 때문에 가급적 0 ~ 1 사이 값으로 변환하는 것입니다.
감사합니다.