이미 레이블이 붙은 데이터를 통해 모델을 학습해 주어진 새로운 데이터에 대해 예측할 수 있는 모델을 만들기
데이터
- 각 롤 경기에서의 플레이어 정보(챔피언, 아이템, 킬, 데스, 어시스트, 골드 획득 등)
- 해당 경기의 결과(승리 또는 패배)
각 경기에서 승리/패배라는 레이블이 주어진 데이터를 학습해 모델은 각 경기의 특징을 파악하고 승패를 예측하는 모델 생성
“이 플레이어는 10킬 3데스, 2어시스트의 스코어로 승리했다” 로
“이런 스코어가 나오면 승리한다” 를 배움
새로운 경기에서 승패를 예측
레이블이 없는 데이터에서 패턴이나 숨겨진 구조를 찾아내는 것
데이터
- 롤에 등장하는 다양한 챔피언들의 특징(공격력, 방어력, 이동 속도, 스킬 등)
비슷한 특성을 가진 챔피언들을 군집화 해 군집 찾아냄
레이블이 없는 챔피언 데이터를 사용해 비슷한 특성을 가진 챔피언들이 군집화 됨
ex. 원거리 딜러 챔피언들이 한 군집, 탱커 챔피언들이 다른 군집
모델 학습 시
“이 챔피언들은 공격력과 방어력이 비슷하네 얘네는 군집이 나뉘어서 비슷한 역할을 하는구나”
라벨이 없으므로 챔피언이 어떤 유형인지를 자동으로 파악
일부 데이터는 레이블이 있지만 대부분은 레이블이 없는 상황에서 레이블이 있는 데이터를 이용하여 모델을 학습하고 레이블이 없는 데이터에도 예측을 확장
데이터
- 일부 롤 경기에서 플레이어의 라인이 주어지고 나머지 경기들에서는 역할 정보가 없음
- 각 경기의 플레이어 정보는 다 있지만 일부 경기만 역할이 주어짐
레이블이 있는 데이터를 통해 모델을 학습하고 레이블이 없는 데이터를 예측함
일부 경기에서 라인을 알려주고 이를 바탕으로 라벨이 없는 다른 경기들에서 플레이어의 역할을 예측함
모델은 비슷한 경기 데이터를 통해 플레이어의 라인 추론 가능
“이 플레이어는 탑을 자주 하니까, 이 데이터는 탑으로 분류해.”
“대부분의 경기에서 탑 역할을 하는 사람은 비슷한 스타일을 가질 거야.”
지도 vs 비지도 vs 반지도
각 차이는 레이블의 유무 또는 정도에 있다
모델의 예측값과 실제 값 사이의 차이를 측정하는 함수
이 값을 통해 모델이 얼마나 잘못 예측했는지 알 수 있고 그에 따라 모델을 개선하는 데 중요한 역할 함
게임에서 챔피언이 얼마나 잘 플레이했는지 평가하는 방법
ex. 킬 수나 처치 수를 목표로 하는 챔피언이 있다고 가정
이 챔피언이 목표 값보다 적은 킬을 했다면 잘못된 예측에 해당
그 차이가 손실임
손실 함수는 이 ‘잘못된 예측’을 수치로 변환하는 역할
ex. 목표 킬 수 10개인데 실제 킬 수는 6개라면 손실 함수는 이 차이를 계산해서 모델에게 더 나은 예측을 하도록 학습시키는 데 도움을 줌
잘못된 결과를 어떻게 보정할지를 모델에게 알려주는 중요한 역할
-> 손실 함수가 없다면 모델이 혼란스러워 함
평균 제곱 오차(MSE)
장점이자 단점: 큰 오차에 큰 패널티
평균 절대 오차(MAE)
장점이자 단점: 이상치에 덜 민감함 (덜 직관적)
허버 손실(Huber Loss)
작은 오차에 MSE, 큰 오차에 MAE
교차 엔트로피 손실(Cross-Entropy Loss)
예측 확률 - 실제 라벨
소프트맥스 교차 엔트로피(Softmax Cross-Entropy)
출력 값에 소프트맥스 함수 적용 후 교차 엔트로피 계산
불일치 오차
주로 서포트 벡터 머신(SVM)에서 사용되며 클래스 간 마진 최대화
모델의 편향(bias)과 분산(variance) 그리고 언더피팅(underfitting)과 오버피팅(overfitting)은 머신러닝 모델의 성능과 일반화 능력을 방해함
모델이 훈련 데이터의 패턴을 얼마나 잘 추정할 수 있는지
훈련 데이터에 대한 예측이 실제 값과 많이 차이날 때 발생
(높을 수록 언더피팅)
편향 높음
훈련 데이터에 단순한 예측
훈련 데이터, 테스트 데이터 모두 성능 안좋음
ex. 선형 회귀 모델이 비선형 데이터를 모델링하려고 할 때 편향이 높아짐
편향 낮음
훈련 데이터에 과적합
테스트 데이터 성능 안좋음
모델이 훈련 데이터에 민감하게 반응하는 정도
분산 높음
훈련 데이터에서의 작은 변화에도 크게 반응
훈련 데이터에 과적합
일반화 성능 부족
분산 낮음
모델은 훈련 데이터에 대해 너무 간단한 예측
언더피팅 초래
편향과 분산은 반비례 관계
편향을 줄이기 위해 모델을 복잡하게 만들면 분산이 커짐
두 요소를 잘 조절해야 모델이 최적의 일반화 성능을 발휘
편향이 높고 분산이 낮은 경우
언더 피팅
편향이 낮고 분산이 높은 경우
오버 피팅
편향과 분산이 균형을 이루는 경우
모델이 훈련 데이터와 테스트 데이터에서 모두 좋은 성능
좋은 일반화 능력
언더피팅 해결
모델을 더 복잡하게 만듬
더 많은 특징을 추가
더 많은 데이터를 사용
오버피팅을 해결
모델을 단순화
정규화(regularization) 기법을 사용
교차 검증(cross-validation) 등
모델 개선
예시 들어서 설명해주신게 깔끔한 이해에 엄청 도움이 된 것 같아욤^..^