티스토리 뷰

 

 

"해당 포스팅은 Coursera 에서 수강한 Andew Ng 의 deep learning specialization 코스를 요약한 것입니다." 


 Machine Learning 모델을 트레이닝할 때 생길 수 있는 문제로는 high bias (편향) 혹은 high variace (분산) 가 있다. 그리고 모델이 이 중 어떤 문제를 갖고 있냐에 따라서 해결방법 또한 다르다. 그런데 도대체가 편향과 분산이란 단어가 와닿지도 않을 뿐더러, 거기에 맞는 해결법도 맨날 헷갈려서 기록해둬야지 하다가 드디어 함..

 

참고로 강의는 2번째 코스인 Improving Deep Neural Networks 의 Week1 강의를 정리했다. 

 

1. Bias 와 Variance 정의 

한 마디로 정의하면 

  • Bias (편향) - Underfitting - Training error 

  • Variance (분산) - Overfitting  - Generalization problem 

용어를 좀 더 쉽게 이해하기 위한 검색 : Variance 는 예측값이 평균에 수렴하는 게 아니라 그 주위로 넓게 퍼져 있음. classifier 가 여기에 맞춰지려면 마찬가지로 복잡한 모양을 띄게 됨. Bias 는 애초에 가정이 잘못된 경우

 

Bias 와 Variance 를 더 얘기하기에 앞서서, train / dev (= hold out validation set)/ test set 을 나눌 때, dev 와 test set 은 꼭 같은 distribution 을 가져야 한다고 배웠다. 

 

Training set 는 classifier 가 목표한 과녁의 중심에 잘 맞추게 하는 것이고, Dev set 과 Test Set 은 과녁 그 자체라고 할 수 있다. 그러므로 애초에 과녁 (dev set) 설정이 제대로 되어있지 않으면 엉뚱한 과녁을 맞추기 위해서 노력을 하는 거라고 볼 수 있다. 이 점을 명심하고 계속해서 Bias 와 Variance 를 살펴보자. 

 

강아지, 고양이를 분류하는 binary classification 아래 표와 같은 Error rate 을 갖는다고 하자. 참고로 이 classification 의 경우 human 의 error error 은 0% 라고 가정. 그렇기 때문에 training error 가 이것보다 너무 높으면 모델 성능이 좋지 않은거임. 

들어가기 전 요약!

 

Underfitting 문제를 확인하려면 Train set Error 를 보고, 

Overfitting 문제를 확인하려면 Dev set Error - Train set Error 를 보자. 

 

Train set Error  1 % 15 % 15 % 0.5 %
Dev set Error  11 % 16 % 30 % 1 %
Problem Type High Variance

Training set 에 대한 오류는 굉장히 적은데, dev error - train error 는 매우 큼. Train set 에 overfit 된 경우 

High Bias 

일단 Train set error 자체가 높음. 그리고 dev set error - train set error 는 1%임. 그냥 training 자체가 잘 안 된거라고 볼 수 있음. 
High Bias & High Variance

Train set error 크고, Dev set error - train set error 갭 차이가 큼. underfitting 에 overfitting 까지 있는 문제
Low bias & Low Variance

Train set error 작고, 
dev error - train error 갭 작음. 



 

+ 참고 ) 실제로는 어떤 모델이 전반적으로 bias 냐 variance 중 어떤 문제를 갖고 있는지를 얘기하긴 어렵다고 함. 데이터 구간에 따라 어떤 구간은 high bias 의 문제를 어떤 구간은 high variance 의 문제를 갖기때문.

 

아래의 그래프를 봤을 때, 보라색 형관팬 쳐진 부분이 classification 모델이라고 보면, 쭉 대각선만 있는 부분은 high bias 의 문제를, 복잡하게 꼬아져 있는 부분은 high variance 의 문제를 가지고 있다. 그렇기 때문에 그래프를 살피고 문제 구간에 따라서 해결해야 한다고 한다. 

데이터 구간에 따라 달라지는 모델의 bias 와 variance 

2. Bias 와 Variance 의 해결 방법

Bias 와 Varianec 의 정의를 알았으니, 이제 각각의 문제를 어떻게 해결할 수 있는지 살펴보자. 간단하게 표로 정리하자면 

 

Problem  Solution 
High Bias  - Bigger Network 

- Train longer 

- (NN architecture search) 
High Variance - More data 

- Regularization (정규화) 

- (NN architecture search)

여기서 질문. 

 

Q) Bigger data 는 Bias 든, Variance 든 다 좋은 거 아닌가요?

A) 그렇지 않다.

Bias의 경우, 애초에 그 data 에 맞는 neural network 가 아니기 때문에 더 큰 data 를 갖는다고 해서 Bias 문제가 해결되긴 어려움. 그렇기 때문에 문제에 맞는 해결책을 찾는것이 중요하다.  

 

Q) Bias 를 해결하기 위해서 더 큰 Neural Network 를 사용할 경우, 모델이 복잡해지면서 High variance 의 위험이 있는거 아닌가요?

A) 이것도 놉.

big data 가 가능해지면서 big network 로 train 하는 것은 performance 하락과 꼭 이어지지는 않는다. 그렇기 때문에 Bias 와 Varaince 의 tradeoff 문제는 big data 가 가능해지면서 사실상 줄어드는 문제라고 할 수 있다. 

 

Variance 를 해결하기 위한 방법 중 하나인 Regularization 은 그 종류도 여러가지가 있다. 

  • 대표적으로 L1, L2 regulazation 의 경우. 예를 들어, logistic regression 식에다가 regularization term 인 lambda 를 더한다. 
  • Drop out regulazation 의 경우, Nerual network 의 몇몇 node 를 임의로 drop 해버리는 것. 
  • 또, early stopping 이나 data augmentation 도 regularization 과 비슷한 역할을 한다고 한다. 

이 정규화와 관련된 detail 이나, training 을 optimize 하는 다양한 기법도 해당 강의에서 나오는데 그건 다음에 포스팅하기로.. 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함