CHAPTER 09
9.2 남은 오차를 다음 나무에 넘기기
손실, 기울기와 학습률이 예측을 어떻게 바꾸는지 계산합니다.
현재 예측에서 남은 차이 계산하기
과거에 비슷한 주식의 다음 주 수익률이 평균 2%였다면 처음에는 모든 주식에 2%를 준다. 실제로 5%가 오른 행의 Residual(잔차)은 3 퍼센트포인트다. 1%가 오른 행의 잔차는 −1 퍼센트포인트다. 다음 나무는 원래 수익률 표의 입력을 그대로 보면서 이 잔차들을 학습한다. 높은 상승세와 낮은 변동성이 함께 나타난 그룹에서 잔차가 주로 양수라면 그 가지에 양의 보정을 줄 수 있다.
Loss Function(손실 함수)은 각 예측이 틀린 정도를 숫자로 정한다. Gradient(기울기)는 예측을 조금 올렸을 때 손실이 얼마나 빨리 커지는지 나타낸다. 손실을 줄이려면 그 반대 방향으로 움직인다. 제곱 오차의 절반을 손실로 쓰면 음의 기울기가 실제값에서 예측값을 뺀 잔차와 같다. 다른 손실에서는 이 방향을 나타내는 Pseudo-residual(의사 잔차)을 학습한다. 각 행에서 계산한 방향은 다를 수 있지만, 작은 나무는 여러 행이 공유하는 보정 규칙을 만든다.
보정값에 학습률 곱하기
한 종목에서 첫 나무가 3 퍼센트포인트의 보정을 제안해도 Learning Rate(학습률)가 0.2이면 그중 0.6 퍼센트포인트만 반영한다. 첫 예측은 2.6%가 되고, 실제값이 5%인 이 행에는 2.4 퍼센트포인트가 남는다. 다음 나무가 그 차이만큼 보정할 수 있다고 가정하면 0.48 퍼센트포인트를 더해 3.08%가 된다.
- Feature Vector(특성 벡터). 종목 한 행의 입력이며 단위는 특성별로 다르다.
- Boosting Round(부스팅 회차). 새 나무를 더하는 순서이며 단위는 회다.
- Updated Prediction(갱신한 예측값). 이 예에서는 단위가 퍼센트다.
- Previous Prediction(직전 예측값). 단위는 퍼센트다.
- Learning Rate(학습률). 보정에서 반영할 비율이며 무단위다.
- Tree Correction(나무의 보정값). 이 예에서는 단위가 퍼센트포인트다.
실선 예측은 2%에서 3.08%로 이동한다. 점선 5%까지 남은 간격이 다음 보정의 출발점이다.
예측은 시작값에 학습률을 곱한 보정값들을 누적한 결과다. 학습률을 낮추면 같은 크기로 움직이는 데 더 많은 나무가 필요하다. 검증 점수가 개선을 멈출 때까지 기다려 가장 좋았던 회차를 저장하는 Early Stopping(조기 종료)을 함께 쓴다. 검증 날짜에서도 우연한 보정이 득이 될 수 있어 최종 평가 기간을 따로 둔다.
어떤 오차를 줄일지 먼저 정하기
Mean Squared Error(평균 제곱 오차, MSE)는 큰 오차의 영향이 빨리 커진다. 오차가 1, 4 퍼센트포인트인 두 행의 제곱 기여는 1과 16이다. Mean Absolute Error(평균 절대 오차, MAE)는 1과 4로 반영한다. Huber Loss(후버 손실)는 작은 오차에는 제곱 형태를 쓰고, 경계 밖에서는 거의 일정한 속도로 손실을 늘려 극단 관측의 영향력을 줄인다.
Quantile Loss(분위수 손실)는 한쪽 방향의 오차에 더 큰 값을 매긴다. 90% 분위수를 목표로 두면 관측값을 낮게 예측하는 데 더 큰 대가를 줘 위쪽 경계를 찾는다. 10% 분위수 모델과 짝지으면 조건에 따라 폭이 달라지는 구간을 만들 수 있다. 실제 포함 비율은 미래 구간에서 따로 확인한다. 직접 정의한 목적함수는 구현에 따라 1차 기울기와 2차 미분값을 요구하므로 꺾이는 손실이라면 내장 목적함수 또는 부드러운 근사와 수치 안정성을 확인한다.
상승·하락 분류에서 나무가 더하는 값은 보통 확률 자체 대신 Log-odds(로그 오즈) 점수다. 원점수 0을 변환하면 상승 확률 50%이고, 점수가 양의 방향으로 이동하면 확률이 높아진다. 원점수에 0.2를 더했다고 확률이 20 퍼센트포인트 오르는 것은 아니다.
표 데이터에서 이 구조가 잘 맞는 조건
변동성이 경계를 넘을 때 상승세의 의미가 급격히 달라지면 나무는 경계 위아래에 다른 예측을 놓을 수 있다. 충분한 데이터가 각 가지에 남는다면 업종이나 변동성에 따른 상호작용도 같은 방식으로 학습한다. 극단적으로 큰 입력값도 이미 경계를 넘었다면 같은 가지에 들어간다. 극단적인 라벨의 영향력은 여전히 손실 함수에 달려 있다.
결측값은 라이브러리별 분할 규칙에 따라 처리한다. 예를 들어 값이 없는 기록을 왼쪽에 보낼 때와 오른쪽에 보낼 때 중 학습 손실이 더 낮은 경로를 기억할 수 있다. 장 마감 당시 값이 없었던 기록과 나중에 값이 수정된 기록은 원인을 구분해야 한다. 결측 패턴이나 범주 구성이 시장이 바뀌면서 달라지면 훈련에서 잘 맞던 경로도 다시 검증한다.