딥러닝에서 데이터 normalization 범위

상념 2018. 11. 7. 09:50

 

 

딥러닝에서 데이터 전처리시 가장 궁굼한 것 중 하나가, normalization의 대상 범위를 어떻게 정할 것인가? 인데 신경망을 연구하는 사람들은 이미 다 알고 있는 것인지도 모르겠다.

normalization 방법을 단순히 try and error 방법으로 실험으로만 결정할 문제는 아닌것이다. 

아래 이미지는 UCI EEG에서의 normalization을 이거 저거 해보면서 만든 슬라이드 중 일부인데. 이 이외에도 여러 가지 있고 각각 결정해야할 변수들이 많다. 또 실제 각 normalization 시 참고 백데이터 범위를 global 데이터를 대상으로 할 것인가 현재 인스턴스만을 대상으로 할 것인가까지 고려해야 하므로 더 다양한 조합의 방법이 있으므로 이거 저거 다 실험해 보는것은 만만치 않다.

그런데 요즘 몇가지 실험을 해보면서 확인한 바로는 뉴럴넷에 사용되는 액티베이션 펑션에 따라 결정이 되어야한다는 것이다. 액티베이션 펑션이 출력하는 범위의 데이터로 전처리 해야만 전파 중 정보 손실이 없는 것이다. 예를 들어 sigmoid 같은 경우는 0.0~1.0, tanh 같은 경우는 -1.0~1.0 정도이다. 따라서 이러한 펑션을 사용하는 신경망에서 z-score normalization은 다시 한번 생각해 봐야한다.

 

 

 

 

posted by Dr.Deeeep