1. Introduction
- 지금까지 다양한 Machine Learning 기법들에 대해서 배워보았다.
- 이번 챕터에선 Dubugging하는 방법에 대해 알아가보고자 한다.
- 머신러닝을 적용한 application에 대해 포커싱했다고 보면 된다.
2. Debugging Learning algorithms
- 어떤 문제를 풀기 위해 머신러닝 기법을 사용하였는데 기대만큼 안나오는 경우가 있을 것이다.
- 이럴 경우 어떻게 대처해야할까?
- 보통 다음과 같은 생각을 할 수 있다.(물론 더 많을것이다.)
"""
1. 더 많은 train data 수집
2. features 개수 줄이기
3. features 개수 늘리기
4. features 변경해보기
5. 더 많은 epoch 추가하기
6. 다른 Optimization 사용해보기
7. decay rate 바꿔보기
8. 다른 model 사용해보기
...
"""
- Andrew Ang이 말하길, bias vs variance 분석을 하는게 가장 효과적이라고 말한다.
- bias가 높다면 under-fitting, variance가 높다면 over-fitting이라고 할 수 있다.
- 즉, 모델의 성능을 진단하는 방법 중 하나가 variance와 bias를 보는 것이다.
- 높은 variance를 가지는 모델을 데이터 수와 error에 대한 그래프로 나타내면 다음과 같다.
- 이 경우, 데이터의 수를 늘리면 자연스레 해결된다.
- 높은 bias를 가지는 모델을 데이터 수와 error에 대한 그래프로 나타내면 다음과 같다.
- test, train 모두 성능이 잘 나오지 않는다.
- 데이터의 개수를 늘리더라도 유의미하진 않다.
- 또 다른 질문으로, 학습하는 모델이 수렴하고 있는지 어떻게 알 수 있을까?
- 이 경우, Loss function을 계속 확인해도 모르는 경우가 많다.
- 이 경우, 모델이 잘못되거나, learning rate가 잘못되거나 loss function을 잘못두거나 이런 경우를 고려해야한다.
3. error Analysis
- error Analysis는 각 파트 별로 나눠서 각각 error을 평가해 분석하는 것을 의미한다.
- 특정 빈약한 파트를 보완할 수 있다는 장점을 가진다.
4. Ablative Analysis
- 어떤 feature가 모델 성능 개선을 위해 중요한지 판단하는 데 Ablative Analysis를 사용한다.
- 중요하다 생각하는 feature를 제거하면서 성능을 평가하여
- 성능이 가장 많이 떨어지면 그 feature는 중요하다라는 것을 알 수 있다.
- 반대로, 성능변화가 없다면 그 feature는 불필요할 가능성이 있다고 생각 할 수 있다.
- 여러 요소를 한꺼번에 제거하는 것보다, 한 번에 하나씩 제거하는 방식이 더 효율적이다.
'DS Study > CS 229(Machine Learning)' 카테고리의 다른 글
[CS229] [15] Lecture 15 - EM Algorithm & Factor Analysis (0) | 2025.02.09 |
---|---|
[CS229] [14] Lecture 14 - Expectation-Maximization Algorithms (2) | 2025.02.08 |
[CS229] [12] Lecture 12 - Backprop & Improving Neural Networks (1) | 2025.02.07 |
[CS229] [11] Lecture 11 - Introduction to Neural Networks (0) | 2025.02.07 |
[CS229] [10] Lecture 10 - Decision Trees and Ensemble Methods (0) | 2025.02.07 |