티스토리 뷰

Study/AI

[MLY] Bias와 Variance에 대한 해결 방법

생각많은 소심남 2018. 9. 11. 23:56

 bias와 variance 문제를 해결하기 위한 가장 간단한 공식을 살펴보자:

- 만약 high avoidable bias가 있다면, 지금 학습하는 모델의 크기를 키워라(예를 들어 학습시키는 신경망에 계층을 추가하거나 뉴런의 갯수를 추가하는 방식으로 사이즈를 키우는 것)
- 만약 high variance라면, 학습 데이터를 더 모아라

 만약 아무 제한 없이 신경망의 크기를 키울 수 있고, 학습 데이터도 증가시킬 수 있다면, 많은 학습 문제들이 잘 해결될 것이다.

 하지만 실전에서는, 모델의 크기를 키우게 되면 결과적으로 연산 문제에 직면하게 되는데, 그 이유는 매우 큰 모델을 학습시키는 작업이 매우 느리기 때문이다. 또한 학습 데이터를 모으는 것도 많이 어려울 것이다.(앞의 예를 가져올때, 인터넷이 연결되어 있을지라도 한정된 숫자의 고양이 사진만 모을 수 있다)

 예를 들어 다른 신경망 구조와 같이 다른 학습 구조를 가진다는 것은 문제에 대해서 각기 다른 bias와 variance를 가지게 된다는 것이다. 수많은 딥러닝 관련 연구기관에서는 혁신적인 신경망 구조를 개발하고 있다. 그래서 만약 신경망을 쓸거라면, 이런 학술적인 결과물은 뭔가 아이디어를 발전시킬 수 있는 원동력이 될 수 있다. github만 가도 많은 오픈소스 구현물들이 있다. 하지만 새로운 신경망 구조로 시도했을 때에 대한 결과는 단순히 모델의 크기를 키우거나 데이터를 추가하는 방식보다는 예측이 조금 더 어려울 수 있다.

 모델의 크기를 키우는 것은 일반적으로 bias를 감소시키자만, variance를 증가시켜서 overfitting의 위험에 직면할 수 있다. 하지만 이 overfitting 문제는 정규화(regularization)를 하지 않았을 때만 종종 발생한다. 잘 설계된 정규화 방법을 사용한다면, overfitting 될 위험 없이 모델의 크기를 안전하게 키울 수 있다.

 만약 딥러닝을 L2 정규화방식이나 dropout 과 같은 정규화 방식에다 개발 데이터 상에서 잘 동작하는 정규화 계수들을 덧붙여서 적용해본다고 가정해보자. 만약 모델의 크기를 키우면, 성능은 그대로이거나 향상될 것이다. 심각하게 나빠질 일은 없다. 단지 큰 모델을 잘 사용하지 않는 이유는 연산하는데 쓰이는 리소스가 커져서이다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 23. Addressing Bias and Variance을 번역한 내용입니다.>

댓글