본문 바로가기
Research/Deep Learning & Application

Forward Looking Problem, Omniscient(Oracle)

by 곽동현 이스텔리앙 2020. 3. 16.

Forward Looking Problem

기본적으로 time-series데이터를 이용한 future forecasting task에서는 절대적으로 미래의 정보가 예측 모델(함수)의 input으로 들어가는 것이 엄격히 금지된다.
특히 금융 모델의 경우, 미래 주가를 validation셋으로 사용하고, 여기서 구한 단순 1차 통계(mean값)를 사용해 과거의 데이터인 training셋을 normalize하기 위해서 사용하는 것 만으로도 엄청난 문제가 된다. 그 정도로 future 정보는 엄격히 사용이 금지되어야 하는 것이 원칙적으로는 맞다.


Time-series Cross-validation

그래서 이러한 종류의 time-series forecasting하는 task에서 cross-validation을 할 때에는 아래와 같이 조금 특수한 형태로 사용해야한다. 만약 단순히 random shuffle한 데이터로 cross-validation을 하면 미래에 대한 정보가 train에 포함되기 때문에 엄청난 성능 cheating이 가능하다.



Language Model

자연어쪽 task에서 가장 대표적인 LM의 경우, 1~T-1 까지의 context를 보고 T의 단어 등을 예측하는 것이다. 이 경우에도 일반적으로는 미래에 대한 정보가 사용되는 것은 금지된다. 

Masked Language Model

그러나 BERT에서 사용된 Masked LM의 경우에는 위의 원칙이 깨져서, sentence 중간의 한 단어를 masking시켜서 가린 뒤 그 앞/뒤 단어들을 보고 해당 word를 맞추도록 한다. 오히려 이런식으로 랜덤으로 중간 단어를 맞추는 것이 bidirectional한 context를 얻을 수 있기 때문에 심지어 더 우수한 embedding을 구할 수 있다는 것이다. 즉 NLP계열에서는 금융에서와 달리 forward looking이 금지되지 않고 오히려 더 좋은 성능을 내는 경우도 있는 것 같다.

반론

그러나 BERT의 경우 downstream task가 보통 forward looking이 문제가 되지 않는task인 경우가 많다. 예를 들어 단순한 token embedding이나, span, sentence feature extraction 등등은 sentence를 통째로 넣기 때문에 masked LM을해도 forward looking이 아니게 되기 때문에 BERT를 사용해도 별 상관이 없다. 그렇다면 만약 LM에 BERT를 사용하면 어떻게 될까?


결론은 text generation에 시도를 해볼 수는 있으나, 성능이 안좋다는 것이다.

Omniscient(Oracle) Value Function

조금은 다른 이야기 일수도 있지만 Open AI의 RL연구 Emergent Tool Use from Multi-Agent Interaction에서 등장한 omniscient value function은 사실 위에서의 Masked LM의 성공사례와 비슷한 점을 발견할 수 있다.


"At optimization time, we use a centralized omniscient value function for each agent, which has access to the full environment state without any information masked due to visibility, similar to Pinto et al. (2017); Lowe et al. (2017); Foerster et al. (2018)."


즉 알아서는 안되는 비밀 정보까지 모두 state에 넣어서 학습을 한 agent의 성능(evaluation에서만 그 비밀 정보(Omniscient)를 빼고 씀)이 아주 좋다는 것이다. 


반론

RL은 조금 특수한 상황일 수 있는 게, value function이 워낙에 불안정성이 크기로 유명하기 때문에 이와 같은 omnisicent 정보를 이용하고 적절한 커리큘럼 러닝을 한다면 학습 과정 자체를 매우 안정화시켜주어서 효과를 볼 수도 있다는 것이다.


댓글0