분류기 구조적 성장 방식 네 가지 분석과 학습 불가 원인 진단
Four Ways to Grow a Classifier and Why One of Them Cannot Learn
모델이 훈련되는 과정에서 구조적 요소를 추가하는 네 가지 방법을 분석하고, 각 방식의 성능 기여도를 정밀하게 진단했습니다.
모델의 복잡도를 높이는 모든 시도가 성능 향상을 보장하지 않으며, 구조적 요소가 실제로 학습에 기여하는지 기울기(gradient) 검증을 통해 반드시 확인해야 한다는 실질적인 가이드라인을 제시해요.
- 특히 소프트 결정 트리를 깊게 만드는 방식은 기울기(gradient)가 항상 0이 되어, 아무리 많은 구조를 추가해도 학습에 기여하지 못하는 근본적인 결함이 있습니다.
- 모델 구조를 확장할 때, 추가된 요소가 실제로 학습에 기여하는지 기울기(gradient) 검증을 통해 반드시 확인해야 하는 실질적인 가이드라인을 제시합니다.
- 모델의 복잡도를 높이는 모든 시도가 성능 향상을 보장하지 않으므로, 각 구조적 성장 방식의 장단점을 신중하게 비교해야 합니다.
본 논문은 분류기에 구조를 추가하는 네 가지 성장 결정(예: 트리의 레벨 추가, 은닉층 유닛 추가, 리프 분할)이 실제로 모델에 어떤 기여를 하는지 분석했습니다. 특히 소프트 결정 트리를 깊게 만드는 가장 자연스러운 방식의 경우, 새로운 게이트가 부모의 클래스 분포를 상속받아 함수 자체가 변하지 않기 때문에 기울기가 항상 0이 되어 학습에 기여할 수 없다는 결함을 증명했습니다.
이러한 구조적 성장 결정 중 하나인 소프트 결정 트리를 깊게 만드는 방식은 추가된 레벨이 아무리 많더라도 학습을 할 수 없습니다. 이 방법은 모든 새로운 게이트의 기울기를 동일하게 0으로 만들며, 그 결과 Iris 데이터셋에서 19.6점, Wine 데이터셋에서 19.1점, Digits 데이터셋에서 55.6점의 정확도 손실이 발생했습니다.
나머지 세 가지 결정 방식은 각각 다른 효과를 가져옵니다. 잔여 오차에 새로운 은닉 유닛을 추가하는 것은 더 작은 네트워크를 만들지만 정확도를 크게 떨어뜨릴 수 있습니다. 리프를 분할하여 가장 큰 예상 오차를 얻는 방법은 희소성(sparsity)을 높이지만, 이 역시 성능 저하를 초래합니다. 또한 통계적 유의성을 요구하며 노드를 분할하는 방식은 아무런 효과가 없으며 트리가 커지기만 합니다.
소프트 결정 트리를 깊게 만들면 왜 학습에 기여하지 못하나요?
새로운 게이트가 부모의 클래스 분포를 상속받아 함수 자체가 변하지 않기 때문에 기울기가 항상 0이 되어 학습에 기여할 수 없다는 결함이 있습니다.
다른 구조적 성장 방식들은 어떤 문제가 있나요?
잔여 오차에 은닉 유닛을 추가하는 것은 정확도를 크게 떨어뜨릴 수 있고, 리프 분할은 성능 저하를 초래하며, 통계적 노드 분할은 아무런 효과가 없어요.
모델 구조 확장 시 무엇을 반드시 확인해야 하나요?
추가된 요소가 실제로 학습에 기여하는지 기울기(gradient) 검증을 통해 반드시 확인해야 합니다.