[LGaimers] 지도학습(분류/회귀) - (6) Ensemble

govldbstj·2023년 1월 22일
0

23LGAimers

목록 보기
15/21
post-thumbnail

1. Ensemble learning

: 이미 사용하고 있거나 개발한 알고리즘의 간단한 확장
-> supervised learning task에서 성능을 올릴 수 있는 방법
협력이라는 프랑스어 어원을 가짐.

머신러닝에서 알고리즘의 종류에 상관 없이 서로 다르거나, 다르지만 같은 매커니즘으로 동작하는 다양한 머신러닝 모델을 묶어 함께 사용하는 방식

: 다양한 모델의 각 장점을 살려 사용할 수 있다.

2. Ensemble methods

(1) 학습 데이터셋을 랜덤하게 나누어서 학습을 진행한다.
(2) 다수결로 예측결과를 제공한다.

-> bagging, boosting 이 두가지가 키포인트!

-> 앙상블 기술의 장점은 예측 성능을 안정적으로 향상시킬 수 있다는 점이다.
다양한 여러 개의 모델의 결정으로 최종 예측 결과를 제공하기 때문에 noise 등으로부터도 안정적이다.
쉽게 구현이 가능하다. 각 모델등은 독립적으로 동작하므로 모델 파라미터의 튜닝이 많이 필요 없다.
그러나 모델 자체로는 compact하게 표현하기는 힘들다.

3. Bagging

: 학습 과정에서 training sample을 랜덤하게 나누어 선택해 학습하는 것
Original training set S -> subsample -> classifier 1, 2, 3, … 의 학습에 이용됨.
같은 모델을 학습시킬지라도 서로 다른 특성의 학습이 가능하게 된다.
모델을 병렬적으로 학습시킬 수 있다.
Bootstrapping + aggregating
Lower variance의 안정적인 성능을 제공하는 데 유용한 방법이다.
sample을 random하게 선택하는 과정에서 data augmentation의 효과를 가질 수 있다.
간단한 모델을 집합으로 사용할 수 있어서 안정적인 성능을 제공할 수 있다.
(Under/overfitting 문제를 쉽게 해결할 수 있다)

4.Bootstrapping

: 다수의 sample data set을 생성해서 학습하는 방식
다른 모델을 사용한다면 어차피 같은 데이터셋을 다르게 골라 사용하면 noise에 조금 더 robust해진다는 장점이 있다.
이렇게 학습한 여러 모델들의 결정을 합하여 최종 결정을 내리게 된다.

5. Boosting

: sequential하게 동작. 여러 classifier을 학습시킬 때, 이전에 학습한 classifier의 영향을 받아 학습하는 것. (가중치)
이전에 동작한 classifier에 의해 그 다음 classifier 학습에 사용할 수 있다는 장점이 있음.

6. Cascading (for week classifier)

: week classifier : bias가 높은 classifier (모델이 단순)
-> cascading하면 sequential한 학습과정을 통해 조금 더 성능을 높일 수 있다.

7. 많이 사용되는 Ensemble algortithm

(1) Adaboost

: 대표적인 boosting 알고리즘
Base classifier에 의해 오분류된 sample에 대해 보다 높은 가중치를 두어 다음 학습에 사용할 수 있게 한다.
간단하게 구현 가능, 특정 알고리즘에 구애받지 않는다.
가중치를 두어 에러 해결에 사용한다.

(2) Random Forest

: decision tree의 집합. bagging과 boosting을 활용한 대표적인 알고리즘
(1) 서로 다르게 학습된 decision tree의 결정으로 예측을 수행 -> 자체적으로 bagging을 통해 학습을 한다.
(2) 매 노드에서 결정이 이루어지기 때문에 boosting을 통해 학습을 한다고 생각할 수 있다.

8. 모델 성능 평가

: supervised learning에서 model의 성능을 어떻게 평가할까?
Accuracy : 모델의 정확도 측정
Confusion matrix : 대각선에 있는 것이 정확하게 분류를 한 것이다.
대각성분을 합한 값 / 전체 성분을 합한 값

9. False positive, false negative error

false positive error : 실제로는 -, 예측은 +
False negative error : 실제로는 +, 예측은 -
(TP, TN -> 정확한 경우, FP, FN -> 예측 실패한 경우)

10. ROC curve

: 서로 다른 classifier의 성능을 측정하는 데 사용하는 curve.
왼쪽 상단으로 갈수록 더 좋은 성능을 가지고 있다. (동일 sensitivity에서 더 나은 FPR을 가지므로)

(1) ROC curve의 TPR과 FPR

: TPR -> 옳은 것을 옳다고 예측한 것의 rate (제대로 예측한 것의 rate)
FPR - 옳지 않은데 옳다고 예측한 것의 rate (잘못 예측한 것의 rate)

(2) ROC curve위의 점

: 모든 가능한 threshold 별 FPR과 TPR을 알아보겠다는 의미를 가짐

(3) ROC curve의 휜 정도

: 가장 많이 휜 것 (왼쪽 상단일수록) 이 가장 성능이 좋다.
=> TN와 TP의 종모양의 거리가 클수록 (두 클래스를 더 잘 구별할 수록) 성능이 좋다.

11. Supervised Learning

지도학습은 최근 AI task들에서 baseline이 되지만, large scale의 labeled dataset이 필요하다는 단점이 있다.
만약 충분한 데이터가 없는 경우에는 어떻게 해야할까?
-> data augmentation으로 데이터 크기를 늘린다.
-> weak supervision과 같은 해결책을 사용한다.
: 상대적으로 cost가 낮은 label을 활용해 cost가 높은 label을 추정하는 것
입력은 일부분에 해당하는 label이라도 출력은 조금 더 많은 다양한 정보를 출력하게 하도록 하는 방법
-> domain adaptation, transfer learning

+ Bias & variance

참고로, bias problem는 데이터의 분포에 비해 모델이 너무 간단한 경우 underfitting이 발생하는 문제, variance problem는 모델의 복잡도가 너무 커서 overfitting하는 문제를 이른다.
Bias -> 모델을 통해 얻은 예측값과 실제 정답과의 차이의 평균, ‘편향’ 이라고 한다.
Variance -> 다양한 데이터 셋에 대해 예측값이 얼마나 변화할 수 있는지에 대한 양, ‘분산’이라고 한다.

profile
ajou software 20

0개의 댓글