3/4 금요일 머신러닝 수업 이후 기록
(한국외대 통계학과 정석오 교수님의 통계적기계학습 수업과 유튜브 채널 허민석님 강의자료를 참고해서 작성했습니다.)
머신러닝에서는 모형의 적합도 보다는 예측의 정확도를 더 중요하게 여긴다.
모형의 적합도를 지나치게 강조하게 되면 과적합(overfitting)문제가 발생할 수 있기 때문.
overfitting ?
ex) 당신이 부모가 되어 태어난지 얼마 지나지 않은 아이에게 공이라는 물체를 구분할 수 있는 방법을 가르친다고 가정해보자.
당신은 집에있는 야구공, 축구공, 농구공을 예시로 아이에게 보여주며 이것들 처럼 동그랗게 생긴 것이 공이라고 가르친다. 이제 아이가 제대로 배웠는지 테스트해볼 시간이다. 하지만 불행히도 아직 데이터가 부족한 아이는 앞서 보여준 세개의 단편적인 예시만을 통해 공의 성질을 일반화해야하기 때문에 달사진이나 사과사진과 같은 둥근 물체들이 모두 공이라고 대답해버린다. 이것을 머신러닝에서는 과소적합, 언더피팅(underfitting)이라고 부른다. 만약 기계에게 똑같은 방식으로 학습을 시켰다면 bias가 굉장히 높은 상태의 모델인 것이다.
이러한 문제점을 알아차린 당신은 아이에게 공에 대한 추가적인 특징들을 제공해서 아이가 더욱 정확하게 공을 인식할 수 있도록 학습시키고자 한다. 그래서 아이에게 공은 둥근물체일 뿐만 아니라 먹을 수 없고 어떠한 놀이를 위해 사용되는 것이라는 추가적인 variable들을 학습시킨다. 그리고 추가적인 정보를 학습한 아이는 아까와 같은 실수를 반복하지 않고 이번에는 사과와 달이 공과 다르다는 것을 성공적으로 구분해낸다. 꽤나 만족스러운 결과였지만 당신의 욕심은 여기서 멈추지 않는다. 당신은 공에 대한 더욱 세부적인 특성들을 아이에게 학습시켜서 아이가 모든 공을 완벽하게 구별할 수 있는 경지에 이르도록 만들고 싶어졌다.
그래서 공에는 실밥이 있고 가죽이나 천이 겉을 감싸고 있다고 추가적으로 학습시킨다. 이제 당신이 집에있는 공들을 보여주면 아이가 너무도 빠르고 정확하게 구별해내는 것을 보고 당신은 만족한다. 하지만 아쉽게도 다음날 밖에서 우연히 마주한 탁구공과 골프공을 보고 아이는 공이라고 대답하지 않는다. 이것을 머신러닝에서는 과적합, 오버피팅(overfitting)이라고 부른다. 직접적으로 배운것에 대해서는 잘 맞추지만 그렇지 못한 것들에 대해서는 오히려 더 맞추지 못하게 되는 상태를 의미한다. 만약 기계에게 똑같은 방식으로 학습을 시켰다면 variance가 굉장히 높은 상태의 모델인 것이다.
따라서 머신러닝 모델을 만들 때 bias 와 variance가 모두 낮아야 가장 이상적임 (underfitted 되지도 않고 overfitted되지도 않는)
- underfit을 극복하는 법?
1. 더 많은 특성들을 찾아낸다
2. 자체적으로 variance가 높은 모델들을 사용한다. (Decision Tree, k-NN, SVM...)
- overfit 여부를 알아보는 법?
train data에서는 잘 작동하지만 test data에서는 제대로 작동하지 않을 경우
- overfit을 피하는 법?
1. 모형을 간단하게 만들거나
2. 더 충분한 양의 데이터를 확보하거나
->
* regularization
* cross validation
* Add more data
**K-fold cross validation
우선 가지고 있는 dataset을 k개의 subset으로 split한다.
만약 k값이 10이라면 9개의 서브셋을 트레이닝 하는데에 사용하고 나머지 하나로 테스트를 진행하는 구조가 하나의 round.
test에 사용되는 1개의 서브셋을 10번의 라운드동안 모두 바꿔가며 각각의 라운드마다 산정된 accuracy들의 평균값을 final accuracy로 사용
-> final accuracy가 train accuracy보다 현저히 낮으면 overfit이라고 판단할 수 있고 validation accuracy를 높이는 방향으로 train 과정을 변형시켜 overfit을 극복할 수 있다.
** regularization
validation accuracy가 너무 낮을 경우 사용하는 방법이 regularization -> 오버핏이 일어나지 않을 때까지, 즉 validation accuracy가 train accuracy보다 높아질 때 까지 regularization을 반복!
위 수식은 regression model training에서 사용되는 sqared error 목적함수에 regression function의 계수값 θ에 관한식이 더해진 형태의 regularize된 비용함수.
목적함수인 비용함수가 최소가 되게하는 θ값을 찾아야 함
기존의 regression 함수가 다음과 같다고 가정하면 계수값을 낮춰주게 되면 그래프의 곡선이 좀 더 부드러워지고 gradient값도 낮아짐.
= variance값이 낮아짐
즉, (복잡했던 regression 함수의 선이 조금 더) 완만해졌다 , 더욱 일반화 되었다.
binary classification 시험나옴
클래스 불균형이 심한데이터 -> precision 과 recall의 조화평균 값 f1-score를 이용
산술평균 기하평균 조화평균
산술평균의 단점? 이상치에 취약하다
기하평균 = log값의 산술평균
조화평균 = 역수의 평균을 역수승 해주는 평균
<지도학습의 전체 흐름>
학습시키고자 하는 데이터를 train set 과 test set으로 분할한다