머신러닝에는 세종류가 있다.
superviesde learning, unsupervised learning, reinforcement learning. 이 셋 중에서 이 글에서는 RL에 대해 배워볼 것이다.
RL은 다른 머신러닝과 다르게 오직 reward로 판단한다. RL은 이전 행동과 이후 행동이 연관이 있다고 생각하기 때문이다.
reward는 스칼라 피드백 시그널로 나타난다. step t에서 agent가 얼마나 잘 했는지는 나타낸다. agent의 역할은 누적 리워드를 최대화 하는 것이다.
RL의 핵심, Agent와 Environment(환경)
Environment는 Agent가 살아가고 상호작용하는 세상이다. 상호작용의 각 단계에서 agent는 Env의 (Possibly partial) observation 을 보고, 어떤 액션을 취할지 정한다. agent가 행동함에 따라서 Env는 바뀌는데, 행동과 관련없이 바뀔수도있다.
Agent는 env로부터 reward를 받기도 하는데, 여기서 reward는 agent의 action이 얼마나 좋았는지를 말해주는 지표이다. Agent의 목표는 누적보상(cumulative reward)를 극대화하는것이고, 이 누적보상을 Return이라고 부른다.
state는 environment의 현재 상태에 대한 모든 정보를 말한다. 즉 한 step에 있어서 Environment와 State는 동의어이다. 반면 Observation은 state의 부분집합으로 몇몇 정보를 가지고 있지 않을 수 있다. --> 먼소리지..
그런데 실제 논문에서는 딱히 state와 observation을 구별하지않고 쓰는 경우가 많다고 한다ㅎㅎ. 예를들어, action은 엄밀하게 말해서 observation에 의해 정해지지만, state에 따라 정해진다고도 많이 쓴다.
St+1에 있을 때 Markov decision process(MDP)에 따라 St만 있어도 그전까지의 히스토리가 다 포함이 되어있어서 충분하다.
Partial observability
- 부분 관찰 가능성이란 에이전트(agent)가 환경의 전체 상태를 직접적으로 알 수 없는 상황을 의미한다. 에이전트는 환경의 일부 정보만 관찰할 수 있으며, 그 정보로 전체 환경 상태를 추론하거나 추정해야 한다.
- 예를 들어:
- 로봇: 카메라로 주변을 관찰할 수 있지만, 로봇은 자신이 정확히 어디에 있는지(절대 위치)를 알 수 없음. 카메라에 보이는 이미지로 현재 위치를 추측해야 함
- 트레이딩 에이전트: 주식 거래 agent는 현재의 주가만을 볼 수 있으며, 시장의 전체 상태나 미래의 가격 변동을 정확히 알 수 없음
- 포커 에이전트: 포커 게임에서 agent는 공공 카드만 볼 수 있고, 상대방의 카드나 게임의 모든 변수를 알 수 없음
에이전트 상태 ≠ 환경 상태
- 에이전트 상태(agent state)는 에이전트가 환경을 관찰하고 이를 바탕으로 형성한 자신의 내부 상태이다.
- 환경 상태(environment state)는 실제로 존재하는 환경의 모든 정보를 포함한 상태이다.
- 부분 관찰 가능성에서는 에이전트 상태가 환경 상태와 동일하지 않다. 에이전트는 전체 환경 상태를 알 수 없기 때문에, 제한된 정보로 추론된 상태를 가지고 행동한다.
부분 관찰 가능 마르코프 결정 과정 (POMDP)
- POMDP는 에이전트가 부분적으로만 환경을 관찰할 수 있는 상황에서 최적의 결정을 내리는 문제를 수학적으로 모델링한 것이다.
- **마르코프 결정 과정(MDP)**는 에이전트가 모든 환경 상태를 완전히 알고 있는 경우에 사용하는 모델이다. 하지만 POMDP에서는 에이전트가 관찰할 수 있는 정보가 제한되어 있어 불확실성이 존재한다.
- POMDP에서 에이전트는 주어진 관찰 정보와 과거의 행동 및 보상을 바탕으로 최적의 정책(policy)을 학습한다.
- Policy: 에이전트의 행동 방식을 결정하는 함수이다. 어느 방향으로 갈 확률.
Deterministic policy: a = π(s) Stochastic policy: π(a|s) = P[At = a|St = s]
- Value function: 각 상태 또는 행동이 얼마나 좋은지를 평가하는 함수이다. 미래 reward가 얼마나 좋을지.
vπ(s) = Eπ Rt+1 + γRt+2 + γ 2Rt+3 + ... | St = s -> 감마를 둬서 현재와 나중과 비중 차이를 둠
-
Model: 에이전트가 환경을 표현한 것이다. 에이전트 시점에서의 환경. 환경이 다음에 무엇을 할지 예측하는 역할을 하는 것이다.
- P (Transition Probability): 다음 상태를 예측하는 함수
- R (Reward Function): 다음에 받을 보상을 예측하는 함수
Categorizing RL agents (1)
- Value Based
- No Policy (Implicit)
- Value Function
- Policy Based
- Policy
- No Value Function
- Actor Critic
- Policy
- Value Function
Categorizing RL agents (2)
- Model Free
- Policy and/or Value Function
- No Model
- Model Based
- Policy and/or Value Function
- Model
탐색과 활용 (Exploration and Exploitation)
- 강화 학습은 시행착오 학습과 비슷하다.
- 에이전트는 환경에 대한 경험을 통해 **좋은 정책(Policy)**을 발견해야 한다.
- 과정 중에 너무 많은 보상을 잃지 않으면서 이러한 정책을 발견해야 한다.
- 탐색(Exploration)은 환경에 대한 더 많은 정보를 찾는 것이다. - 안 가봤던 곳을 가는 것(새로운 시도)
- 활용(Exploitation)은 이미 알고 있는 정보를 활용하여 보상을 극대화하는 것이다. - 가봤던 곳 가는거
Prediction and Control
Prediction : 주어진 policy로 미래를 평가한다. value function을 찾는 것이다.
Control : best policy를 찾는 것이다.
내가 헷갈려서 정리한 부분
Policy와 Value Function의 차이
- Policy (정책): 에이전트가 어떤 상태(state)에서 어떤 행동(action)을 취할지를 결정하는 규칙 또는 함수이다. Policy는 특정 상태에서 행동을 선택하는 확률 분포로 나타낼 수 있다.
- 예를 들어, 특정 상태에서 "오른쪽으로 이동할 확률이 70%, 위로 이동할 확률이 30%" 이렇게 정해질 수 있다.
- Value Function (가치 함수): 특정 상태(state)나 상태-행동 쌍(state-action pair)(이건 Q로 볼 수 있음)이 얼마나 좋은지를 평가하는 함수이다. 이것은 그 상태에서 미래에 받을 총 보상의 기대값을 나타낸다.
- 예를 들어, 상태 A에서 앞으로 받을 보상의 기대값이 10이라면, 상태 A의 value는 10이다.
예시로 설명
생각해보세요, 당신이 미로를 푸는 에이전트라고 합시다.
- Policy가 주어진 경우:
- 예를 들어, 어떤 상태에서는 "항상 오른쪽으로 이동하라"는 정책이 주어졌다고 가정합시다. 이 경우, Policy는 이미 주어져 있으므로, 각 상태에서 무엇을 해야 할지가 이미 결정되어 있습니다.
- 이 상황에서 Value Function을 계산하는 것은, 주어진 Policy를 따른다면 특정 상태에서 앞으로 받을 보상이 얼마나 될지를 평가하는 것입니다. 예를 들어, 특정 상태에서 오른쪽으로 이동하면 미래에 받을 보상이 평균적으로 5가 될 수 있습니다. 그렇다면 그 상태의 Value는 5가 됩니다.
- Policy를 찾는 경우:
- 이 경우는 에이전트가 처음에 어떤 정책을 가져야 할지 모릅니다. 에이전트는 다양한 상태에서 행동을 취해보며, 각 상태가 얼마나 좋은지 (즉, Value가 높은지) 평가해야 합니다. 그런 다음, 에이전트는 Value Function을 최대화하는 방향으로 Policy를 수정해 나가야 합니다.
- 예를 들어, 처음에는 모든 상태에서 무작위로 움직이다가, 특정 상태에서 오른쪽으로 가면 항상 보상이 크다는 것을 발견하면, 그 상태에서 오른쪽으로 가는 행동의 확률을 높이는 방향으로 Policy를 수정할 수 있습니다.
Policy가 주어졌는데 왜 Value Function을 계산할까?
이미 Policy가 주어졌더라도, 그 Policy가 얼마나 좋은지를 평가하는 것이 중요합니다. 주어진 Policy가 미래에 어떤 결과를 초래할지 예측하고, 만약 그 Policy가 좋지 않다면, 더 나은 Policy로 수정할 수 있기 때문입니다.
Q. 그럼 policy가오른쪽으로 이동할 확률이 70%, 위로 이동할 확률이 30%이렇게 주어지면? 어떻게 value func계산해?
가정
- 에이전트가 특정 상태 s에 있다고 가정합시다.
- 이 상태에서 오른쪽으로 이동할 확률이 70%, 위로 이동할 확률이 30%입니다.
- 오른쪽으로 이동했을 때 다음 상태 s′로 전이하며 받는 보상이 10이라고 하고, 위로 이동했을 때 다음 상태 s′′로 전이하며 받는 보상이 5라고 합시다.
Value Function 계산
Value Function V(s)는 에이전트가 상태 s에서 policy를 따랐을 때 미래에 받을 기대 보상의 합입니다. 주어진 정책을 바탕으로 각 행동의 결과에 따라 받을 보상을 계산할 수 있습니다.
- 오른쪽으로 이동할 경우:
- 다음 상태 s′에서 받을 보상은 10
- 이 행동이 선택될 확률은 70%
- 따라서, 이 경우의 기댓값은 0.7×10=7이 됩니다.
- 위로 이동할 경우:
- 다음 상태 s′′에서 받을 보상은 5
- 이 행동이 선택될 확률은 30%
- 따라서, 이 경우의 기댓값은 0.3×5=1.5가 됩니다.
이 두 경우를 합치면, 상태 s의 value function V(s)는 다음과 같이 계산됩니다: V(s)=0.7×10 + 0.3×5 = 8.5
Prediction이랑 Control 순서는?
Prediction (예측) -> Control (제어)
Prediction 단계
- 고정된 Policy를 사용하여 각 상태의 Value Function을 계산합니다.
- 여기서의 Value Function은 현재 주어진 정책을 따를 때, 각 상태에서 미래에 받을 보상의 기대값을 의미합니다.
- 이 단계에서는 policy가 고정되어 있기 때문에, 그 정책이 얼마나 좋은지를 평가하는 데 초점을 둡니다.
Control 단계
- Prediction 단계에서 계산한 Value Function을 바탕으로 Policy를 최적화합니다.
- 이제 이 Value Function을 이용해서 더 나은 정책을 찾습니다.
- 기존의 정책을 수정하거나, 더 나은 행동을 선택할 수 있도록 policy를 개선해 나갑니다.
- 예를 들어, 특정 상태에서 오른쪽으로 가는 것이 더 나은 보상을 가져온다는 것을 알게 되면, 오른쪽으로 갈 확률을 높이는 방향으로 policy를 조정할 수 있습니다.
최종적으로:
- Prediction 단계에서는 고정된 정책으로 상태의 가치를 평가하고,
- Control 단계에서는 그 평가를 바탕으로 정책을 개선하여 더 나은 결과를 얻도록 합니다.
참고 : https://velog.io/@kjb0531/%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC1
'AI > RL' 카테고리의 다른 글
[RL] 3-1 Model-Free Prediction - (TD lambda) (2) | 2024.10.12 |
---|---|
[RL] 3-1 Model-Free Prediction - (TD) (0) | 2024.10.09 |
[RL] 3-1 Model-Free Prediction - (MC) (0) | 2024.10.09 |
[RL] 2-2 Planning by Dynamic Programming (0) | 2024.10.09 |
[RL] 2-1 Markov Decision Processes (3) | 2024.09.29 |