딥러닝 모델 training의 기본 법칙

 

 

 

1. 모델이 high bias인가?

 

>> training set에 대한 성능이 좋은가? 안좋은가?

 

training set에 대한 성능이 좋지 않다면, 더 깊은 network를 쓰거나 hidden layer, hidden unit을 많이 쓴다든지, 

 

epoch을 늘려 더 오래 training을 하거나

 

더 개선된 optimization 알고리즘을 사용하거나

 

더 좋은, 깊은 network를 사용하는 것은 거의 항상 도움이 되는 반면에

 

더 오래 training하는 것은 도움이 안되는 경우도 많지만, 시도해보는건 나쁠건 없다

 

----------------------------------------------------------------------------------

 

중요한건 최소한 high bias를 제거하는게 중요하다.

 

overfitting이 되더라도 training set에 대한 성능이 생각한 것 이상으로 나올때까지 방법을 시도해보는게 최소한의 조건

 

training set에 성능이 안나오는데, overfitting 안되었으니까.. generalization 잘 된거겠지? validation 해봐야지~ 이런 생각은 할 필요가 없다는거

 

---------------------------------------------------------------------------------

 

2. 모델이 high variance인가?

 

training set에 좋은 성능을 내는 모델이 validation set에서도 좋은 성능을 내는지 확인

 

만약 validation set에서 좋은 성능을 내지 못한다면, 생각해볼 수 있는 방법은..

 

1) 더 많은 데이터를 확보하는 것

 

2) overfitting을 줄이기 위해 regularization을 시도하는 것

 

3) 때때로 도움이 되는 방법은 더 적절한 neural network를 찾아보는 것

 

validation set에 성능을 내지 못한다면, 이렇게 여러 방법을 시도해서 모델을 바꾼 다음 다시 training을 시키러 처음으로 돌아간다

 

-----------------------------------------------------------------------------------------------------------------------

 

training set에도 성능이 좋고, validation set에도 원하는 만큼 성능이 나온다면, 적어도 딥러닝 모델을 완성시켰다고 볼 수 있다.

 

여기서 주목해야할 포인트는...

 

먼저 training set에 성능이 좋지 않거나, validation set에 성능이 좋지 않거나 그에 따라 대응해야하는 전략이 다르다는 것이다.

 

적어도 training set에 성능이 좋지 않은데, 데이터를 더 많이 얻고자 시도하는 것은 좋은 방법이 아니다.

 

두번째로 머신러닝 초기에는 'bias-variance trade off'에 대한 논의가 많이 있었다

 

초기에는 도구가 많지 않아 bias와 variance를 동시에 줄이는 일이 거의 불가능했다.

 

하지만 현대 딥러닝 시대에는 더 큰 네트워크를 훈련시킬 수 있으며 더 많은 데이터를 얻을 수 있기 때문에(항상 그런 것은 아니겠지만)

 

적어도 그럴수 있다면, 적절한 regularization을 이용해 variance를 높이지 않고도 bias를 줄일 수 있게 되었다.

 

그리고 데이터를 많이 얻을 수 있는 한, bias를 높이지 않고도 variance를 줄일 수 있게 된다.

 

더 큰 네트워크를 훈련시키는 것은 적절하게 regularization하는 한, 계산 시간만이 문제가 된다.

TAGS.

Comments