CHAPTER 03 / SECTION 02
3.2 합성 데이터의 충실도와 쓸모, 정보 유출
충실도·유용성·프라이버시를 분리하고 실제 평가 구간에서 합성 자료의 효과를 비교합니다.
두 시장을 각각 닮게 만드는 것으로는 부족하다
지우의 생성기는 국내와 해외 주식 각각에 −4%인 날을 비슷한 빈도로 만든다. 그런데 실제 자료에서 두 시장이 같은 날 −4%였던 장면은 생성 자료에서 거의 보이지 않는다. 한 열씩 검사하면 통과해도 포트폴리오 손실을 살피기에는 부족하다.
Fidelity(충실도)는 지우가 확인하려는 시장의 특징이 합성 자료에도 얼마나 남아 있는지를 뜻한다. 한 시장에서 실제 100일 중 8일, 합성 100일 중 12일이 −4% 이하였다고 하자. 기준을 −4%로 두면 두 비율의 차이는 4%p다. 이처럼 기준 수익률을 옮겨 가며 ‘이 값 이하였던 날의 비율’을 비교하고, 가장 큰 차이를 기록한 값이 Kolmogorov–Smirnov Statistic(콜모고로프–스미르노프 통계량)이다.
한 시장씩 계산한 값이 작아도 두 시장이 같은 날 떨어지는지는 따로 봐야 한다. 지우는 두 시장이 모두 −4% 이하였던 날의 수를 센다. 큰 움직임이 이어졌는지도 따로 확인한다. 수익률의 부호를 떼어 크기만 남긴 뒤, 하루 뒤나 이틀 뒤의 크기와 얼마나 함께 움직이는지 비교한다. 간격별 관계를 정리한 값이 Autocorrelation Function(자기상관 함수)이다.
학습 자료만 바꾸고 같은 실제 기간에서 시험한다
Utility(유용성)는 자료가 실제 작업에 얼마나 도움이 되는지 뜻한다. 지우는 다음 주 손실 폭을 추정하는 모델 두 개를 준비한다. Train-on-Synthetic, Test-on-Real(합성 자료로 학습하고 실제 자료로 평가, TSTR)에서는 합성 자료만으로 학습한다. Train-on-Real, Test-on-Real(실제 자료로 학습하고 실제 자료로 평가, TRTR)에서는 실제 학습 자료를 사용한다.
모델 종류와 입력값, 예측 대상과 시험 기간은 같게 둔다. 실제 다음 주 손실이 5%일 때 모델이 3%를 예상했다면 오차의 크기는 2%p다. 이렇게 매번 차이의 크기를 구하고 평균을 내면 Mean Absolute Error(평균 절대 오차)가 된다.
실제 자료로 학습한 모델의 평균 오차가 2.0%p이고 합성 자료로 학습한 모델이 2.4%p라면, 2.4를 2.0으로 나눈 값은 1.20이다. 합성 자료로 학습했을 때 오차가 20% 더 컸다는 뜻이다. 반대로 비율이 1보다 작다면 합성 자료가 우연한 흔들림을 덜 담아 도움이 되었을 수 있다. 생성기가 시험 기간의 데이터를 미리 보았거나 쉬운 사례 위주로 시험했는지도 확인한다. 기준 오차가 0이면 두 오차를 직접 비교한다. 정확도처럼 클수록 좋은 점수도 나란히 놓고 비교한다.
합성 표본에 실제 기록이 남았는지 검사한다
지우가 합성 주문 자료를 공유하려고 한다. 그런데 새 주문 중 하나가 실제의 드문 대량 주문과 시각, 수량, 가격까지 같다. 생성기가 학습 자료를 기억했을 가능성을 살펴야 한다. Privacy(프라이버시)는 이처럼 합성 결과를 보고 실제 기록의 내용이나 학습 포함 여부를 알아낼 수 있는지와 관련된 기준이다.
완전히 같은 행이 없어도 검사는 이어진다. 각 합성 주문에 가장 비슷한 실제 주문을 찾는다. 생성기가 학습한 주문에서 찾았을 때 유독 더 비슷하고, 학습에 쓰지 않은 주문에서는 그런 사례가 드물다면 암기의 단서가 된다. Membership Inference(학습 포함 여부 추론) 검사는 이런 단서를 가진 사람이 특정 기록이 학습에 쓰였는지를 얼마나 잘 맞히는지 평가한다.
유출 검사를 통과한 결과는 시도한 검사에 대한 증거다. 수학적 보장이 필요하면 Differential Privacy(차등 프라이버시)를 적용하고 어떤 단위의 기록을 보호하는지 기록한다. 충실도, 작업 성능, 유출 검사와 실제 보류 기간 성능을 따로 남겨야 한 지표가 다른 실패를 가리지 않는다.