본문 바로가기

데이터 다루기/머신러닝 이론

(43)
하이퍼 파라미터 튜닝 (2) 논문 : Yu, T., & Zhu, H. (2020). Hyper-parameter optimization: A review of algorithms and applications. arXiv preprint arXiv:2003.05689. ​ ​ 3. Search Algorithms and Trial Schedulers on Hyper-Parameter Optimization 이전 포스팅에서 다룬 내용을 요약하면, 딥러닝 네트워크에서 train-related 혹은 structure-related 하이퍼파라미터는 모델의 성능에 큰 영향을 미칩니다. 본 section에서는 하이퍼파라미터 결정에 큰 도움을 줄 수 있는 탐색 알고리즘에 대해서 간략하게 리뷰해볼 예정입니다. 하이퍼파라미터는 정수, 실수, 범주형..
하이퍼 파라미터 튜닝 (1) 논문 : Yu, T., & Zhu, H. (2020). Hyper-parameter optimization: A review of algorithms and applications. arXiv preprint arXiv:2003.05689. ​ ​ 1. Contribution ​ - Hyper-parameters are systematically categorized into structure-related and training-related. The discussion of their importance and empirical strategies are helpful to determine which hyper-parameters are involved in HPO. ​ - HPO algorithm..
[Machine Learning] XGBoost (3) Optimization technique 본 포스팅은 STATQUEST 유튜브 채널을 Reference하여 만들었습니다. A. Approximate Greedy Algorithm Gradient boosting은 Tree의 규칙을 만들 때, Gain을 최대화 하는 방향으로 학습한다. 이 때, Greedy algorithm을 활용하는데, 이는 계산적으로 매우 복잡하다. 예를 들어서, 관측치가 1억개에, 변수가 100개라고 가정한다면, Greedy algorithm을 통해 약 1억의 100제곱 개의 규칙을 만들어 테스트해야 하는 것이다. 이러한 계산적 비용을 줄이기 위한 방법으로 XGBoost는 Approximate Greedy Algorithm을 채택하였음. Approximate Greedy Algorithm은 Tree 규칙을 Quantile로 ..
[Machine Learning] XGBoost (2) Methematical details 이번 포스팅은 이전 포스팅에서 공부했던, Similarity Score와 Output value의 식을 유도하겠다. ​ Gradient boosting에서 Output value를 찾기 위해 다음 식을 최소화하는 Gamma를 미분으로 찾았다. XGBoost는 Regularization term이 추가되어, 식이 약간 변형된다. Gradient boosting에서는 위를 Optimization 하기 위해서 에 대해서 미분을 하였다. 이 때, Classification에 대해서만, Second order Taylor Polynomial을 활용하였다. 하지만 XGBoost는 Regression 또한 Second order Taylor Polynomial를 활용한다.​ 표기의 용의성을 위해 다음과 같이 정의해보..
[Machine Learning] XGBoost (1) Algorithm Schema 본 포스팅은 STATQUEST 유튜브 채널을 Reference하여 만들었습니다. XGBoost는 Gradient Boosting 알고리즘을 기반으로 하고 있음. 일반적인 Gradient Boosting과의 차이점은 Training algorithm 개선되었고, Optimization Technique이 추가되었음. ​ A. Regression Task. Drug Dosage로 Drug Effectiveness를 예측하는 Task를 가지고, 4개의 관측치가 있다. XGBoost는 초기 예측을 Regression, Classification 모두 default로 0.5의 값으로 설정함. 이제 오차를 계산하고, 하나의 Leaf에 전부 집어넣는다. a) XGBoost Tree XGBoost는 Regression..
[Machine Learning] Gradient Boosting (Classification) 본 포스팅은 STATQUEST 유튜브 채널을 참고하였습니다. 위의 데이터에 대해서 3가지 input attribute로 Love troll 2를 예측하고자 한다. Classification Task 이므로 오차 함수를 Cross Entropy로 정의한다. Step 1) ▶ 모델에 대한 초기 예측 값을 정해야 하는데, 오차를 최소화하는 값으로 정하자. ▶ Classification Task에서는 Logistic Regression과 마찬가지로, log(odds)를 사용한다. ▶ 따라서, 위의 케이스에서 초기 예측 값은 다음과 같다. Step 2) A) ▶초기 오차를 구하면 y_i - p 와 같다. 위 경우에서 p = 0.67 이므로 Residual은 다음과 같다. B) ▶ Regression Tree를 적..
[Machine Learning] Gradient Boosting (Regression) 1) Framework ​ ▶ Gradient Boosting은 오차를 줄여 나가는 방식으로 Weak learner를 학습한다. ▶ 즉 다시 말해, 각 iteration 마다 오차를 예측하는 model을 만들고, 예측 값만큼 초기 예측에 계속 더해 주는 방식으로 진행한다. ​ 2) Algorithm ​ A. Regression Task. ​ ▶ 위의 데이터에 대해서 3가지 input attribute로 Weight를 예측하고자 한다. ▶ Regression Task 이므로 오차 함수 를 MSE로 정의하고자 한다. ​ ​ Step 1) ▶ 모델에 대한 초기 예측 값을 정해야 하는데, 오차를 최소화하는 값으로 정하자. ▶ 위 식을 미분해서 0이 되는 감마 값을 찾으면, y의 평균이 된다. ​ Step 2) ..
[Machine Learning] AdaBoost 이번 포스팅에서는 AdaBoost에 대해서 배워보도록 하겠습니다. 본 포스팅은 STATQUEST 유튜브 채널을 참고하여 만들었습니다. 우선 알고리즘을 전체적으로 한 번 살펴보도록 하겠습니다. AdaBoost 알고리즘을 수학적으로 풀어보았습니다. 우선 자세하게 들어가기전에 각 스텝별로 목적이 무엇인지를 미리 알아보도록 하겠습니다. Step 1을 보시면 D라는 값에 동일한 1/N 이 주어집니다. 우선 D에 대한 정의를 보시면, 관측치에 대한 Weight라고 되어있습니다. 즉, Step 1에서는 모든 관측치에 동일한 Weight를 주고 시작하겠다는 의도로 볼 수 있습니다. 그리고 이제 Step 2부터는 T번의 Iteration이 돌게됩니다. 이 때, T는 weak learner의 개수라고 유추할 수 있습니다...