- 2021년 7월 1일 오후 5:24
- 조회수: 5733
INFORMATION
- 2021년 7월 2일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
발표자 후기
첫 세미나로 boosting에 대한 기본적인 개념과 Adaboost, Gradient Boosting Machine을 비롯한 여러 boosting 알고리즘을 소개하였다. Boosting은 머신러닝 방법론임에도 불구하고 여러 분야에서 딥러닝에 필적하는 성능을 내는 경우가 많기 때문에 자주 사용된다. 실제로 이전에 수행한 연구에서도 딥러닝 방법론보다 boosting 계열의 알고리즘이 높은 성능을 달성한 경험이 있어서 더욱 관심이 간 주제였다. 또한, 최근 tabular data에서는 딥러닝에 비해 boosting이 더욱 높은 성능을 낼 수 있다는 주장을 접하며 머신러닝 방법론을 학습하는 것의 중요성을 재고하였다. 세미나를 준비하면서 boosting 알고리즘들의 각 특성과 작동 원리를 다시 한 번 정리할 수 있어서 개인적으로도 유익한 시간이었다. 첫 세미나 준비를 다방면으로 도와주신 DMQA 연구원분들께 감사의 인사를 전한다.
청취자 후기
컴퓨팅 자원의 발전에 따라 이미지나 텍스트 등의 고차원 데이터를 활용한 딥러닝 알고리즘에 대한 연구가 쏟아져 나오고 있다. 이러한 비정형 고차원 데이터에서 고전적인 머신 러닝 알고리즘들은 신경망 기반 알고리즘들의 성능을 따라잡기 힘들다.
하지만, 얼마전 Towarddatascience 의 한 블로그에서는 신경망 기반 딥러닝 모델이 Tabular data에서는 GBM 계열의 성능을 못따라잡는다는 글이 올라왔다. 논란의 여지가 있지만, 필자도 경험상 정형데이터에서 ANN 이 Random Forest 나 Boosting 모델보다 성능이 잘 나온 적이 없었다. 딥러닝은 만능이라고 생각할 수도 있겠지만, feature scale 이 천차만별인 정형 데이터에서는 스케일의 영향을 덜 받는 Decision Tree 기반 모델들이 좀 더 robust 한 것은 사실이다.
최근 딥러닝과 인공지능이 각광받는 것은 굉장히 기쁜 일이나, SVM, Bagging, Boosting 등의 방법론에 대한 관심은 딥러닝에 미치지 못하는 듯 하다. 해당 세미나를 통해 부스팅에 대해 많은 사람들이 알아갈 수 있었으면 좋겠다. 해당 세미나에서 소개된 LGBM, Catboost, 그리고 또 유명한 XGBoost 같은 알고리즘들은 여러 경진대회나 공모전, Kaggle 의 정형 데이터에서 아직도 우수한 성능으로 두각을 보이고 있다. 하지만 원리를 잘 알고 쓰는 사람은 드물었고 나 또한 그랬었다. 해당 세미나를 통해 다양한 Boosting method 들의 특징을 알 수 있었다.
과거 Perceptron은 XOR 문제를 해결할 수 없다는 한계에 의해 빛을 보지 못하였다. 하지만 기존 단층 perceptron에 layer를 더 쌓고 비선형 활성화 함수를 이용한 Multi Layer Perceptron(MLP)가 등장하면서 그 성능을 인정받았다. 여기에 컴퓨팅 파워의 발전(GPU 및 메모리)와 빅데이터가 더해져 우리가 알고 있는 Deep Learning이 발전했다. Deep Learning은 Perceptron층을 깊게 쌓은 모델을 통해 학습을 진행하는 것으로 비정형 데이터(이미지, 사운드, 자연어 등)에서 기존 머신러닝 방법론에 비해 매우 우수한 성능을 보이고 있다.
하지만 여전히 정형데이터에서 기존 머신러닝 방법 특히 Random Forest나 Boosting 계열은 MLP보다 더 우수한 성능을 보이는 경우가 많이 있다. 이번 세미나에서는 그 중에서 Boosting에 대한 개념과 여러 Boosting 계열 모델을 주제로 은지가 발표하였다.
Boosting은 매우 단순한 learning 모델을 여러 개 사용하는 앙상블 모델이다. 여기서 단순한 learning 모델이란 평균을 기반으로 예측한 것보다 약간 더 성능이 우수한 weak learner이다. 이러한 weak learner를 순차적으로 구축하면서 이전 단계의 weak learner를 보완하는 방법으로 다음 weak learner가 결정되어 최종적으로는 strong learner를 구축할 수 있게 된다.
결국 '어떻게 이전 weak learner의 결과를 반영할 것이냐'로 여러 boosting 계열 모델이 등장했다. 먼저 adaboost는 매 단계 별로 관측치마다 sample weight(관측치의 영향력)를 부여하여 다음 단계에서 오분류된 관측치에 더 집중하게 하는 방식이다. 반면에 Gradient Boosting Machine(GBM)은 각 단계 별로 residual을 계산하고 이를 사용하여 다음 단계의 weak learner를 학습하는 방식이다.
deep learning을 공부하면서 기존 머신러닝 방법론들에 대해 공부할 시간이 많이 없었는데 이번 세미나를 통해서 Boosting에 대한 기본 개념과 여러 모델들을 알 수 있는 좋은 기회가 되었다. 세미나를 준비해준 은지에게 감사의 말을 전하며 세미나 후기를 마친다.
이번 세미나는 "Introduction to boosting"을 주제로 진행되었다.
Boosting은 여러 개의 단순한 모델(무작위 선택보다 성능이 약간 우수한 weak learner)을 이용하는 앙상블 방식으로 성능이 좋은 모델(Strong learner)을 만드는 것을 목표로 한다.
주요 Boosting 기법들을 짚어주었는데, Adaboost(adaptive boosting)은 weak learner를 여러 단계로 나누어 순차적으로 학습하는데, 매 단계에서 모든 관측치의 Weight를 업데이트하는 방식으로 학습한다. GBM(Gradient Boosting Machine)은 weak learner를 최상위 node인 Single Leaf로부터 자식 Leaf를 생성하며 Tree를 만들되, Depth를 유지하면서 점진적으로 중첩하며 실제값과 예측값의 차이인 Residual을 활용하여 Weight를 업데이트하는 방식으로 학습한다. Light GBM(Light Gradient Boosting Machine)은 GBM 방법론을 효율적으로 개선한 것으로 Tree의 Depth를 신경 쓰지 않고 학습하는 방법인데, Gradient가 가장 큰 node를 순차적으로 분할한다. 더불어 drop out도 적용된다. CatBoost(Categorical Boosting)는 GBM과 다르게 마지막 레벨의 Leaf를 먼저 생성하며 Target Statistic 별 범주화를 통해 학습을 진행하여 범주형 변수가 많은 데이터를 잘 분류한다.
딥러닝 이론이 많은 관심을 받고 있으나, 상황에 따라 머신러닝 알고리즘을 효과적으로 이용할 수 있는 Boosting 기법들을 잘 알아둬야 할 필요성을 느꼈다. 끝으로 첫 세미나를 Boosting의 개념과 주요 방법론에 대해 잘 정리해준 은지에게 감사의 말을 전한다!
이번 세미나는 'Introduction to boosting'이라는 주제로 진행되었다. Boosting은 머신러닝의 앙상블 기법 중 하나로, 단순한 learning 모델을 여러 개 결합하여 예측 성능 향상을 이루어내는 알고리즘이다. Bagging과 달리, 순차적으로 모델을 구축하는 것이 특징이다. 본 세미나에서는 boosting 계열 알고리즘들의 학습방식과 구조에 대해 소개해주었다.
먼저 Adaboost는이전 단계 weak learner의 단점을 보완하는 새로운 weak learner를 순차적으로 구축하여, 매 단계에서 모든 관측치의 weight를 업데이트하는 방식으로 학습한다. 이때, 분류 혹은 예측을 잘 하지 못하는 관측치에 대해 weight를 증가시켜 업데이트 하는 것이 특징이다. 반면 Gradient boosting machine은 single leaf로 시작하여, 이후 각 단계에서 이전 tree의 error를 반영한 새로운 tree를 구축하는 방법론으로 이전 단계에서 발생한 residual을 예측하는 방식으로 학습한다. 이와 함께, LightGBM은 GBM 기반의 알고리즘으로 GBM과 동일하게 순차적으로 tree를 생성하고 결합하는 방식으로 학습한다. 또한 leaf-wise tree 분할 방식을 통해 예측 오류 손실을 최소화하는 것이 특징이다. 마지막으로 CatBoost는 범주형 변수 처리 방법의 개선을 통해 학습시간을 단축한 방법론으로, gradient descent 방식으로 학습하며 범주형 변수가 많은 dataset에서 높은 성능을 보인다.
김성범 교수님의 boosting 소개 영상을 통해 Adaboost, Gradient boosting machine을 이전에 접했었는데, 이와 함께 Light gradient boosting machine, Catboost까지 연결된 흐름으로 boosting 전반을 정리한 기분이다. 최근 들어 딥러닝에만 초점을 맞추어 공부하다보니 머신러닝 방법론에 대한 공부에 소홀했었는데, 다시금 깊이 있는 머신러닝 공부의 필요성을 일깨워준 세미나였다. 신입생 중 첫 타자로 세미나를 준비하느라 많은 부담이 있었을텐데, 훌륭하게 스타트를 끊어준 은지에게 감사의 말을 전하고 싶다.
이번 세미나는 은지가 “Introduction to boosting”이라는 주제로 진행하였다. 현재는 컴퓨팅 파워와 딥러닝 알고리즘의 발달로 인해 딥러닝과 관련된 논문이 쏟아져 나오고 있다. 딥러닝 알고리즘과 컴퓨팅 파워의 발전으로 기존 머신러닝 알고리즘은 과거에 비해 많이 각광받지 못하고 있다. 하지만 딥러닝 알고리즘은 여전히 데이터 의존도가 높으며 현재도 여전히 컴퓨팅 파워라는 한계가 존재한다.
이번 세미나는 전통적인 머신러닝 방법 중 하나인 Boosting에 대해 설명해 주었으며 boosting 방법중에서 대표적인 Adaboost, GBM, LGBM, CatBoost를 소개해 주었다. 먼저 Boosting이란 기본적인 learning 모델 여러 개를 사용하여 성능을 올리는 방식을 말한다. 또한 각 단계의 weak learner는 이전 단계 weak learner의 단점을 보완하면서 학습을 진행하게 된다.
Adaboost의 weak learner는 하나의 node와 두 개의 leaf로 구성된 stump가 특징이며 GBM은 single leaf로 시작하여, 이후 각 단계에서 이전 tree의 error를 반영한 새로운 tree를 구축한다. LGBM은 GBM과 동일하게 순차적으로 tree를 생성하고 결합하는 방식이며 randomly drop을 통해 gradient가 작은 관측치 중에서 일부만 사용하여 GBM보다 학습 속도를 향상시켰다. 마지막으로 CatBoost는 범주형 변수가 많은 dataset에서 높은 성능을 보여주는 방법론이며 범주형 변수를 같은 범주에 속하는 관측지들의 target 값의 통계값으로 대체하는 방식으로 진행한다.
이번 세미나를 들으면서 다시한번 머신러닝 알고리즘에 대해 돌아볼 수 있어서 좋은 기회였고 boosting에 대해 자세한 설명과 발표자료를 준비한 은지에게 감사하다는 말을 전하고 싶다.
이번 세미나는 은지가 "Introduction to boosting" 주제로 세미나를 해 주었다.
Boosting은 단순한 Learning 모델을 여러개 사용해서 성능이 좋을 모델을 구축하는 방법이다.
Adaboost, Gradient boosting machines, Light gradient boosting machines, Catboost 알고리즘을 예시와 함께 설명해 주어서 이해가 편했다.
Adaboost는 Weak Learner를 순차적으로 구축하는데, 이전 단계에서 관측치를 weight를 업데이트 함으로써 이전 Weak Learner의 단점을 보완할 수 있도록 하는 방법이다. GBM은 Single leaf로 시작하여 이후 트리를 반복적으로 구축하는 방식이다. Stump가 아닌 좌우 대칭형 Tree를 Weak Learner로 사용함에 있어서 Adaboost와 차이점이 있다. Light GBM은 GBM과 동일하게 Tree를 반복적으로 구축하는데, Gradient가 가장 큰 node를 순차적으로 분할하는 방법을 사용하는데 차이점이 있다.
부끄럽게도 Light GBM이나 XGBoost 등 알고리즘을 자주 사용하면서도 이해가 부족한 느낌이 있었는데 이번 세미나를 통해서 잘 이해할 수 있었다.
세미나는 잘 준비해 준 은지에게 감사의 말을 전한다.
이번 세미나는 Introduction to boosting을 주제로 진행되었다. boosting이란 성능이 우수하지 않은 weak learner들을 결합하여 좋은 성능의 모델을 구축하는 앙상블 방식으로 이루어지며, 순차적으로 생성되는 weak learner들은 각 단계에서 이전 단계의 단점을 보완한다는 특징이 있다. 이번 세미나에서는 Adaboost, Gradient boosting machines, Light gradient boosting machines, Catboost에 대해 소개되었다. Sample weight를 업데이트하거나 이전 단계의 residual을 사용해서 현 단계의 tree를 학습하는 등 알고리즘마다 다른 방식으로 모델이 학습된다. boosting 모델이 괜찮은 성능을 보이는 경우가 많아 종종 사용해보았는데 앙상블 방식이라는 점만 이해하고 각 알고리즘 별 차이에 대해서는 자세하게 모르고 사용해온 것 같다. 이번 세미나를 통해 각 방법론이 어떤 방식으로 이루어진 알고리즘인지 제대로 확인할 수 있었다. 각 방법 별로 예시와 함께 설명되어 자료를 보며 설명을 듣기에 편했고, 특히 최근에 참여했던 경진대회에서 처음 사용해본 Light gradient boosting machines가 기존 Gradient boosting machines와 어떤 차이점을 가지는지 궁금했는데 예시를 통해 쉽게 설명해주어 이해하기에 큰 도움이 되었다. 청자가 쉽게 이해할 수 있도록 간단한 예시를 잘 활용한 세미나였던 것 같다.
이번 세미나는 “Introduction to boosting”의 주제로 진행되었다. 부스팅이란 성능이 약한 여러 weak learner 모델들을 결합하여 좋은 성능을 보이는 최종 모델을 구축하는 방식으로, 이전 단계의 weak learner의 단점을 보완하도록 새로운 weak learner가 생성된다. 이번 세미나에서는 특히 4가지의 부스팅 방법론에 대하여 알아보았다. Adaboost (adaptive boosting)란 하나의 변수로 기본적인 tree 모델을 생성하는 stump를 weak learner로 활용하며 각 stump가 최종 예측에 미치는 영향력은 서로 다르게 설정하는 방식을 사용한다. 또한, 매 단계에서 sample weight를 기준으로 새로운 데이터셋을 생성하여 오분류된 관측치에 더욱 집중할 수 있다는 특징이 있다. GBM (gradient boosting machine)은 이전 tree 모델의 에러를 예측하는 다음 단계의 tree 모델을 구축하여 residual이 유의미하게 감소하지 않을 때까지 tree 모델을 구축하는 과정을 반복적으로 진행한다. Light GBM (light gradient boosting machine)이란 leaf-wise tree 분할 방식과 random dropping을 사용하여 GBM의 학습 시간과 메모리 사용량을 단축하여 더욱 효율적으로 연산이 가능하도록 제안된 알고리즘이다. 마지막으로 CatBoost (categorical boosting)은 범주형 변수가 많은 데이터셋에서 높은 성능을 보이는 것으로 알려져있으며, target statistics와 ordered boosting 방식을 채택하여 모델을 구축한다. 기본적인 부스팅의 개념부터 여러 알고리즘들에 대하여 폭넓게 알아볼 수 있어 좋았고, 간단한 예시를 통하여 각 알고리즘이 동작하는 방식을 이해할 수 있어 부스팅에 대한 개념을 확인하고 공부하는데에 많은 도움이 되었다.
이번 세미나는 부스팅 알고리즘의 핵심과 알고리즘별 특징을 파악해볼 수 있는 시간이였다. 부스팅의 핵심은 랜덤한 예측 모델보단 조금 더 똑똑한 weak learner를 순차적으로 강력하게 만드는 것이다. 이에 대한 설명을 정갈하게 처음부터 짚고 넘어가주어 좋았다. 부스팅 계열의 핵심을 어떻게 구현하는지에 따라 부스팅 계열의 여러 알고리즘들이 만들어지게 된다. 오늘은 Adaboost, GBM, Light GBM,Catboost에 대해 설명해주었다.
Adaboost는 Stump라는 weak learner를 사용하며, 데이터별 학습참여 비율을 weak learner의 에러를 참고해 조정해가는 알고리즘이다. 이와 같은 방법을 통해 점진적으로 weak learner들의 에러를 전반적으로 줄여 최종적으로는 weak learner들의 조합을 통해 최종 예측을 수행하고 이는 강력한 성능을 보유하게 된다. 데이터별 학습참여 비율을 조정해가는 작업을 성실히 설명해주셔서 이해하는데 도움이 되었다.
GBM은 의사결정나무를 weak learner로 사용하며, 이전 시점의 weak learner 에러를 다음 시점의 weak learner가 학습하는 구조로 설계되어있다. 따라서, 점진적으로 에러를 줄여갈 수 있는 목표를 이룰 수 있다. 이 때, 과적합을 방지하는데 여러 가지 테크닉이 사용되는데, 본 세미나에서는 learning rate 조정 테크닉을 설명해주었다. 다음 차례의 weak learner가 어떠한 residual을 학습하고 있는지 자세히 설명해준 것이 좋았다.
Light GBM은 GBM의 학습속도를 개선시킨 모델이며, 학습속도를 줄이기 위해 Residual error(gradient)가 큰 노드를 순차적으로 분할하는 아이디어와 Residual error가 그닥 크지 않았던 일부 데이터 샘플은 버리는 아이디어를 사용하였다. 간략하게 핵심 부분만 설명해주어 좋았다.
Catboost는 범주의 종류가 매우 많은 변수가 포함된 데이터셋에 적합한 부스팅 알고리즘이다. '목표 통계량'이라는 도구를 활용해 범주형 변수를 효과적으로 인코딩하는 아이디어를 제안하였다. 이 때, '목표 통계량'라는 도구를 활용하는데 있어 target leakage를 방지하기 위해 ordered boosting 기법을 도입하였지만, 이에 대한 설명은 간략하여 조금 아쉬웠다.
동기들 사이에 첫 세미나라 많이 긴장되었겠지만, 멋진 세미나였다 ~! 정성스레 준비된 부분을 피피티 이곳 저곳에서 많이 느낄 수 있었다. 감사합니다!
이번 세미나는 Boosting 방법론에 대해 알아보는 시간이었다. Boosting은 여러 개의 모델을 기반으로 하는 앙상블 방식 중의 하나로, 여러 개의 weak learner를 순서를 고려하여 결합하는 방식이다. 즉, 각 단계의 weak learner는 이전 단계의 weak learner의 단점을 보완하면서 단계적으로 모델이 구축된다. 이러한 Boosting 방식으로 여러 알고리즘이 있는데 그 중 Adaboost, Gradient Boosting Machine(GBM), Light GBM, CatBoost가 소개되었다. Adaboost의 경우 weak learner가 구축되는 매 단계마다 이전 단계에서 제대로 분류되지 못한 관측치에 weight를 더 부여하면서 데이터셋을 업데이트 하는 방식으로 학습이 된다. 또한 weak learner마다 최종 분류 및 예측 결과에 기여하는 영향력을 다르게 계산하여, 분류가 잘 될 수록 영향력이 더 커지게 된다. GBM은 이전 단계에서 발생한 residual을 예측하는 방식으로 순차적으로 학습하는 방법이다. 사이즈가 고정된 tree를 사용하며, residual이 더 이상 유의미하게 감소하지 않을 때까지 반복적으로 시행한다. Light GBM은 기존 GBM을 기반으로 하며, GBM과는 다르게 대칭적인 tree 구조를 유지하지 않고 Gradient가 큰 node 위주로 분할하는 방식을 사용하여 효율적인 학습이 가능하다. CatBoost의 경우는 범주형 변수가 많은 데이터셋에서 높은 성능을 보이는 방법론으로, 범주형 변수 처리 방법을 개선하여 학습시간을 단축시켰다. Boosting 방법론에 대한 내용을 이해하기 쉬운 예제와 함께 다시 한 번 개념정리를 할 수 있는 시간이었다. Boosting은 전통적인 머신러닝 기법이지만 여전히 좋은 성능을 내는 분야가 있기 때문에, 꼭 딥러닝 모델이 아니더라도 상황에 맞는 다양한 방법론을 이해하고 있어야겠다는 생각이 들었다. 이번 세미나를 통해 Boosting에 대한 기본 개념을 다질 수 있게 되어 많은 도움이 되었다.
이번 세미나는 "Introduction to boosting"이라는 주제로 진행됐다. Boosting은 weak learner를 여러 개 결합하여 하나의 strong learner를 만들어내는 방식으로 앙상블 기법의 일종이다. AdaBoost는 weak learner로 decision stump를 활용하며 객체에 가중치를 부여하고 이전 단계에서 객체의 예측 정확도를 기반으로 다음 단계에서 객체의 가중치를 조정한다. 이를 통해 이전 단계까지 분류하기 어려웠던 객체에 집중하여 해당 객체에 대한 예측 성능을 높여 분류하기 어려운 객체까지 잘 분류할 수 있게 된다. Gradient Boosting Machine은 손실함수에 대한 gradient를 기반으로 각 단계에서는 해당 gradient를 예측하는 형태로 학습을 진행하게 된다. 각 단계에서 gradient를 예측함에 따라 최종적인 모델에서는 예측 오차가 적은 모델을 구성할 수 있게 된다. Light GBM은 GBM모델의 학습 시간 및 메모리 사용량을 단축한 모델이다. LGBM에서는 gradient가 큰 노드를 분기점으로 삼아 분할을 진행하며 분기점을 선택할 때 gradient가 작은 객체를 제거하여 효율성을 높인다. 마지막으로 소개된 CatBoost는 범주형 변수가 다수 존재할 때 범주별로 그룹화를 진행하여 효율적인 모델링을 진행한다. 이번 세미나를 통해 평소 자주 사용하던 boosting 알고리즘들에 대해 한번 더 정리할 수 있는 시간이 되어서 의미 있는 세미나였다. 세미나를 위해 고생해준 은지에게 감사의 뜻을 전한다.
은지 세미나
이번 세미나 주제는 boosting에 대해 진행되었다. boosting이란 단순한 모델을 여러개 합하여 성능이 좋은 모델로 구축하는 것으로, 일반적으로 각 단계의 weak learner가 이전 단계의 weak learner의 단점을 보완하면서 성능을 올린다.
먼저 Adaboost는 하나의 노드와 두개의 leaf로 구성된 stump라는 단위의 weak learner로 구성되고 각각의 stump는 하나의 변수만을 가지고 있게 된다. 즉, 변수마다 하나씩 weak leaner가 있는 셈이다. 이 stump들이 순차적으로 연결되어 adaboost를 구성하는데, 이때 stump의 순서가 전체 성능을 크게 좌우하게 되므로 이를 gini index라는 stump의 불순도를 의미하는 값을 통해 먼저 사용할 weak learner를 선택한 뒤, 이를 사용해 최종적인 분류를 수행했을 때, 결과를 통해 해당 stump의 영향력을(amount of say) 계산하고 그 다음 sample weight를 update하고 다음 stump를 선정하는 것을 반복하여 최종 Adaboost를 구축한다. 즉, 가장 잘 분류하는 weak learner부터 나열하되, 각각 모델의 가중치를 통해 오분류된 sample을 보정해 나갈 수 있도록 하는 것이다.
이와 달리 Gradient Boosting Machine(GBM)은 single leaf에서 시작해서 Tree를 구축할 때 이전 tree의 error를 반영한 새로운 tree를 만들어가는 방식이다. 예를 들어 Regression 문제라고 할 때 single leaf을 사용했을 때의 residual을 계산하고 이를 사용하여 해당 단계의 tree를 학습한다. 그런데 이때 과적합이 되기 쉽기 때문에, learning rate를 넣어줘서 residual 계산 및 tree구축을 반복해서 성능을 높여가게 된다.
Light GBM은 위와 달리 tree를 생성한 뒤 결합해가는 방식으로 학습한다. Leaf-wise tree 분할 방식이 핵심인데, Gradient가 가장 큰 노드부터 순차저으로 분할하는 방식으로, 예측 오류 손실을 최소화 할 수 있다. light GBM은 gradient가 작은관측치 중에서 randomly drop을 통해 학습속도를 높이고 메모리 사용량을 단축시키는 효과를 얻는다고 한다.
CatBoost는 Gradient Decsent 방식으로 범주형 변수가 많을때 때 성능이 좋은데, Tree를 분할하면서 모델을 구축하는데, 범주형 변수기 때문에 범주별로 그룹화를 하고, 이 그룹 내 관측기들 끼리 target값의 statistic으로 대체하여 학습시간을 줄인다고 한다.
Boosting은 최근 연구들이 최고의 성능만을 위해 아주 무거운 모델을 사용하는 것과는 달리, 가벼운 모델로도 충분한 성능을 얻어낼 수 있다는 점에서 그 의미가 있는 것으로 보인다. 아주 정밀한 단위의 사업이 아니라 맥락과 전체적인 방향을 찾기 위한 task에서는 오히려 더 잘 사용할 수 있겠다는 생각이 든다. 전체적인 설명에 맞춰 하나하나 잘 설명해줘서 이해하기 정말 좋았다. 은지에게 감사의 인사를 전한다!
이번 세미나는 부스팅 알고리즘 전반에 대해 살펴볼 수 있는 시간이었다.
boosting 이란 weak learner를 여러개 결합하는 앙상블 방식으로 이전 단계의 weak learner의 단점을 보완하여 순차적으로 학습하는 방식이다. 여기서 weak learner는 무작위 선택보다는 약간 더 우수한 단순한 모델을 말한다. 부스팅 계열의 모델 중 가장 베이직한 모델인 adaboost는 이전 단계의 weak learner의 단점을 보완하는 새로운 weak learner를 순차적으로 구축한다. 여기서 weak learner는 하나의 node와 두 개의 leaf로 구성된 stump를 말하는데, stump가 잘 분류 및 예측하지 못하는 관측치는 이후 생성될 stump에서 크게 고려한다. 모델의 전체적인 과정은 feature에 따른 여러 stump를 구성하고, Gini index의 값이 작은 stump를 선별한다. 이후, 잘못 분류한 관측치에 해당하는 amount of say 값을 구하여 sample weight를 업데이트 한다. 갱신된 weight에 따라 이후 생성되는 stump가 오분류된 관측치에 집중하도록 하는 것이다.
GBM 의 경우는 stump가 아닌 다수의 leaf와 노드로 구성된 좌우 대칭형 tree를 기본적으로 사용한다. 모델의 전체적인 과정은 single leaf 값을 task 유형에 따라 초기 설정을 한 후, 실제값과 예측값(single leaf)의 차이만큼인 residual을 통해 학습이 진행된다. 이 때 과적합이 발생하지 않도록 learning rate를 residual 앞에 곱하여 진행하게 된다. residual이 유의미하게 감소하지 않을 때까지 반복 시행된다.
이번 세미나를 통해 부스팅 계열의 대표적인 모델들을 이해할 수 있었다. 지난 학기 과제에 많이 활용했던 모델들이나, 정확한 메커니즘을 알고 사용하지 않았던 터라 이번 세미나가 더욱 유의미했고, 도움이 되었다. 세미나를 준비해준 은지에게 감사의 마음을 전한다.