기록하는삶
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (1) 본문
1) Generalization(일반화, 일반화 성능)
Train data에 대한 성능과 Test data(혹은 validation data)에 대한 성능의 차이를 말한다. 둘 간의 차이가 작을수록 학습 데이터 뿐만아니리 Test data에 대해서도 모델이 잘 작동하므로, 'Generalization이 잘 되었다'고 말한다.
다만 Generalization이 잘 되었다고 해서 꼭 좋은 성능을 보장하는 것은 아니다. 본래 모델의 성능이 나빠 Training error가 큰 상황이라면, Test error와의 차이가 작더라도 그 절대적인 수치는 클 수 있기 때문이다.
2) Underfitting & Overfitting
학습 데이터에 대해서는 성능이 나오지만, Test data에 대해서는 성능이 떨어질 때 모델이 overfitting(과적합)되었다고 말하고, 모델의 복잡도가 떨어지거나 학습이 잘 되지 못하여 학습 데이터에 대해서도 그 성능이 떨어지는 경우 underfitting(과소적합)되었다고 표현한다.
이론적으로 모델이 underfitting과 overfitting을 모두 피할 수 있도록 모델을 잘 설계해야 하는 것이 맞다. 다만 데이터의 양이 충분히 많고 train data와 test data의 성질과 분포가 유사하다는 가정하에서는 overfitting이 일어나기는 쉽지 않다. 과도한 학습으로 train data에서'만' 모델이 잘 동작하는 경우를 조심해야 한다는 정도만 기억하자.
3) Cross-Validation(교차 검증)
데이터 셋을 여러 조각으로 나누어 학습과 validation에 번갈아 사용하는 기법으로, k-fold validation이 대표적이다. 학습 데이터를 k개의 조각으로 나누어, i=1,2,3,...k번째 조각을 validation data로 사용하고 나머지 (k-1)개의 조각을 train data로 사용한 후 그 성능을 확인하는 작업을 k번 반복하는 것을 말한다.
하이퍼 파라미터 튜닝시에 주로 활용되며, 최적의 파라미터를 찾은 뒤에는 전체 데이터를 활용해 모델을 학습하는 것이 일반적이다. 아무래도 많은 iteration을 필요로 하기 때문에, 데이터 셋이 작을 때 그 효과가 더 크다. 분류 모델을 만들고자 하는 경우, label 간 동일한 비율을 갖는 k-folds들을 추출하는 stratified k-fold를 사용하기도 한다. (label 간 데이터의 양이 불균형할 때 효과적)
4) Bias & Variance
- Variance: 비슷한 입력에 대해 출력이 얼마나 일관적인가. 일관적일수록 variance가 낮다고 말한다.
- Bias: 출력이 얼마나 target과 유사한가. target에 가까울수록 bias가 낮다고 말한다.
이론적으로 bias와 variance는 하나를 줄이면 다른 하나가 커지는, trade-off 관계에 있다. (bias and variace trade-off)
5) Bootstrapping
통계학적 정의는 'any test or metric that uses random sampling with replacement'로, 무작위 복원 추출을 사용하는 모든 계측이나 시험을 말한다. 기계학습에서 사용하는 대표적인 기법으로는 Bagging과 Boosting이 있다.
① 배깅(Bagging _ Bootstrap Aggregating)
훈련용 데이터로부터 같은 크기의 표본을 여러 번 단순 반복추출을 통해 만들고, 이를 통해 학습시킨 여러 개의 모델의 결과 값을 voting을 통해 결합하여 최종 결과를 산출하는 방법이다. 랜덤 포레스트(Random Forest)가 이를 활용한 대표적인 예이며, 복원 추출로 인해 특정 데이터가 중복 추출되거나 추출되지 않을 수 있다는 단점이 있다.
예를 들어 개와 고양이를 구분하는 모델을 100개 만든 뒤에 각 모델로 예측을 진행하고, 100개 중 더 많은 결과가 나온 것을 최종적인 예측치로 삼는 것이 Bagging이다. (voting 방법에도 단순 투표와 가중치 투표가 있다.)
※ Voting?
> 여러 모델(동일한 알고리즘이지만 hyper parameter가 다른 경우, 다른 종류의 알고리즘 등)을 동시에 사용하여 결과 값을 도출하는 앙상블 기법의 결과 산출 방식
> 동일 비중을 부여하는 단순 투표와 모델 성능을 고려해 가중치를 부여하는 가중치 투표가 있다.
ex)
개와 고양이를 분류하기 위해 4개의 결정트리(Decision Tree)를 사용하는 랜덤포레스트(Random forest) 모델이 있다고 가정하자. 4개의 결정트리를 각각 A,B,C,D라 하고, 각각의 accuracy를 다음과 같이 가정하자. (이해를 위한 극단적인 예시다.)
A = 95%, B = 90%, C = 80%, D = 60%
[단순 투표]
하나의 개 사진을 보고 A, C, D는 개, B는 고양이라고 분류했다면, 이 앙상블 모델은 3:1 이므로 다수결을 통해 개라고 결론 짓는다. 이와 같이 각각의 모델의 성능과 관계 없이 동일한 비중으로 다수결 투표를 하는 방식이 단순 투표다.
[가중치 투표]
하나의 개 사진을 보고 A,B는 개라고 분류하고 C,D는 고양이라고 분류했다고 가정하자. A, B는 자체 훈련과 테스트에서 높은 성능을 보였으므로 그것이 결과 가중치에 반영된다. (A,B의 결과가 더 큰 비중을 가진다.) 따라서 앙상블 모델은 개라고 결론 짓는다. 이와 같이 사전 학습을 통해 계산한 성능이 우수한 내부 구성 모델에 가중치를 두어 투표하는 방식이 가중치 투표다.
② 부스팅(Boosting)
붓스트랩 표본을 통해 n번의 반복학습 및 모델 설계를 하되, (분류에 사용시) 오분류된 학습 데이터를 다음 모델 빌드 시 학습 튜플로 선택할 가능성을 높여 오류를 보완하는 방법이다. n번의 시행에서 이전 시행의 학습 및 테스트가 다음 시행에 영향을 미치며, 과도한 횟수로 반복 학습을 진행할 경우 과적합 문제가 발생할 수 있어, early stopping 기법을 사용하기도 한다. xgboost의 XGBClassifier, lightgbm의 LGBMClassifier가 대표적 예이다.
둘 다 결정트리 기반의 알고리즘으로, 부스팅 기법을 사용해 좋은 성능을 보인다.
'AI > DL Basic' 카테고리의 다른 글
[딥러닝/DL Basic] 딥러닝의 Key components 4가지 (0) | 2022.02.11 |
---|---|
[딥러닝/DL Basic] CNN (2) _ CNN의 변화와 발전(2012 ~ 2017) (0) | 2022.02.09 |
[딥러닝/DL Basic] CNN (1) _ 기초 개념 및 용어 정리 (0) | 2022.02.08 |
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (3) _ Regularization (0) | 2022.02.08 |
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (2) _ Gradient_decent methods (0) | 2022.02.07 |