안녕하세요
오늘은 머신러닝 주요 개념 중 '모델 평가' 에 대해 알아보겠습니다.
모델 평가란 모델이 얼마나 분석력이 뛰어난지, 또 데이터를 잘 표현했는지 성능을 평가하는 것입니다. 앞서 설명드린 손실함수는 모델이 최적화 될 수 있는 수식을 찾아 계산하는 방법인 것입니다.
모델 평가에서 중요한 개념은 '일반화' 인데, 이것은 학습한 데이터 뿐 아니라 새로운 데이터가 입력되었을 때 잘 작동하는지를 나타냅니다. 실제 머신러닝 구축 및 활용에서 가장 중요한 요소라고 할 수 있습니다. 새로운 데이터가 들어왔을 때 모델이 잘 작동하는지가 중요한 이유는 기존의 학습된 데이터로만으로는 데이터 패턴이 제한되기 때문입니다. 이러한 문제를 '과적합(오버피팅)'이라고 합니다.
모델의 일반화 특성 평가는 한정된 데이터로 모델의 일반화의 특성을 알아내는 데 목적이 있습니다. 그리고 그 평가 기준으로는 '정확도'와 '정밀도'가 있습니다. 이 두 가지 요소로 평가하는 이유는 모델이 학습 데이터로만 성능을 발휘하지 않고 일반화되어 일반 데이터로도 성능을 발휘할 수 있도록 하기 위해서 입니다. 즉 '일반화 에러'를 줄이기 위해서 모델 평가를 합니다. 그 방법으로는 '학습-평가 데이터 나누기' 와 '교차 검증'에 대해 알아보겠습니다.
'학습-평가 데이터 나누기'는 말그대로 학습용 데이터와 평가용 데이터로 나누어 모델을 평가하는 것입니다. 학습용 데이터로 학습 성능을 확인한 뒤 평가용 데이터로 일반화 평가 검증을 하는 것입니다. 비율은 50:50 또는 80:20으로 상황에 따라 비율이 달라지며, 입력순으로는 오래된 데이터를 학습용 데이터로, 최근 입력된 데이터를 평가용 데이터로 사용합니다.
'교차 검증'은 위의 '학습-평가 데이터 나누기' 방법을 여러 번 교차하여 사용함으로써 일반화 에러를 더욱 줄이는 방법입니다. 교차 검증 방법 중 가장 유명한 방법은 'K겹 교차 검증' 입니다.
'K겹 교차 검증'은 K번 순차적으로 학습-평가 검증 과정을 거쳐 각 세트 결과값의 평균을 도출하는 방식입니다. 이 방법은 일반화 특성을 정확하게 평가할 수 있다는 장점은 있으나, 계산을 많이 진행해야 한다는 단점이 있습니다.
다음은 '정확도'에 대해 알아보겠습니다. 정확도는 일반화 특성 중 모델이 데이터를 얼마나 정확하게 분류하였는지를 평가합니다. 정확도 = 맞게 분류한 데이터 숫자 / 평가하는데 쓰는 총 데이터 숫자
그러나 정확도만으로 모델이 유용한지는 알 수 없습니다. 모델의 유용성을 평가하기 위해서는 '정밀도' 와 '포괄성'을 고려해야 합니다. 이진화 분류 문제를 통해 설명드리면, 정밀도는 모델이 예측한 데이터 중에서 정답을 얼마나 밀도 높게 맞춰느냐를 평가합니다. 예를 들면 암환자가 10명 중 8명이라고 예측했다면 정밀도는 0.8이지만 10명이었을 때를 기준으로 평가하였기 때문에 20명일 경우는 고려하지 않기 때문에 불완전할 수 있습니다.
다음 '포괄성'은 실제 데이터 중 예측값이 얼마나 해당되는지를 평가합니다. 즉 평가 대상 10명 중 암환자가 10명이라면 예측값이 몇 명이나 정답을 맞추었는지를 평가합니다. 포괄성이 높다고 해서 무조건 좋다고 할 수는 없습니다. 포괄성을 높여 모든 값을 예측할 수 있게 설정하면 모델을 거치는 의미가 떨어지기 때문입니다. 따라서 정밀도와 포괄성 둘다 높이는 것이 중요하겠습니다. 그것을 'F1 평가 방식'이라고 합니다. F1 = 2 * 정밀도 * 포괄성 / 정밀도 + 포괄성
또한 'AUC(ROC커프 밑면적) 방식'은 정밀도와 포괄성을 동시에 평가할 수 있습니다.
'랭킹 평가'는 랭킹 손실함수를 이용하지만, 결과를 이용하기 위해 직관적으로 평가하는 방법이 있습니다.
'정밀도@K'는 항목의 랭킹을 구한 뒤 첫 번째부터 K번째 까지 정답이 몇 개인지를 카운트합니다.
'NDCG'는 랭킹이 높은 결과에 더 가중치를 부여하며, 순위에 따라 중요도를 바꿔가면 평가합니다.
두 방법 모두 검색 엔진 평가에 많이 사용합니다.
이렇게 머신러닝의 주요 개념인 '모델', '손실함수', '최적화', '모델 평가' 에 대해 알아보았습니다.
개별 개념 모두 설명드린 것은 아니지만 머신러닝이란 데이터를 입력하여 특정 모델을 통해 예측값을 출력하는데 그 때 지표가 되는 손실함수를 통해 데이터와 예측값의 손실을 줄이는 방식으로, 손실함수를 바탕으로 올바른 학습을 통해 데이터를 잘 표현하고, 새로운 데이터에 대하여 정확도와 정밀도를 높여 신뢰성 높은 예측을 할 수 있는 모델을 구축하는 것이라고 볼 수 있습니다.
다음에는 머신러닝의 주요 모델 이론과 세부 개념, 실제 적용 사례에 대해 함께 공부해보겠습니다.
감사합니다.
'머신러닝' 카테고리의 다른 글
[머신러닝 입문]머신러닝 주요 모델-데이터양과 품질/표준화 (0) | 2020.03.31 |
---|---|
[머신러닝 입문]머신러닝 주요 모델 - 데이터형 (0) | 2020.03.31 |
[머신러닝 입문]머신러닝의 주요 개념 - 최적화 (0) | 2020.03.28 |
[머신러닝 입문]머신러닝 주요 개념 : 손실함수 (0) | 2020.03.27 |
[머신러닝 입문]머신러닝의 주요 개념-모델 (0) | 2020.03.26 |