이것저것 담는 블로그

bandits 알고리즘의 이해 및 강화학습과의 차이 본문

IT/Machine Learning

bandits 알고리즘의 이해 및 강화학습과의 차이

버즈와우디 2022. 9. 19. 09:20

Multi arm bandit 은 쉽게 말해 slot machine이 한 개인 것

Contextual bandits은 machine이 여러 개라서 상태가 여러 개임

강화학습과의 다른 점은 에이전트가 환경을 바꾸지 못한다 즉 state 가 변하지 않는 환경임

단순 MAB는 state/context 등 환경에 대한 정보를 전혀 고려하지 않으며,

CB는 환경에 대한 정보를 일컬어 state 대신 context라고 한다. 

Action이 환경을 바꿀 수 있는가?로 용어을 구분한 것 같다.

 

Slot 한 개가 bandit 이라고 불리고

Machine이 가진 arm이 실제로 수행되는 각각의 action임

 

contextual bandits 의 GitHub repo 중에 가장 눈에 띄는 vowpal wabbit인데

온라인 러닝 라이브러리라고 생각해도 될거같다

https://github.com/VowpalWabbit/vowpal_wabbit

 

GitHub - VowpalWabbit/vowpal_wabbit: Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning wi

Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive lea...

github.com

보니까 구글 클라우드에서도 contextual bandits 알고리즘을 쉽게 쓸 수 있나보다

AutoML 활용해서 raw data에서 자동으로 feature engineering, architect search, hyper parameter tuning, model selection, ensembling, tuning 등의 기능을 제공한다

 

contextual bandits은 크게 direct method(DM), inverse propensity score (IPS)로 쓸 수 있는데,

DM은 contexts로부터 reward를 추정한 값으로 policy value를 평가하고,

IPS는 historical data로부터 이전에 선택된 action이 잘못 선택되었던 경우를 반영해 가중치를 조정한다.

따라서 DM을 활용하는 경우는 reward에 대한 정확한 모델이 있어야만하고, IPS는 과거 정책에 대한 정확한 모델이 필요하다.

보통 reward를 정확한 모델로 계산하긴 어렵기 때문에 IPS를 활용하며 만약 과거 정책이 평가 대상 정책과 크게 다르면 편차가 커진다는 점을 유념해야한다.

앞서 언급한 마이크로소프트의 vowpal wabbit은 doubly robust estiomation을 써서, 두 방법의 한계점을 극복했다.

 

 

Regret is an expected difference between an expectation of the sum of rewards when using an optimal policy and the sum of collected rewards using the contextual bandit policy learned from data. 

 

 

Ref

https://towardsdatascience.com/contextual-bandits-and-reinforcement-learning-6bdfeaece72a?gi=e52485239a3d 

 

Contextual Bandits and Reinforcement Learning

If you develop personalization of user experience for your website or an app, contextual bandits can help you. Using contextual bandits…

towardsdatascience.com

 

https://cloud.google.com/blog/products/ai-machine-learning/how-to-build-better-contextual-bandits-machine-learning-models

 

How to build better contextual bandits machine learning models | Google Cloud Blog

Contextual bandits: what is it, how businesses can apply it, and how to use AutoML to implement it

cloud.google.com

https://sumniya.tistory.com/12

 

[Part 1.5] Contextual Bandits

포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다.  이번 포스팅에서는 본격적인 강화학습에 대한 실습에 들어가기 앞서, Part 1의 MAB algorithm에서 강화학습으로 가는 중간 과정을 다룰

sumniya.tistory.com