제 꼬리를 쫓던 봇
나는 언젠가 내 라이브 트레이딩 봇에게 똑똑함의 한 수처럼 느껴지는 능력을 부여했다. 바로 적응하는 능력이었다. 연속으로 손실을 보면 봇은 더 신중해졌고, 연속으로 이기면 더 공격적으로 변했다. 그것은 반응이 빠르고, 거의 살아 있는 것처럼 보였다 — 자신이 어떻게 하고 있는지에 주의를 기울이고 그에 맞춰 조정하는 시스템.
내가 실제로 만든 것은 잡음에 반응하면서 그것을 학습이라고 부르는 기계였다. 그것은 대부분 작은 표본에서 나온 잡음에 반응하여 죄었다 풀었다 했고, 각 조정이 다음에 무슨 일이 일어날지를 좌우했기 때문에, 봇은 자기 시간을 불안하게 제 꼬리를 쫓는 데 썼다.
똑똑하게 느껴졌던 기능
그 발상은 그럴듯함 속에서 유혹적이었다. 봇이 방금 몇 번 연속으로 졌다면, 분명 상황이 불리한 것이니, 더 위험을 무릅쓰기 전에 기준을 높여야 한다. 만약 연승 중이라면, 상황이 좋은 것이니, 좀 더 밀어붙여도 괜찮다. 환경에 적응하라. 피드백에 반응하라. 자신이 어떻게 하고 있는지에 맞춰 조정하는 시스템보다 더 합리적인 것이 무엇이겠는가?
나는 그것에 흡족해했던 기억이 난다. 그것은 봇을 고정된 규칙의 집합이라기보다는 판단력을 지닌 무언가처럼 느껴지게 만들었다.
그것이 실제로 적응하고 있던 대상
문제는 무엇이 “피드백”으로 간주되었는가에 있었다. 봇은 아주 적은 수의 최근 결과 — 고작 한 줌의 거래 — 에 근거하여 조정하고 있었다. 그리고 한 줌의 거래는 대개 다음에 무엇이 올지에 대한 믿을 만한 추론을 뒷받침하기에는 너무 적은 증거밖에 담고 있지 않다.
몇 번 연속으로 지는 것은, 불확실한 베팅의 어떤 연속에서든 일어날 수 있는 가장 평범한 일 중 하나다. 그것이 가까이서 본 무작위성의 모습이다. 그러나 봇은 상황의 유의미한 변화와 지극히 정상적인 운의 군집을 구분할 수 없었고, 그래서 모든 짧은 연속을 하나의 메시지로 취급하며 그에 반응해 충실히 자신의 행동을 바꿨다.
잡음에 반응하는 것은 학습과 똑같이 느껴진다
안에서 보면, 과잉 반응은 적응과 구별하기 어렵다. 봇은 좁은 의미에서 “시장에 반응하고” 있었다. 그러나 그것이 실제로 반응하고 있던 대상은 분산 — 우연 요소가 있는 어떤 과정에서든 발생하는 승패의 무작위한 뭉침 — 이었고, 그 분산을 통찰이라고 다시 이름 붙이고 있었다.
이것은 인간이든 자동화된 것이든, 수많은 트레이딩 장치의 핵심에 있는 함정이다. 최근 결과의 한 줄기는 엄청나게 유익하게 느껴지지만 대부분은 잡음이다. 시스템이 그 결과에 근거해 행동에 나서는 속도가 빠를수록, 그것은 무언가 실재하는 것 대신 잡음을 더 충실하게 추적한다.
자기 강화적인 부분
상황은 더 나빠졌는데, 조정이 측정되고 있는 바로 그 대상으로 되먹임되었기 때문이다. 손실 후에 신중해진다는 것은 거래 수가 줄어든다는 뜻이었고, 그것은 다음 한 줌의 결과가 더욱 작고 더욱 변덕스러워진다는 뜻이었으며, 그것은 봇이 반응하는 신호의 진폭이 더 커진다는 뜻이었고, 그것은 더 날카로운 조정을 뜻했다. 시스템은 자기 자신이 왜곡하고 있는 숫자에 반응하고 있었다 — 바깥에 그것을 붙들어 둘 것이 거의 없는 고리.
피드백 루프는 그것이 붙들려 있는 대상만큼만 안정적이다. 내 것은 대부분 자기 자신의 최근 운에 붙들려 있었고, 그것은 곧 거의 아무것도 아닌 것에 붙들려 있었다는 뜻이다. 그래서 그것은 진동했다. 신중하다가, 대담하다가, 다시 신중해졌고, 매 진폭은 세상에 대한 반응이 아니라 그 앞의 진폭에 대한 반응이었다.
작은 표본이 거짓말하는 이유
이 모든 것의 바탕에는 화려할 것 없는 하나의 통계적 사실이 있다. 작은 표본은 평균으로 수렴하지 않고, 흔들린다. “숫자가 내게 말해줄 것”이라는 안도감 전체는 운이 상쇄될 만큼 충분한 숫자를 가지고 있다는 데 기댄다. 한 줌의 거래는 그 반대의 영역이다 — 우연에 크게 좌우되며, 몇 개의 좋거나 나쁜 결과가 평균을 거의 어디로든 끌고 갈 수 있는 곳.
독립적으로 검증된 신호나 그 뒤에 있는 어떤 실재하는 변화 탐지 없이 짧은 최근 구간에 빠르게 반응하는 규칙은, 무엇이든 대부분 우연에 반응하고 있는 것이다. 그 기능을 똑똑하게 느껴지게 만든 바로 그것, 즉 반응성이 여기서는 그것을 잘못되게 만든 것의 큰 부분이었다. 그런 종류의 반응이 빠를수록, 그것은 미신에 가까워진다.
해결책: 더 느리게 반응하거나, 아예 반응하지 않거나
그 프로토타입에서의 수리는 봇의 반사 신경을 빼앗는 것이었다 — 결과의 짧은 연속이 봇의 행동을 조금이라도 바꾸도록 두는 것을 멈추는 것. 내가 간직한 더 넓은 교훈은 더 단순하다. 짧은 결과의 연속에 의해 추동된 적응을 불신하라. 시스템이 조정을 할 거라면, 조정의 근거는 마지막 몇 번의 운의 뒤집힘을 추적하는 것이 아니라 그럴듯하게 무언가를 의미할 만큼 충분히 크고, 충분히 천천히 모은 것이어야 한다.
시스템을 더 느리게 반응하도록 만드는 것이 그것을 더 낫게 만들 수 있다는 것은 조금 직관에 반한다. 그러나 반응 속도는 반응할 실재하는 신호가 있을 때만 미덕이다. 단기 입력이 대부분 잡음일 때, 당신이 더하는 반응성의 상당 부분은 그저 더 빠르게 속는 방법일 뿐이다.
모든 적응이 지능은 아니다
내가 이것으로부터 얻은 가장 깊은 것은 이제 내가 붙들고 있는 한 가지 구분이다. 반응하는 것과 학습하는 것은, 비록 같은 얼굴을 하고 있을 수 있어도, 같은 행위가 아니다. 학습은 방대한 증거의 몸체로부터 안정적인 패턴을 추출한다. 반응은 그저 가장 최근에 일어난 것을 비출 뿐이다. 자신의 마지막 몇 번의 결과에 즉각 조정하는 시스템이 반드시 똑똑해진 것은 아니다. 그것은 미신적으로 변한 것일 수 있다 — 우연의 일치에 반응하여 작은 의식들을 치르며, 자신이 무언가를 알아챘다고 확신하면서.
“그것은 상황에 적응한다”는 말은 하나의 기능처럼 들린다. 어떤 때에는, 그것은 제 꼬리를 쫓는 시스템에 대한 정중한 묘사다. 질문은 결코 무언가가 적응하는지 여부만이 아니다. 그것이 적응하고 있던 대상이 애초에 실재하기는 했는가 하는 것이다.
— 신호도, 수익도 없으며, 투자 자문이 아닙니다.