My Blog

강화학습(MDP 모를때 최고의 정책 찾는 방법-TD컨트롤 SARSA)


SARSA 정의

SARSA(State-Action-Reward-State-Action)는 강화학습에서 MDP(Markov Decision Process)의 전체 구조를 명확히 모르는 경우에 사용할 수 있는 온-폴리시(on-policy) 학습 방법입니다. 이 방법은 에이전트가 경험을 통해 학습하면서 동시에 행동을 선택하는 방식을 따릅니다. SARSA는 상태(State)->행동(Action)->보상(Reward)->다음 상태(State)->다음 행동(Action)의 흐름을 따라 학습합니다. 이 과정에서 에이전트는 현재 상태에서 행동을 선택하고, 그 결과로 보상을 받고, 다음 상태로 이동한 뒤 다음 행동을 선택합니다. 이러한 일련의 과정을 통해 가치 함수를 업데이트합니다. 이 알고리즘은 정책 평가 단계에서 몬테카를로 방법 대신 TD(Temporal Difference) 를 이용해 Q를 계산하는 방법으로 q(s,a)를 구하게 됩니다.

온-폴리시 학습 정의

온-폴리시(On-policy) 학습은 강화학습의 중요한 개념 중 하나입니다. 이 방식에서는 에이전트가 평가하고 개선하려는 정책(policy)을 통해 학습 환경과 상호 작용하고, 이 과정에서 얻은 경험을 바탕으로 정책을 개선합니다. 즉, 에이전트는 학습 중에 자신이 따르고 있는 정책에 따라 행동을 선택하고, 그 결과로 얻은 데이터를 사용하여 동일한 정책을 평가하고 개선합니다. 온-폴리시 학습의 특징은, 일관성: 에이전트가 학습과정에서 사용하는 정책과 평가 및 개선을 위해 사용하는 정책이 동일합니다. 자기 일관적 탐색: 학습 과정에서 에이전트는 자신의 현재 정책에 따라 행동을 탐색하고, 이를 통해 얻은 경험으로 정책을 수정합니다. 피드백 루프: 에이전트의 행동이 미래의 학습 데이터를 생성하는 피드백 루프를 형성합니다. 주요 온-폴리시 알고리즘으로는, SARSA (State-Action-Reward-State-Action): 에이전트가 현재 상태에서 행동을 선택하고, 보상을 받고, 다음 상태와 그 상태에서 선택할 행동을 관찰하여 Q 값을 업데이트합니다. SARSA(λ): SARSA의 확장으로, 경험을 통한 학습을 더 효율적으로 만들기 위해 엘리지빌리티 트레이스(Eligibility Traces)를 사용합니다. 온-폴리시 학습의 장단점 장점: 에이전트가 학습과정에서 사용하는 정책에 따라 행동하기 때문에, 정책에 대한 직접적인 평가와 개선이 가능합니다. 탐색과 이용 사이의 균형을 자연스럽게 유지할 수 있습니다. 단점: 좋은 탐색 전략이 필요하며, 이는 정책의 품질에 직접적인 영향을 미칩니다. 때때로 비효율적인 탐색으로 인해 학습 속도가 느려질 수 있습니다. 온-폴리시 학습 방법은 강화학습에서 에이전트가 환경과의 상호작용을 통해 자신의 정책을 계속 평가하고 개선해 나가는 과정을 포함합니다. 이는 학습 과정에서 정책의 일관성을 유지하면서도, 동시에 효과적인 학습을 가능하게 합니다. 다른 장에서는 온 폴리시 학습과 오프 폴리시 학습의 차이점에 대해 다시 자세히 기록하도록 하겠습니다.

SARSA 학습과정

초기화: 가치 함수 Q(s, a)를 초기화합니다. 보통 모든 상태와 행동 쌍의 가치를 0 또는 작은 무작위 값으로 설정합니다. 에피소드별 반복: 각 에피소드에 대해 다음의 단계를 반복합니다: 초기 상태와 초기 행동을 선택합니다. 에피소드가 끝날 때까지 다음을 반복합니다: 선택한 행동을 수행하고, 보상과 다음 상태를 관찰합니다. 다음 상태에서 정책(예: ε-greedy)을 사용하여 다음 행동을 선택합니다. Q 값 업데이트: Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)] 여기서 s와 a는 현재 상태와 행동, r은 받은 보상, s′와 a′는 다음 상태와 행동, α는 학습률, γ는 할인율입니다. 다음 상태와 다음 행동을 현재 상태와 행동으로 설정합니다. 여기서 자세히 보시면 벨만 기대방정식에서 나온 식임을 알수 있습니다. 기댓값 안의 샘플을 많이 모으면 결국 실제 가치와 유사해질 것이기에 에이전트가 자신의 정책함수를 이용해 주어진 MDP 환경에서 자유롭게 활동하도록 한 이후 한 스텝의 데이터 생성될때마다 TD타깃을 계산하여 기존의 테이블을 업데이트 하는 과정을 반복합니다.

SARSA 특징

온-폴리시 학습: 현재 정책에 따라 행동을 선택하고, 이 정책을 개선해 나가는 방식입니다. 탐색과 이용의 균형: 예를 들어 ε-greedy 정책을 사용하여, 대부분의 경우 최적의 행동을 선택하면서도 일정 확률로 무작위 행동을 선택해 탐색할 수 있습니다. 안정성과 일관성: 현재 정책을 따라 학습하기 때문에, 학습 과정이 비교적 안정적이고 예측 가능합니다.

몬테카를로 의사코드와 차이점

QAgent 클래스는 기존의 몬테카를로 방식의 의사코드와 유사하지만 아래의 update_table 함수부분이 달라지게 됩니다. 테이블을 업데이트하는 함수 부분이 달라지는데 몬테카를로에서는 history 전체를 인자로 받았지만, SARSA에서는 transition(트랜지션)을 인풋으로 받습니다. 트랜지션은 상태 전이 1번을 뜻하는데 상태 s에서 a를 해서 보상 r을 받고 상태 s프라임에 도달했다면 (s,a,r,s')이 하나의 트랜지션이 됩니다. TD학습은 샘플 하나만 생기면 바로 업데이트하기 때문에 몬테카를로의 history 대신 트랜지션을 이용해 업데이트 하는 방식을 하용하게 되고 업데이트 식도 SARSA 방법을 그대로 적용하게 됩니다. 그 외 나머지는 몬테카를로 방법의 환경구성과 다르지 않습니다.

SARSA 결과 해석

SARSA 방식으로 학습 알고리즘을 구성해 학습하게 되면 QAgent가 update_table함수를 호출하는 주기가 달라집니다. 이전 몬테카를로에서는 한 에피소드 전체가 끝난 후 업데이트 테이블을 호출했다면 이제는 한 스텝이 끝날 때마다 업데이트 테이블을 호출하게 됩니다. 해당 트랜지션 데이터를 이용해 바로 Q테이블을 업데이트하는 것으로 결국 각 상태에서 q밸류가 가장 높은 액션을 선택하게 되고 업데이트를 늘리면 최적의 해(optimal solution)을 찾게 됩니다.

Blog Home Back to Post List