본문 바로가기
Drawing (AI)/Google

Google ML crash course (7)

by 생각하는 이상훈 2023. 3. 7.
728x90

일반화

머신러닝에서 분류를 통해 답을 찾아내기 위해 일반화는 매우 중요하다.

그러나 아래와 같이 선형적으로 분류를 하는 경우 제대로 분류가 되지 않아서 틀린 결과가 나오는 경우가 존재한다.

따라서 아래와 같이 복잡한 구분선을 그어서 기존 데이터를 100% 정확하게 분류할 수 있다.

그러나 이러한 경우 아래와 같이 새로운 데이터가 들어왔을때 적절하게 분류해 낼 수가 없다.

이러한 경우를 "과적합(overfit)"이라고 표현한다. 모델이 너무 복잡하여 새로운 데이터를 분류하는데 어려움이 있는것이다.


과적합

현대에 와서, 우리는 "Okham의 면도날"이라는 통계 학습 이론과 계산 학습 이론의 분야로 공식화했다. 이 이론은 모델의 복잡성과 훈련 데이터에 대한 모델의 성능과 같은 요소를 기반으로 새로운 데이터로 일반화하는 모델의 능력을 통계적으로 설명하는 일반화 경계를 설명한다. 단순히 말하면 모델은 최대한 간단하게 만들어야한다는 것이다. 필요하지 않은 가정은 모두 제거하는 사고 절약의 원리라고도 불린다.

 

이론적 분석은 이상적인 가정 하에서 형식적인 보증을 제공하지만, 실제로 적용하기는 어려울 수 있다. 기계 학습 충돌 과정은 대신 새로운 데이터로 일반화하는 모델의 능력을 판단하기 위한 경험적 평가에 초점을 맞춘다.
머신 러닝 모델은 이전에 보지 못했던 새로운 데이터에 대해 좋은 예측을 하는 것을 목표로 한다. 그러나 데이터 셋에서 모델을 구축하는 경우 hidden data를 처리하기 위해 새로운 방식이 필요하다.

  

데이터 셋을 두개의 하위 데이터셋으로 나누는 것이 바로 그 방법이다.

두개의 하위셋은 training set, test set으로 불린다. 이름 그대로 training set은 모델을 train하기 위한 하위 데이터셋이고 test set은 모형을 test할 하위 데이터셋이다.

이때 test set의 데이터가 충분히 크고 같은 test set으로 반복하여 채워서 거짓 결과를 내지 않는다면 test set의 performance가 좋다면 새로운 데이터에 대한 performance도 좋다고 판단할 수 있다.

 

"ML fine print"란 머신러닝 모델, 알고리즘 및 시스템의 미세인쇄 또는 문서화에 자주 포함되는 구체적인 내용, 조건 및 한계를 말한다.

이러한 세부 정보에는 모델의 가정과 한계, 모델이 훈련되는 데이터 유형, 기대 성능 메트릭, 모델 사용과 관련된 편견 또는 잠재적 윤리적 문제와 같은 정보가 포함될 수 있다.
기계 학습 시스템의 개발자, 데이터 과학자 및 최종 사용자는 시스템의 기능과 한계를 완전히 이해하기 위해 미세 인쇄 및 문서를 주의 깊게 검토하는 것이 중요하다. 이는 모델이 적절하고 효과적으로 사용되도록 보장하는 데 도움이 될 수 있으며 부정확하거나 편향된 예측과 같은 잠재적인 문제를 방지할 수 있다.

 


과적합을 방지하기 위해서는 일반화(generalization) 능력을 강화해야 한다.

 

첫째, 더 많은 데이터를 수집하는 것이다. 학습 데이터가 많을수록 모델이 일반적인 패턴을 파악하고, 새로운 데이터에 대한 예측 능력이 향상된다.

둘째, 모델의 복잡도를 조절하는 것이다. 모델이 너무 복잡하면 학습 데이터에 너무 맞춰져서 일반화 능력이 떨어진다. 따라서 모델의 구조를 간단하게 만들어 일반화 능력을 강화할 수 있다.

셋째, 규제(regularization)를 적용하는 것이다. 규제란 모델의 복잡도를 조절하기 위한 방법으로, L1, L2 규제 등이 있다. 이를 적용하면 모델이 학습 데이터에 과도하게 맞춰지는 것을 방지할 수 있다.

넷째, 교차 검증(cross-validation)을 사용하는 것이다. 교차 검증은 데이터를 여러 개의 fold로 나눠서 학습과 검증을 번갈아가면서 수행하는 방법이다. 이를 통해 모델의 일반화 능력을 정확히 평가할 수 있다.

 

과적합은 머신러닝 모델에서 흔히 발생하는 문제이므로, 학습 데이터에 너무 집착하지 않고 일반화 능력을 강화하는 방법을 사용해야 한다.


Training and Test Sets

갖고 있는 데이터 셋이 하나뿐이라면 다음과 같이  training set과 test set으로 나누어서 model을 훈련시켜야한다.

 

아래의 데이터를 보면 model이 단순하여 training data들을 완벽하게 분류해내지는 못했지만 test data에서의 분류가 적절하여 좋은 performance를 보이고 있다. 쉽게 말해 model이 너무 복잡하지 않아서 training data를 overfitting하지 않았다는 것이다.

마지막으로 기억해둬야하는 내용은 model을 테스트 해보았는데 너무 높은 정확도가 나온다면 자축하기 전에 혹시 test data로 training을 진행한 것은 아닌지 확인을 해야한다. 이는 종종 나오는 실수로 조심해야하는 부분이다.


728x90

'Drawing (AI) > Google' 카테고리의 다른 글

Google ML crash course (9)  (0) 2024.02.19
Google ML crash course (8)  (0) 2023.03.19
Google ML crash course (6)  (0) 2023.02.27
Google ML crash course (5)  (0) 2023.02.25
Google ML crash course (4)  (0) 2022.12.26