서포트 벡터 머신 : 다목적 머신러닝 모델
서포트 벡터 머신은 분류 작업에서 빛을 발함. 하지만 매우 큰 데이터셋으로는 확장되지 않음.
5.1 선형 SVM 분류
라지 마진 분류 : SVM 분류기를 클래스 사이에 가장 폭이 넓은 도로를 찾는 것
서포트 벡터 : 도로 경계에 위치한 샘플
5.1.1 소프트 마진 분류
모든 샘플이 도로 바깥쪽에 올바르게 분류 돼 있다면 이를 하드 마진 분류라 함.
하지만 문제점이 존재
- 데이터가 선형적으로 구분 될수 있어야 제대로 작동함.
- 이상치에 민감함.
소프트 마진 분류 : 마진 오류 사이에 적절한 균형을 잡고 도로의 폭을 가능한 넓게 유지하는 것.
규제 하이퍼 파라미터 C를 줄이면 도로가 더 커지지만 더 많은 오류가 발생한다. 또한 과대적합의 위험이 줄어든다.
5.2 비선형 SVM 종류
비선형 데이터셋을 다루는 한 가지 방법은 다항 특성과 같은 특성을 더 추가하는 것
5.2.1 다항식 커널
커널 트릭 : 실제로는 특성을 추가하지 않으면서 매우 높은 차수의 다항 특성을 많이 추가한 것과 같은 결과를 얻게 해줌.
사실 어떤 특성도 추가하지 않기 때문에 엄청난 수의 특성 조합이 생기지 않음.
매개변수 coef0는 모델이 높은 차수와 낮은 차수에 얼마나 영향을 받을지 조절함.
5.2.2 유사도 특성
비선형 특성을 다루는 또 다른 기법 : 각 샘플이 특정 랜드마크와 얼마나 닮았는지 측정하는 유사도 함수로 계산한 특성을 추가하는 것.
💡랜드마크를 어떻게 선택하는가?
데이터셋에 있는 모든 샘플 위치에 랜드마크를 설정하는 것.
이렇게 하면 차원이 매우 커져 변환된 훈련 세트가 선형적으로 구분될 가능성이 높음.
단점은 훈련 세트에 있는 n개의 특성을 가진 m개의 샘플이 m개의 특성을 가진 m개의 샘플로 변환된다는 것.
5.2.3 가우스 RBF 커널
gamma를 증가시키면 종 모양 그래프가 좁아져서각 샘플의 영향 범위가 작아진다. 결정 경계가 조금 더 불규칙해지고 각 샘플에 따라 구불구불하게 휘어짐. 반대로 작은 gamma 값은 넓은 종모양 그래프를 만들며 샘플이 넓은 범위에 걸쳐 영향을 주므로 결정 경계가 더 부드러워짐.
어떤 커널은 특정 데이터 구조에 특화되어 있다.
❗여러가지 커널 중 어떤 것을 사용해야 할까?
언제나 선형 커널을 가장 먼저 시도, 특히 훈련 세트가 아주 큰 경우에 그렇게 한다. 만약 훈련 세트가 너무 크지 않다면 가우스 RBF 커널도 시도해보면 좋다.
5.2.4 계산 복잡도
5.3 SVM 회귀
SVM을 분류가 아니라 회귀에 적용하는 방법은 목표를 조금 바꾸는 것이다.
일정한 마진 오류 안에서 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 하는 대신, SVM 회귀는 제한된 마진 오류 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 학습. 하이퍼파라미터 ε로 조절함.
ε를 줄이면 서포트 벡터의 수가 늘어나서 모델이 규젣됨. 마진 안에선 훈련 샘플이 추가되어도 모델의 예측에는 영향이 없다. 그래서 이 모델을 ε에 민감하지 않다고 말한다.
5.4 SVM 이론
선형 SVM 분류기 모델은 단순히 결정함수를 계산해서 새로운 샘플 X의 클래스를 예측함.
결괏값이 0보다 크면 예측된 클래스 Y햇은 양성 클래스가 됨. 그렇지 않으면 음성클래스가 됨.
선형 SVM 분류기 훈련은?
마진 오류 횟수를 제한하면서 도로를 가능한 한 넓게 만드는 가중치 벡터 w와 편향 b를 찾아야함.
결정 함수가 모든 양성 훈련 샘플에서는 1보다 커야 하고 음성 훈련 샘플에서는 -1 보다 작아야 함.
소프트 마진 분류기의 목적 함수를 구성하려면 각 샘플에 대한 슬랙 변수를 도입해야 함.
슬랙 변수는 i 번째 샘플이 얼마나 마진을 위반할지 정함.
쿼드라틱 프로그래밍 : 선형적인 제약 조건이 있는 볼록 함수의 이차 최적화 문제
SVM을 훈련하는 한가지 방법은 QP 솔버를 사용하는 것. 또 다른 방법은 경사 하강법을 사용해 힌지 손실 또는 제곱 힌지 손실을 최소화하는 것이다.
힌지 손실의 경우 선형적으로, 제곱 힌지 손실의 경우 이차 방정식으로 증가함. 따라서 제곱 힌지 손실은 이상치에 더 민감하게 반응한다.
5.5 쌍대 문제
쌍대 문제의 해는 원 문제 해의 하한값이지만 어떤 조건하에서는 원 문제와 똑같은 해를 제공함.(SVM이 이를 만족.)
5.5.1 커널 SVM
머신러닝에서 커널은 변환 Φ를 계산하지 않고 원래 벡터 a,b에 기반해 계산할 수 있는 함수이다.
6 결정 트리
결정 트리 : 다목적 머신러닝 알고리즘, 매우 복잡한 데이터셋도 학습할 수 있는 강력한 알고리즘,
📌결정 트리의 장점 중 하나는 데이터 전처리가 거의 필요하지 않다는 점이다.
6.2 예측
트리가 어떻게 예측을 만들어내는가?
먼저 루트 노드에서 시작한다.
이 노드는 곷잎의 길이가 2.45 보다 짧은지 검사함. 만약 그렇다면 왼쪽의 자식 노드로 이동.
이 경우 이 노드가 리프 노드이므로 추가적인 검사를 하지 않음.
그냥 노드에 있는 예측 클래스를 보고 결정 트리가 새로 발견한 꽃의 품종을 iris-setosa라 예측함.
📌 노드의 sample 속성은 얼마나 많은 훈련 샘플이 적용되었는지 헤아린 것
마지막으로 노드의 gini 속성은 지니 불순도를 측정함.
한 노드의 모든 샘플이 같은 클래스에 속해 있다면 이 노드를 순수하다고 함.
이 결정 트리의 결정 경계.
굵은 수직선이 루트 노드의 결정 경계, 왼쪽 영역은 순수 노드이기 때문에 더 나눌 수 없고, 오른쪽 영역은 순수 노드가 아니므로 깊이 1의 오른쪽 노드는 나눠짐.
6.3 클래스 확률 추정
결정 트리는 한 샘플이 특정 클래스 k에 속할 확률을 추정할 수도 있다.
리프 노드를 찾기 위해 트리를 탐색하고 그 노드에 있는 클래스 k의 훈련 샘플의 비율을 반환한다.
6.4 CART 훈련 알고리즘
CART 알고리즘이 훈련 세트를 성공적으로 둘로 나누었다면 같은 방식으로 서브셋을 또 나누고 그 다음엔 서브셋의 서브셋을 나누고 이런 식으로 계속 반복한다. 이 과정은 최대 깊이가 되거나 불순도를 줄이는 분할을 찾을 수 없을 때 멈추게 된다.
6.6 지니 불순도 또는 엔트로피?
머신러닝에서는 불순도의 측정 방법으로 자주 사용됨. 어떤 세트가 한 클래스의 샘플만 담고 있다면 엔트로피 = 0
💡 지니 불순도와 엔트로피 중 어떤 것을 사용해야 할까?
실제론 큰 차이가 없다. 둘다 비슷한 트리를 만들어낸다. 지니 불순도가 조금 더 계산이 빠르기 때문에 기본값으로 좋다. 그러나 다른 트리가 만들어지는 경우 지니 불순도는 가장 빈도 높은 클래스를 한쪽 가지로 고립시키는 경향이 있는 반면 엔트로피는 조금 더 균형 잡힌 트리를 만든다.
6.7 규제 매개변수
결정 트리는 훈련 데이터에 대한 제약 사항이 거의 없음.
제한을 두지 않으면 트리가 훈련 데이터에 아주 가깝게 맞추려고 해서 과대적합이 되기 쉽다.
결정 트리는 모델 파라미터가 전혀 없는 것이 아니라 훈련 되기 전에 파라미터 수가 결정되지 않기 때문에 비파라미터 모델이라고 한다.
반대로 선형 모델 같은 파라미터 모델은 모델 파라미터 수가 미리 정해져 있으므로 자유도가 제한되어 과대적합될 위험이 줄어든다.
규제 : 결정 트리의 자유도를 제한하는 것.
규제 매개변수는 사용하는 알고리즘에 따라 다르지만 보통 적어도 결정 트리의 최대 깊이는 제어할 수 있음.
규제가 없는 왼쪽 모델은 확실히 과대적합이며 규제를 추가한 오른쪽 모델이 일반화가 더 잘될 것이다.
6.8 회귀
각 노드에서 클래스를 예측하는 대신 어떤 값을 예측한다.
이 모델의 각 영역의 예측값은 항상 그 영역에 있는 타깃값의 평균이 된다. 알고리즘은 예측값과 가능한 한 많은 샘플이 가까이 있도록 영역을 분할한다.
CART 알고리즘은 훈련 세트를 불순도를 최소화하는 방향으로 분할하는 대신 MSE를 최소화하도록 분할하는 것을 제외하고는 아퍼 설명한 것과 거의 비슷하게 작동한다.
6.9 축 방향에 대한 민감성
결정 트리는 계단 모양의 결정 경계를 만든다. 그래서 데이터의 방향에 민감하다.
오른쪽 모델은 일반화가 쉽지 않을 것이다.
이 때 주성분 분석 변환을 적용한다. 이는 특성 간의 상관관계를 줄이는 방식으로 데이터를 회전해 결정 트리를 더 쉽게 만들 수 있다.
6.10 결정 트리의 분산 문제
일반적으로 결정 트리의 주요 문제는 분산이 상당히 크다는 것이다. 즉, 하이퍼파라미터나 데이터를 조금만 변경해도 매우 다른 모델이 생성될 수 있다.
다행히도 여러 결정 트리의 예측을 평균하면 분산을 크게 줄일 수 있다. 이러한 결정 트리의 앙상블을 랜덤 포레스트라고 한다.
💡딥다이브
1. 커널 기법
SVM은 비선형적인 문제에 대해서도 해결책을 제시합니다. 선형적으로 분리되지 않는 데이터를 다룰 때 커널 기법을 활용하여 고차원 공간으로 변환함으로써 분류를 가능하게 합니다. 대표적인 커널에는 선형 커널, 다항식 커널, RBF 커널 등이 있습니다.
그렇다면
- 다항식 커널과 RBF 커널의 차이는 무엇인가? 각각의 정확한 개념과 둘 사이의 유사점, 차이점은 무엇인가?
- 다항식 커널의 개념 : 입력 데이터를 고차원 공간으로 매핑해 비선형 결정 경계를 만들 때 사용
- RBF 커널의 개념 : 비선형적인 특성을 가진 데이터에 대해 유사도함수를 사용해 계산한 값을 새로운 특성으로 삼을 수 있다.
- 유사점 : 커널 기법을 사용해 원래 공간에서의 계산을 고차원 공간에서의 내적으로 변환한. 비선형 패턴을 학습할 수 있음.
- 차이점 : 다항식 커널은 차수가 커질수록 고차원 매핑 가능하지만, 유한한(명시적) 차원이 있음. RBF 커널은 무한 차원 특징 공간을 가정함.
- 다항식 커널과 RBF 커널의 하이퍼파라미터 각각 d와 γ은 커질수록 오버피팅을 야기할 수 있다. 그 이유는 무엇인가?
- 결정경계가 점점 복잡해지기 때문이다. 다항식 커널에서 d가 커질수록 복잡한 결정경계가 형성되고, RBF 커널에서 γ가 커질수록 결정 경계가 점점 더 샘플에 민감해진다. 이 이유들이 오버피팅을 야기할 수 있다.
2. 가장 좋은 하이퍼파라미터
우리는 SVM을 공부하면서 γ와 C라는 하이퍼파라미터에 대해 공부했습니다. 우리는 머신러닝, 딥러닝을 공부하며 더 많은 하이퍼파라미터들을 마주하게 됩니다. 하이퍼파라미터는 개인의 주관에 따라 적용이 가능하지만, 동시에 모델의 성능에 큰 영향을 끼칩니다. 그렇다면 우리는 어떻게 가장 좋은 하이퍼파라미터를 찾을 수 있을까요? 수많은 숫자를 하나하나 대입해보아야 할까요?
그렇다면
- 하이퍼파라미터를 튜닝하는 전통적인 방식에는 어떤 방법들이 있으며 이들은 어떤 로직으로 작동할까?
- 그리드 서치(Grid search) : 하이퍼파라미터 목록과 성능 지표를 지정하면 알고리즘이 가능한 모든 조합을 통해 작동하여 가장 적합한 것을 결정
- 랜덤 서치(Random search) : 각 반복에서 무작위로 하이퍼파라미터 그룹을 선택합니다. 상대적으로 적은 수의 하이퍼파라미터가 주로 모델 결과를 결정할 때 훌륭하게 작동
- 베이지안 최적화(Bayesian optimization) : 알고리즘은 특정 지표를 최적화하는 하이퍼파라미터 세트에서 확률 모델을 빌드
- AutoML이란 무엇이고, 이것이 항상 전통적인 방식의 하이퍼파라미터 튜닝보다 좋을까?
- AutoML : 데이터 전처리, 모델 선택, 하이퍼파라미터 튜닝 등 머신러닝 파이프라인의 여러 단계를 자동으로 수행하는 시스템
- 전문가가 부족하거나 빠르게 모델을 개발해야 할 때 유용하다는 장점이 있다고 하지만 단점 또한 존재하기 때문에 항상 더 좋진 않을 것 같다.
- 항상 그렇지 않다면 언제 그런지, 그리고 그 이유는 무엇일까?
- 탐색 공간이 넓거나 데이터 규모가 큰 경우 계산 비용과 시간이 많이 들 수 있다.
- 내부 과정이 복잡해 결과 해석이 어려울 수 있다.
- 자동화의 한계로 인해 모델의 작동 방식을 완전히 이해하지 못할 수도 있다.
3. 나무를 잘 기르는 법
결정 트리는 매우 훌륭합니다! 분류, 회귀문제를 모두 해결할 수 있고, 결측치에 대처가 쉽고 스케일링에서도 상대적으로 자유로운, 좋은 성질을 많이 가진 모델입니다. 특히나 해석이 쉽게 가능하다는 점과 이 모델의 로직을 생각해보면 단순해 보이기도 합니다. 하지만 최적의 결정트리를 만들기 위해서는 더 고려할 점들이 있습니다.
그렇다면
- 나무의 깊이는 오버피팅과 직결된다. 이를 방지하기 위한 방식 중 프루닝은 무엇이며, 프리 프루닝과 포스트 프루닝의 차이는 무엇인가?
- 프루닝 : 하부 트리를 제거하여 일반화 성능을 높이는 것. 프루닝하면 깊이가 줄어들고 결과의 개수가 줄어든다.
- 프리 프루닝 : 트리를 만들기 전 최대깊이, 노드의 최소 데이터수 등을 미리 지정
- 포스트 프루닝 : 트리를 먼저 완성시켜놓고, 적절한 수준에서 leaf node를 결합
- 앙상블 기법이 무엇인가? 이 기법이 결정트리에 끼치는 효용과, 그 결과로 볼 수 있는 모델들을 살펴보자.
- 앙상블 기법 : 머신러닝을 위한 다양한 학습 알고리즘들을 결합하여 학습시키는 것으로, 예측력의 보완은 물론, 각각의 알고리즘을 single로 사용할 경우 나타나는 단점들을 보완
- 개별 결정 트리의 약점을 보완하여 성능을 향상 시킬 수 있다. 분산을 줄이고 예측 안정성을 높일 수 있다.
- 배깅(Bagging) : 부트스트랩을 집계하여 학습 데이터가 충분하지 않더라도 충분한 학습효과를 주어 높은 bias의 underfitting 문제나, 높은 variance로 인한 overfitting 문제를 해결하는데 도움을 준다.
- 부스팅(Boosting) : 이전 분류기의 학습 결과를 토대로 다음 분류기의 학습 데이터의 샘플 가중치를 조정해 학습을 진행하는 방법
- 스태킹(Stacking) : 개별 모델이 예측한 데이터를 다시 meta dataset 으로 사용하여 최종 모델 Meta Learner 에서 학습하는 방식
- 보팅(Voting) : 각각 다른 알고리즘을 이용한 분류기를 결합하는 방식으로 최종 예측 값을 투표하는 방식
- 탐욕 알고리즘은 트리 계열 모델의 핵심이다. 그렇다면 다른 머신러닝 모델들은 탐욕 알고리즘을 사용하지 않을까? 어떤 모델들이 탐욕 알고리즘을 사용하는지, 그 이유와 특징을 살펴보자.
- 희소 코딩(Sparse Coding) : 희소 표현을 찾기 위해 Greedy Matching Pursuit와 같은 방법을 사용하여 한 번에 하나의 원소를 선택하며 최적 해를 향해 점진적으로 접근
'대학교 게임 개발 포트폴리오 > 머신러닝' 카테고리의 다른 글
머신러닝 4주차 - 앙상블 학습과 랜덤 포레스트 (0) | 2025.02.10 |
---|---|
머신러닝 2주차 - 모델 훈련 (0) | 2025.01.25 |
머신러닝 1주차 - 분류 (0) | 2025.01.21 |