[Tensorflow] 8. Learning rate & Data Preprocessing

이론을 익혔기 때문에 이번에는 내가 배운 이론들이 어떻게 실제로 적용돌 수 있는지 알아보는 시간이었다.


  • Learning rate 
Gradient와 learning rate의 연관관계가 최적의 모델을 찾아내는데 쓰이는 parameter이기 때문에 매우 중요한 요소이다. TensorFlow에서도 optimizer 변수에 learning rate(보통 0.1 혹은 0.01) 을 지정하여 Optimizer를 반복하여 apply 해주면서 학습이 진행된다
Learning Rate를 잘못 설정하는 경우 학습을 계속 진행하여도 성능이 오히려 나빠질 수 있다. 너무 크거나 너무 작아도 모델을 찾는데 시간이 너무 오래 걸릴 수 있다. Adam 이라는 개발자는 3e-4가 최적의 Learning rate라고 하기도 했다. 


Learning rate decay
어느정도 학습을 진행하다보면 더이상 Cost가 줄어들지 않는 순간이 있다. 이때 learning rate에 변화를 줘서 좀 더 최적화 시키는 기법을 말한다. 기법에는 다양한 방법이 있는데
예를 들어 Step decay는 step별로 특정의 epoch 만큼 조정하는 기법이다. 그외에 Exponential decay, 1/t decay 등 여러가지가 있다.


  • Data Preprocessing
데이터가 얼마나 퍼져있을지 모르기때문에 데이터의 분포에 따라 표준화를 시키는 전처리과정이 필요하다.  가장 일반적으로 Standardization (표준화 기법) Normalization (정규화 기법)을 사용한다.
- Standardization : data들이 평균에서 각각 얼마나 떨어져 있는지에 따라 표현
- Normalization : data들을 0과 1 사이에 골고루 분포하도록 표현

또 하나 중요한 것은 예측에 불필요한 Noisy Data들을 걸러내는 것이다. 예를 들어 자연어 처리 에서 'Will you order a pizza..??' 라는 문장이 있을 때 의미가 있는 부분은 'You / Order / pizza ' 일 것이다. 조사와 관사는 데이터 처리에 있어서는 불필요한 부분이라 할 수 있겠다. 이것은 Image processing에서도 적용되는데 얼굴 인식 기술에서 귀걸이, 배경, 헤어 스타일 등은 변화할 수 있는 요소들이므로 학습시키기에 적절하지 않다. 따라서 이를 제거해주는 전처리 과정이 필요할 것이다. 



No comments:

Powered by Blogger.