BookmarkSubscribeRSS Feed

Loss Function

Started ‎11-18-2024 by
Modified ‎11-18-2024 by
Views 447

머신러닝에서 '모델이 오판한 경우 오판을 내린만큼 패널티를 준다.' 라고 배웠습니다.

여기서 의미하는 '패널티'를 계산하는 함수가 손실함수 입니다.

모델이 오판한 경우에 이를 정량화한 함수를 loss 의 양이라고 하는데 이를 손실함수라고 합니다. 정량화된 값을 줄이기 위해 파라미터를 업데이트합니다.

■ 모수적 방법 (Parametric Method) VS 비모수적 방법 (Non-Parametric Method)

 

- 모수적 방법은 '데이터 분포에 대한 가정' (= 특정분포를 따른다라는 가정을 한다라는 의미) 을 하지만

비모수적 방법은 '데이터의 분포에 대한 가정'을 하지 않습니다. 분포에 대한 가정을 하지 않기 때문에 자유도가 높으며 분포에 대한 제약을 받지 않습니다.

- 모수적 방법은 모델에 의해서 학습 파라미터가 정해져 있습니다. 즉, 단순 선형회귀 y = B0 + B1X 일 경우 학습파라미터는 기울기 B1과 절편 B0입니다.

손실함수(Loss Function) 은 이 실제값과 예측값의 차이를 최소화하는 방법으로 학습파라미터를 조정합니다.

비모수적 방법은 데이터가 학습방법에 따라 달라질 수 있습니다.

일반적으로 모델 최적화에서는 입출력 값의 차이를 좁혀나가는 모수적 방법이라고 생각합니다.

■ RMSE - Root Mean Square Error

 

image.png

 

 

 

 

 

 

  • RMSE는 회귀모델에서 자주쓰이고 대표적인 손실함수입니다.

■ Cross Entropy

image.png

 

 

 

 

 

  • 분류 모델에서 자주 쓰는 대표적인 손실함수입니다.

# SAS Code - Cross Entrppy

 

PROC SURVEYSELECT DATA=sashelp.iris OUT=train_test_split METHOD=SRS SAMPRATE=0.7 OUTALL;
  ID _ALL_;
RUN;

DATA train;
  SET train_test_split;
  IF selected=1;
RUN;

DATA test;
  SET train_test_split;
  IF selected=0;
RUN;

 

 

sashelp 라이브러리의 iris 데이터를 활용해 train 데이터와 test 데이터를 70:30으로 분리합니다.

 

 

PROC HPSPLIT DATA=train;
  CLASS Species;
  MODEL Species = SepalLength SepalWidth PetalLength PetalWidth;
RUN;

 

Decision Tree 모델을 생성합니다.

 

 

image.png

 

 

PROC HPSPLIT statement로 Decision Tree 의 성능을 요약하였습니다.

Split Criterion Used 는 Decision Tree의 분할 기준을 Entropy 함수를 사용했다라는 것을 의미합니다.

Number of Branches: 2 - 트리에서 생성된 가지의 수는 2개 입니다.

Maximum Tree Depth Requested: 10 - 최대 트리 깊이로 10개를 사용했습니다.

Tree Depth: 5 - 최종적으로 사용된 트리의 깊이를 의미합니다.

 

 

image.png

 

 

X축은 Number of Leaves로 트리의 가지치기 과정 중에서 남겨진 노드(leaf) 수를 의미합니다.

Y축은 Entropy로 모델의 불확실성을 나타내는 척도로 값이 낮을수록 모델의 분류가 명확하다는 것을 알 수 있습니다.

Leaf의 개수가 많아질수록 엔트로피는 감소하지만 Underfitting 이 되어 데이터의 패턴을 제대로 학습하지 못할 수 도 있습니다.

위 모델에서는 9개의 Leaf가 가장 적절합니다.

 

Version history
Last update:
‎11-18-2024 08:08 PM
Updated by:
Contributors

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Article Labels
Article Tags