왜 우리는 ML Strategy가 필요한가?
Machine Learning 시스템을 만들 때, 성능을 개선하기 위해 시도할 수 있는 것들이 매우 많습니다. 예를 들어 cat classifier를 만들었는데 정확도가 90%밖에 안 된다고 합시다. 이때 떠오르는 아이디어들은 다음과 같습니다.
- 더 많은 training data를 모은다.
- 더 다양한 training set을 모은다. e.g. 다양한 포즈의 고양이, 다양한 negative example
- Gradient descent로 더 오래 학습시킨다.
- Adam optimization algorithm 같은 다른 optimizer를 사용한다.
- 더 큰 network를 시도한다.
- 더 작은 network를 시도한다.
- Dropout을 적용한다.
- L2 regularization을 추가한다.
- Network architecture를 변경한다 (activation function, hidden unit 수 등).
문제는 잘못된 방향을 선택하면 6개월이라는 시간을 허비하고도 성능이 거의 개선되지 않을 수 있다는 겁니다. 실제로 어떤 팀들은 6개월 동안 데이터를 더 모으기만 했는데, 결국 성능이 거의 나이지지 않은 경우도 있습니다.
이 코스의 목표는 어떤 아이디어가 시도할 가치가 있고, 어떤 것은 안전하게 버려도 되는지를 빠르게 효과적으로 판단하는 방법을 가르치는 겁니다. 이것이 ML Strategy에요.
Deep Learning 시대에는 이전 세대의 machine learning algorithm과 할 수 있는 것들이 달라졌기 때문에, ML strategy 자체도 변화하고 있습니다.
Orthogonalization
직교화
Machine learning 시스템을 구축할 때는 조정할 수 있는 것들이 hyperparameter 등 너무 많습니다.
가장 효과적인 ML 실무자들의 특징은 어떤 효과를 얻기 위해 무엇을 조정해야 하는지를 명확히 안다는 것이죠.
이 과정을 Orthogonalization이라고 부릅니다.

TV 튜닝을 한다고 해볼까요?
옛날 테레비에는 화면을 조정하는 여러 개의 knob(손잡이)가 있었어요.
하나의 knob는 이미지의 세로 길이을 조절하고
하나의 knob는 이미지의 가로 길이를 조절하고
하나의 knob는 이미지의 사다리꼴 정도를 조절하고
하나의 knob는 이미지의 이미지의 회전이나 좌우 위치등을 조절할 수 있습니다.
TV 설계자들은 각 knob가 하나의 해석 가능한 기능만 수행하도록 회로를 설꼐하는 데 많은 시간을 들였습니다. 이렇게 하면 화면을 원하는 대로 맞추기가 훨씬 쉬워지죠.
반면에 하나의 knob가 저 요소들을 동시에 조절한다면 어떻게 될까요?
이 knob를 돌리면 한꺼번에 바뀌기 때문에 화면을 원하는 위치에 맞추는 것이 거의 불가능해집니다.
Orthogonal이라는 단어의 뜻도 90도 각도를 이루는 이라는 뜻입니다. 제어 장치가 orthogonal하다는 것은 각 제어 장치가 실제로 제어하고 싶은 것과 정렬되어 있어서 독립적으로 조작할 수 있다는 거죠.
Machine Learning에서의 Orthogonalization
Supervised learning 시스템이 잘 작동하려면, 보통 네 가지가 순서대로 성립해야 합니다.
Chain of Assumptions
1) Training set에서 cost function에 대해 잘 수행되는가
어떤 application에서는 human-level performance에 필적하는 수준을 의미할 수 있습니다.
이 단계가 안된다면?
bigger network를 사용하거나 더 나은 optimization algorithm(e.g. Adam)을 사용하죠.
2) Dev set에서 잘 수행되는가
Training set에서는 잘 되는데 dev set에서 안 되면?
Regularization 적용, 더 큰 training set 확보 등을 고려해볼 수 있죠.
3) Test set에서 잘 수행되는가
Dev set에서는 잘 되는데 test set에서 안 되면?
dev set에 overfitting된 것이기 때문에 더 큰 det set을 확보하면 해결할 수 있을 겁니다.
4) 실제 세계에서 잘 작동하는가
Test set에서는 잘 되는데 실제로는 잘 안 되면?
Dev / test set의 distribution을 변경하거나 cost function을 변경해볼 수 있습니다.
핵심은 각 단계에서 문제가 생겼을 때, 그 문제만을 해결하는 별도의 knob들이 존재한다는 겁니다.
일각에서는 Early Stopping에 대해서 회의적인 의견을 내놓는 분들도 있습니다.
- Early Stopping을 하면 training set에 대한 fitting이 덜 된다는 것. training set 성능에 영향.
- 동시에 dev set 성능을 개선하기 위해 자주 사용된다는 것. dev set 성능에 영향
즉, early stopping은 orthogonal하지 않은 knob입니다. 즉 TV에서 가로와 세로를 동시에 조절하는 knob와 같습니다.
나쁜 기법이라는 뜻은 아니에요. 다른 사람들도 많이 사용하지만, orthogonal한 제어 장치를 사용하면 tuning 과정이 훨씬 쉬워진다는 겁니다.
'CS & AI > Deep Learning' 카테고리의 다른 글
| Deep Neural Network Scratch / 딥러닝 모델 스크래치 구현 (0) | 2026.05.15 |
|---|---|
| [Coursera] Metric / Deep Learning Specializaton (0) | 2026.05.13 |
| [Coursera] TensorFlow / Deep Learning Specialization (0) | 2026.05.04 |
| [Coursera] Train, Dev & Test sets / Deep Learning Specialization (0) | 2026.04.14 |
| [Coursera] Hyperparameter tuning (0) | 2026.04.14 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!