728x90

머신러닝에는 세종류가 있다.

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): 다음 상태를 예측하는 함수

현재 상태 St에서 행동 a를 취했을 때, 다음 상태 s′로 전이할 확률을 나타낸다.

  • R (Reward Function): 다음에 받을 보상을 예측하는 함수

현재 상태 St에서 행동 a를 취했을 때, 다음에 받을 보상 Rt+1​의 기대값을 나타낸다.

 

policy는 현재 state에서 어디로 갈지 확률

 

value function은 현재 state가 얼마나 좋은지 판단
다 -1인 이유 : 에이전트가 목표(Goal) 지점에 도달하기 전까지 매 순간마다 페널티를 받기 때문

 

 

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

728x90
doocong22