- MNIST
- MNIST 는 손으로 쓴 숫자 70000개 데이터로 ML 계의 hello world 라고 할 법 하다.
- 70,000개 (훈련 60천개, 테스트 10천개)의 28 * 28 이미지와 레이블로 구성되어있다.
- https://openml.org 을 통해 제공받을 수 있다.
- sklearn 은 fetch_openml 함수를 제공한다.
이진 분류기 훈련
확률적 경사하강법 (SGD)
- 경사하강법의 한계 인식
- 학습률 작으면 : 시간 많이 걸리고, 지역 최적값에 수렴할 위험.
- 학습률이 크면 : 시간이 적게 걸리지만, 발산할 위험 있음.
- 매 배치마다 랜덤하게 선택한 점을 대상으로 경사 하강법을 수행.
- 경사하강법 대비 매우 빠르지만, 매우 불안정함.
- 불안정한 대신 지역 최적값을 회피할 가능성이 높음.
- 랜덤 데이터 --> GPU 최적화 X.
이진 분류기의 성능 측정
교차 검증
- recall vs precision 문제 발생.
- "모든 숫자가 5가 아니다" 고 예측하는 경우
- accuracy 는 90%!!!
- 하지만 전혀 precision 하지 않다.
- 따라서 교차 검증으로는 이진 분류기를 제대로 평가할 수 없다.
오차 행렬
오차 행렬의 구성
False positive, False negative 를 고려하기 위해 {행:실제 클래스 / 열:예측한 클래스} 로 행렬을 구성한다.
실제 클래스 \ 예측한 클래스 | FALSE | TRUE |
FALSE | TN | FP |
TRUE | FN | TP |
정밀도
$precision=\frac{TP}{TP+FP}$
정밀도: 얼마나 정확하게 Positive 를 짚어냈는가.
재현율
$recall=\frac{TP}{TP+FN}$
얼마나 많은 Positive 를 짚어냈는가.
F 점수
$F_{score}=\frac{1}{\frac{\alpha}{precision}+\frac{1-\alpha}{recall}}=(\beta^2+1)*\frac{precision*recall}{\beta^2*precision+recall}$
이때 $\beta^2=\frac{1-\alpha}{\alpha}$
정밀도와 재현율의 조화 평균. 정밀도와 재현율이 비슷할 수록 F1 점수가 높다. 하지만 모델의 특성에 따라 precision 이나 recall 중 어느 한쪽이 상대적으로 더 중요할 수 도 있다. Fscore에서 ${beta}$가 1 보다 크면 recall 을, 1 보다 작으면 precision 을 강조하며, ${beta}=1$ 일때 $F_{1}$ score 라고 한다.
트레이드오프
시스템의 목표마다 precision 이나 recall 중 우선시 하는 요소가 다르다. 둘 다를 완벽하게 만족할 수는 없으니, 어느것에 더 가중치를 두는가에 대한 선택 - trade off - 이 필요하다.
결정함수
분류 대상인 각 샘플의 점수.
결정임계값
positive, negative 를 구분하는 기준점. 점수가 결정임계값 보다 크다면 양성, 작다면 음성으로 판별한다. 일반적으로 결정임계값이 높아질 수록 precision 은 높아지고, recall 은 낮아지며 결정입계값이 낮아지면 반대의 양상을 띈다.
참고.
결정임계값이 높아져도 precision 이 낮아질 수 있다 : 5개의 샘플이 점수 순서대로 TFTTT 로 존재한다면? 현상태의 precision은 80% 지만 결정임계값을 높이면 FTTT 가 되어 오히려 75%로 낮아진다. 하지만 전체적인 추세로 볼때 일관성을 유지한다.
판단 도구
PR 곡선
- Precision vs. Recall 그래프.
- 재현율이 높아질때 정밀도가 어떻게 변하는지 추이를 나타낸다.
- 추세를 보고 적당한 선에서 타협한 임곗값을 선택한다.
ROC 곡선
- Receiver Operating Characterstic (수신기 조작 특성)
- 거짓양성비율(FPR) vs. 진짜양성비율(TPR).
- FPR = 1 - TNR(진짜음성비율, 특이도)
- 곡선이 좌상귀 쪽에 다가갈 수록, 곡선 아래 면적(AUC)이 넓을 수록 좋은 특성을 지닌 분류기라고 할 수 있다.
어떤걸 선택할 것인가?
- 양성 클래스가 드물다 : PR 곡선. 재현율이 현저히 떨어질 수 있다.
- 거짓 양성이 더 중요하다 : PR 곡선. ROC 는 거짓 양성 비율에 대한 해상도가 낮다.
- 그 외 : ROC 곡선.
다중분류
두개 이상의 클래스를 구별할 수 있는 분류기. 분류기를 구성하는 방법에 따라 크게 두가지로 나뉜다.
OvA (One-Versus-All) 또는 OvR (One-Versus-the-Rest)
- N 개의 클래스를 분류하기 위한 N 개의 분류기를 묶은 형태.
- N 개의 분류기 중 최고점을 받은 클래스를 선택하는 전략.
- OvO 대비 간단한 구조.
OvO (One-Versus-One)
- 두개의 클래스를 비교하는 NC2 개의 분류기를 묶은 형태.
- NC2 개의 분류기 중 최고점을 받은 클래스를 선택하는 전략.
- 비교 대상인 두 클래스의 데이터만 필요하므로, 하나의 분류기가 학습하는데 OvA 대비 상대적으로 적은 데이터가 필요함.
-> 데이터 크기에 민감한 분류기에 유리.
에러분석
- 정답을 제대로 내었는지 검토하는것 만큼, 오답을 검토하는것도 중요하다.
- 분류기 마다 특성이 다르므로, 유의미한 오답을 통해 적절한 분류기를 선택하기위한 통찰을 얻을 수 있다.
- 필요하다면 전처리 과정을 고려할 수 도 있다.
그 외 분류기
다중 레이블 분류
하나의 샘플에 여러개의 클래스를 할당하는 경우.
다중 출력 분류
T.B.D