general ML, DL, NLP/머신러닝

지도학습(Supervised learning) 기초- 성능평가, overfitting, regularization

김아다만티움 2022. 4. 22. 02:49

*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다.

1. 모델 성능 평가 

1) 지도학습 적용 순서 

지도학습은 학습 데이터 & 문제 데이터 준비 -> 알고리즘(수학적 모형/모델/함수) 선택 -> 학습(최적 파라미터 값 도출) -> 문제 데이터에 학습된 모형 적용 순으로 진행합니다. 이 때 문제 데이터학습에 절대 사용이 되면 안되며, 힌트 정보와 정답정보가 모두 있어야 합니다. 정답 정보가 있어야 모델 성능 평가가 가능하기 때문입니다.

문제 데이터에 대해서 모형은 정답을 예측하게 됩니다. 정답이 잘 맞을수록, 즉 실제 종속변수를 잘 설명(예측)할수록 모형의 성능이 좋다고 말할 수 있습니다. 

 

2) 문제별 모델 성능 평가 지표

(1) 회귀: 회귀는 보통 R제곱(스퀘어), 즉 R^2를 사용합니다. R제곱은 회귀 모형의 문제 설명력을 보여주며, 0~1사이의 값을 가집니다. 1에 가까울수록 설명력이 좋습니다.

(2) 분류: 정확도(accuracy) 지표를 사용합니다. 역시 0~1 사이의 값을 가지며, 1에 가까울수록 관측치의 종속변수를 모형이 정확하게 예측하는 것입니다. 즉, 1에 가까울수록 모델 성능이 좋습니다. 

 

 

2. Overfitting 과적합

과적합종속변수를 잘 설명하지 못하는 상태를 말합니다. 즉, 새로운 데이터에 대해 예측을 잘 하지 못하는 상황을 뜻합니다. 

과적합의 원인은 크게 2가지로 나뉩니다.

1) 모형이 복잡한 경우: 독립변수가 많기 때문에 파라미터 수가 증가하게 됩니다.

2) 독립변수 값에 모형이 민감하게 반응하는 경우 

    파라미터의 절댓값이 클수록 모형이 독립변수 값에 민감하게 반응합니다. 곧 feature에 대해 지나치게 민감하게 반응하여, feature의 변화보다 종속변수 예측값이 더 크게 변화하는 것을 뜻합니다. 

Overfitting을 방지하기 위해서는 규제화(regularization)를 사용할 수 있습니다. 규제화원래 비용함수에 특정 term을 두어, 새로운 비용함수를 만드는 것입니다. 이 때 1)과 같이 파라미터가 지나치게 많은 경우 중요하지 않은 파라미터를 없애서 모형을 단순하게 만들거나(L1 regularization), 2)와 같이 파라미터의 절댓값을 줄여 모델의 민감도를 떨어뜨리는 방법(L2 regularization)을 사용하게 됩니다. 

 

 

3. Overfitting을 해결하기 위한 Regularization

앞서 말했던 것처럼 규제화기존 비용함수에 penalty term을 추가새로운 비용함수를 만드는 방법입니다. Penalty term에는 L1 penalty term, L2 penalty term이 있습니다. 

1) L1 regularization

L1 penalty는 파라미터를 줄이거나 없애는 효과를 냅니다. 각 파라미터에 절댓값을 취해 전부 더한 후, 람다(penalty strength)를 곱하는 것입니다. 파라미터를 0까지도 줄일 수 있습니다. 

 

2) L2 regularization

L2 penalty는 파라미터의 절댓값을 줄여 파라미터에 대한 반응 정도를 둔감하게 만드는 방법입니다. L1과 다른 점은, 파라미터의 절댓값을 0까지 줄일 수 없다는 것입니다. 각 파라미터를 모두 제곱한 후 더한 뒤, 람다를 곱합니다.

L2 규제화를 비용함수에 적용하면 다음과 같습니다.  파라미터 값을 제곱한 뒤 람다값을 곱하여 기존의 비용함수에 더해줍니다. 그림에서 빨간 부분에 해당합니다.

규제화를 적용하게 될 경우 5b1+b1-14가 되어, 기존 적용하지 않은 5b1-14보다 파라미터 변화 정도가 크지 않게 됩니다. 즉, 모형이 파라미터에 대해 둔감하게 반응하게 되었습니다. 만일 람다값을 1로 할 경우, 7b1-14가 되어 파라미터 변화 정도가 더 완화됩니다.

 

3) regularization 적용 유무에 대한 차이 

원래 비용함수에 새로운 penalty term을 더한 것이 규제화임을 배웠습니다. 규제화에는 파라미터 값을 0까지 줄이는 L1과, 파라미터 절댓값을 줄이는 L2가 있고, 이를 그래프로 나타내면 둘의 차이점이 확실해집니다. 

L1(좌)의 경우 꺾은선 그래프와 비용함수를 더한 새로운 비용함수(빨간색)를 생성합니다. 이 새로운 비용함수의 최소값은 0이 될 수 있게 바뀌어 파라미터의 절댓값을 0으로 만들 수 있습니다.

반면 L2(우)는 새로운 비용함수가 이차함수가 되어, Penalty term을 0으로 상정할 수는 있으나 파라미터의 절댓값을 0으로 만들 수는 없습니다. 

 

4) 규제화 시 주의사항

페널티를 너무 많이 주면 모형이 지나치게 단순해집니다. 때문에 오히려 underfitting(과소적합)이 발생할 수 있습니다. 과소적합도 모형의 설명력이 낮아지기에 주의해야 합니다.