[RL] Bendit Problem
강화 학습 : 가르치는 사람의 도움 없이도 환경과 상호작용하며 더 나은 해결책을 스스로 학습하는 것
1. 머신러닝의 분류와 강화 학습
머신러닝 기법들은 다루는 문제의 성격을 기준으로 구분할 수 있다. ‘지도 학습’, ‘비지도 학습’, ‘강화 학습’
1.1 지도 학습
머신러닝에서 가장 전통적인 기법
입력(문제)와 출력(정답)을 쌍으로 묶은 데이터
1.2 비지도 학습
데이터에 숨어 있는 구조나 패턴을 찾는 용도
군집화(클러스터링), 특성 추출, 차원 축소
1.3 강화 학습
에이전트와 환경의 상호작용
- 에이전트 : 행동 주체
- 환경
- 상태
- 행동
- 보상
- 강화학습의 목표 : 에이전트가 얻는 보상의 총합을 극대화하는 행동 패턴을 익히는 것
머신러닝 분야의 대표적인 구분법 | |
---|---|
지도 학습 | 입력과 출력(정답 레이블)이 쌍으로 존재하는 데이터를 이용하여 입력을 적합한 출력으로 변환하는 방법 학습 |
비지도 학습 | 정답 레이블이 없는 데이터를 이용하여 데이터에 숨어 있는 구조 학습 |
강화 학습 | 에이전트가 환경과 상호작용하면서 수집한 데이터를 바탕으로 더 많은 보상을 얻는 방법 학습 |
- 환경과의 상호작용 속에서 배우는 것
- 시행착오를 통해 배우는 것
2. 밴디트 문제
밴디트 문제는 단순하면서도 강화 학습이 다루는 문제의 본질적인 특징이 잘 녹아 있다.
2.1 밴디트 문제
플레이를 해보고 결과를 확인하면서 좋은 머신을 찾아야 한다. 그리고 정해진 획수 안에 코인을 최대한 많이 얻는 것이 목표이다.
2.2 좋은 슬롯머신
슬롯머신에서 가장 중요한 특성은 무작위성이다.
얻을 수 있는 코인의 개수가 플레이할 때마다 달라진다.
무작위한 정도를 확률을 이용해 정량적으로 설명한다.
슬롯머신 플레이 같은 확률적 사건은 기댓값으로 평가할 수 있다.
무작위성에 현혹되지 않기 위해 기댓값을 기준으로 삼아야 한다.
2.3 수식으로 표현하기
3. 밴디트 알고리즘
- 만약 각 슬롯머신의 가치를 알면 플레이어는 가장 좋은 슬롯머신을 고를 수 있다.
- 그러나 플레이어는 각 슬롯머신의 가치를 알 수 없다.
- 따라서 플레이어는 각 슬롯머신의 가치를 추정해야 ㅎ나다.
3.1 가치 추정 방법
슬롯머신을 실제로 플레이하여 얻은 보상은 어떤 확률 분포에서 생성된 샘플(표본)이다.
따라서 실제 획득한 보상의 평균을 표본 평균이라고 할 수 있다.
표본 평균은 샘플링 횟수가 늘어날수록 실젯값에 가까워진다.
큰 수의 법칙에 따라 샘플 수를 무한대로 늘리면 표본 평균은 실젯값과 같아진다.
3.2 평균을 구하는 코드
3.3 플레이어의 정책
탐욕 정책 : 각각을 플레이해보고 가치 추정치가 가장 큰 슬롯머신을 선택하는 정책
슬롯머신의 가치 추정치에 불확실성이 있기 때문에 문제가 있다.
플레이어는 불확실성을 줄여 추정치의 신뢰도를 높여야 한다.
- 활용 : 지금까지 실제로 플래이한 결과를 바탕으로 가장 좋다고 생각되는 슬롯머신을 플레이 (탐욕 정책)
- 탐색 : 슬롯머신의 가치를 정확하게 추정하기 위해 다양한 슬롯머신을 시도
활용과 탐색은 tradeoff
강화 학습 알고리즘은 활용과 탐색이 균형을 어떻게 잡느냐의 문제이다.
이 균형을 맞추는 가장 기본적인 방법이 엡실론-탐욕 정책이다.
엡실론-탐욕 정책 : 0.1의 확률로 탐색을 하고 나머지는 활용을 하는 방식
4. 밴디트 알고리즘 구현
5. 비정상 문제
- 정상 문제 : 보상의 확률 분포가 변하지 않는 문제
- 비정상 문제 : 보상의 확률 분포가 변하도록 설정한 문제
비정상 문제에서는 시간이 흐르는 환경(슬롯머신)이 변하기 때문에 과거 데이터(보상)의 중요도는 점점 낮아져야 하고, 반대로 새로 얻은 보상의 가중치는 점점 커져야 한다.
표본 평균 vs 지수 이동 평균(지수 가중 이동 평균)
6. 정리
Reference
Deep Learning from Scratch 4