산타 2020, 사탕 지팡이 대회 시작하기

캐글 강화학습 대회 참여 및 결과 제출까지 #1

by hansung dev

캐글 2020년 크리스마스 산타 대회는 "The Candy Cane Contest"입니다. 이번 연도에는 지도 학습이 아닌 강화학습 대회로 개최되었습니다. "multi-armed bandit" 알고리즘을 기반으로 한 제출 상대와의 Agent 경쟁을 하는 색다른 대회입니다.


대회의 시나리오 및 목표, 생각해볼점에 대해서 요약해보았습니다. Plain bayesian UCB is not enough 참조

시나리오는 100개의 슬롯머신이 있고 한 번에 한 개의 레버만 당길 수 있습니다. 레버를 당긴 후에, 대응하는 슬롯 머신은 값 1 또는 0의 보상을 생성합니다.

목표는 2000번 레버 당김 이후 얻은 보상을 극대화하기 위해 레버를 당기는 전략을 고안하는 것입니다.

생각해볼점은 위 내용은 고전적인 MAB 문제 이지만, 이러한 Kaggle 환경에는 함정이 있습니다.

이 경기에서, 레버를 당길 때마다, 당겨진 레버의 알려지지 않은 보상 확률은 기본적으로 0.97의 비율로 감소한다. 또한, 우리는 레버를 당기는 상대와 경기하고 있습니다. 초기 알 수 없는 보상 확률이 0.9라고 가정하고 슬롯 머신 0의 레버를 잡아당겨 슬롯 머신 0이 이제 알 수 없는 보상 확률이 0.873이라고 가정합니다. 상대방이 그것을 당겼다고 가정하면 알려지지 않은 보상 확률은 0.84681로 더 감소한다.
"Santa 2020 - The Candy Cane Contest" - Overview

"Santa 2020 - The Candy Cane Contest" 캐글 대회 사이트의 내용을 하나하나 알아보겠습니다.


description

코로나 19로 인해 사기가 많이 저하되었으며 크리스마스 응원을 위해 가능한 많은 장난감을 만들기 위해 엘프들 간의 우호적인 경쟁을 계획했습니다. 사탕 지팡이를 꾸준히 공급하는 것이 생산성을 높이고 동기 부여를 한다고 합니다. 사탕수수 숲은 현재 폐쇄되어있으며 휴게실 자판기를 이용해 사탕 지팡이를 공급할 수 있습니다. 휴게실 자판기에서 사탕 지팡이를 더 많이 공급하는 팀이 우승하며 우승팀은 스노우콘 파티를 열 수 있게 됩니다.


올해 북극의 사기는 낮았습니다. 하지만 산타는 정말 "영혼을 밝게 하는 것"을 믿습니다! 그래서 그는 크리스마스 응원을 유지하고 가능한 한 많은 장난감을 만들기 위해 엘프들 간의 우호적인 경쟁을 계획했습니다! 그리고 승리 한 팀은 스노우 콘 파티를 엽니다!
팀 리더 중 한 명인 당신은 동료 엘프가 사탕 지팡이를 꾸준히 공급하는 것보다 더 생산적이고 동기를 부여하는 것은 없다는 것을 알고 있습니다! 그러나 사탕수수 숲의 7 개 레벨은 모두 초목을 위해 폐쇄되었기 때문에 휴게실 자판기에 사용할 수 있는 유일한 레벨이 있습니다. 그리고 직장에서 무료 간식을 받더라도 자판기는 항상 고장 났고 원하는 것을 항상 제공하지는 않습니다.
사회적 거리두기 때문에 한 번에 두 명의 엘프만 휴게실에 있을 수 있습니다. 당신과 다른 팀장은 방에 있는 100 개의 자판기에서 사탕 지팡이를 꺼내려고 번갈아 가며, 각 기계는 작동 가능성을 예측할 수 없습니다. 그러나 기계를 더 자주 사용할수록 사탕 지팡이를 얻을 가능성이 적다는 것을 알고 있습니다. 또한 작업장으로 돌아가야 할 때까지 자판기에서 2000번만 시도해 볼 수 있습니다!
다른 팀 리더보다 더 많은 사탕 지팡이를 모을 수 있다면 반드시 팀이 산타 대회에서 우승하도록 도울 수 있을 것입니다! 이 다중 무장 사탕 지팡이 도전에 손을 대십시오!

evaluation

매일 팀과 개인은 5번의 제출 기회를 갖습니다.

제출한 에이전트는 비슷한 스킬 등급의 다른 에이전들을 상대로 경쟁을 합니다.

스킬 등급은 시간에 따라 올라가거나 내려갑니다.

각 제출에는 Gaussian N (μ, σ2)에 의해 모델링 된 예상 기술 등급이 있습니다.

여기서 μ는 예상 기술이고 σ는 시간이 지남에 따라 감소할 예상치의 불확실성을 나타냅니다.


timeline

2021-2-1 : 응모 마감, 팀 합병 마감, 최종 제출 마감

2021-2-2 ~ 9 (대략): 최종 에피소드가 재생됩니다.

2021-2-9 : 우승자 발표


environment-rules


Episode Objective

목표는 에이전트를 사용하여 자판기에서 받은 캔디 지팡이의 수를 최대화하는 것입니다. 상대방보다 더 많은 캔디 지팡이를 획득한 에이전트가 이깁니다. (/w multi-armed bandit, two-player simulation)


How To Play

이 경쟁은 "exploration-exploitation tradeoff dilemma"를 조사하는 고전적인 확률 기반 강화 학습 문제인 "multi-armed bandit problem"를 모델로 합니다.

두 참가자는 모두 동일한 100대의 자판기를 사용합니다.

사회적 거리 두기로 휴게실에는 최대 2명만 사용이 가능합니다.

자판기 최대 사용 횟수는 2000번입니다.

자판기는 해당 기계에 특정된 확률 분포로 랜덤 보상을 제공합니다.

자판기는 더 많이 사용할수록 사탕 지판이 공급 가능성이 줄어듭니다.

Every round each player selects ("pulls") a bandit, the likelihood of a reward decreases by 3%.


Writing Agents

자세한 정보는 이 링크에서 확인 가능합니다.

Writing Agents

Agent Rules

제출물은 "에이전트"이어야 합니다.

에이전트는 Kaggle Kernels 노트북 이미지의 모든 모듈만 사용할 수 있습니다.

에이전트의 유일한 목적은 액션을 생성하는 것입니다. 이에 직접적으로 기여하지 않는 활동 / 코드는 악의적인 것으로 간주되어 규칙에 따라 처리됩니다.

에이전트의 최대 파일 크기 제한은 100MB입니다.

에이전트는 호출된 후 0.25 초 이내에 작업을 반환해야 합니다. 상담원은 모든 단계에서 사용할 수 있는 최대 60 초의 초과 시간이 있습니다. 에이전트가 단계별 제한 시간을 초과하면 초과 시간이 자동으로 소비됩니다. 상담원은 초과 시간이 0이 되면 실격 처리됩니다.

오류를 발생시키거나 잘못된 작업을 반환하는 에이전트는 에피소드를 잃고 무효화될 수 있습니다.


prizes

Kaggle 브랜드 상품 (예 : 티셔츠, 커피 머그잔)은 종료일을 기준으로 상위 5 명에게 제공됩니다.

캐글 브랜드 상품 예시 사진


다음 시간에는 "multi-armed bandit"을 이용해 "kaggle-environments" 환경 라이브러리 사용하여 베이스라인을 제출해보도록 하겠습니다.
매거진의 이전글휴리스틱으로 강화학습 Agent 구현