본문 바로가기

ReinforcementLearning

동적 프로그래밍으로 문제 해결하기

MDP란?

 - 가치함수와 기대보상으로 이루어짐.

 - Markov 특성은 MDP에 내재돼 있으며, 미래의 상태는 과거의 이력이 아닌 현재 상태로부터만 영향을 받는다.

 - MDP정의를 사용해 폴리시, 리턴함수, 예상리턴(Expected return), 행동-가치함수, 가치함수의 개념을 정의했다.

 

 

강화학습 알고리즘은 모델-기반과 모델-프리 방법으로 구분할 수 있다. 

모델-기반은 다음 행동을 계획하기 위해 환경 모델이 필요하며 모델-프리는 모델과는 독립적이며 환경과 직접 상호 작용해 학습할 수 있다.

폴리시 그래디언트 알고리즘은  그래디언트 상승을 통해 폴리시에서 직접 학습 하므로 온-폴리시 on-policy라고 한다,

가치함수 알고리즘은 오프-폴리시 off-policy이며 폴리시를 만들기 위해 행동-가치함수나 가치함수를 학습한다.

이러한 두가지 메서드를 결합해 두가지 방법의 장점을 결합할 수 있다.

 

DP란?

-일반적인 알고리즘 패러다임으로 한개의 문제를 겹치는 여러 하위 문제로 나눈 후 하위 문제의 솔루션을 결합해 원래 문제의 해결책을 찾아낸다.

- 강화학습에 사용 될 수 있으며, 가장 간단한 접근법중 하나이다. 이 알고리즘은 완벽한 환경 모델을 제공받아 최적의 폴리시를 산출하는데 적합하다.

- 제한된 수의 상태와 행동으로 구성된 환경의 전체 모델을 알고 있으면 dp 를 사용할 수 있다.

- DP의 단점은 정확한 환경 모델이 필요하고 그로 인해 다양한 문제에 적용하기 어렵다는 것이다.

 

 

 

  • MDP란 무엇인가?
    • MDP는 상태, 행동, 보상, 전이 확률로 정의할 수 있다.
    • MDP를 해결 한다는 것은 각각의 상태에서 예상되는 보상을 최대화하는 폴리시를 찾는다는 의미이다.
  • 확률적 폴리시란 무엇인가?
    •  확률적 폴리시는 행동 분포를 고려해야 할 떄 사용한다.
    • 일반적으로 확률적 폴리시는 범주형 또는 가우시한 형태를 갖는다.
    • (폴리시는 주어진 상태에서 취해야 할 행동을 선택하며 결정론적 또는 확률적 폴리시로 구분할 수 있다.)
  • 다음 타임스텝에서 리턴을 이용해 현재 타임스텝의 리턴을 어떻게 정의할 수 있는가?
    •  
  • 벨만 방정식은 왜 그렇게 중요한가?
    • 행동-가치함수와 가치함수는 모두 후속 상태의 가치로 정의할 수 있으며 이를 벨만 방정식이라고 한다. 이 방정식은 가치 함수를 반복해 계산하는 방법을 제공해 도움이 된다. 최적의 가치함수를 사용하면 최적의 폴리시를 찾아낼 수 있다.
  • DP 알고리즘의 적용을 어렵게 만드는 요인은 무엇인가?
    • DP는 차원의저주 (상태의 수에 따라 복잡성이 기하급수적으로 증가) 때문에 실행하기 어렵지만 폴리시 평가와 이터레이션 아이디어는 일반화된 generalized 방법을 사용하므로 대부분의 강화학습 알고리즘이 핵심이다.
  • 폴리시 평가란 무엇인가?
    • DP알고리즘은 부트스트래핑을 사용해 상태가치 state value를 추정하고 폴리시 평가와 개선이라는 두가지 프로세스를 통해 최적의 폴리시를 학습한다.
    • 폴리시 개선은 폴리시 평가 프로세스에서 얻은 가치함수를 사용해 폴리시를 개선한다.
    • 폴리시 평가는 임의의 폴리시에 대한 상태 가치함수를 계산한다.
  • 폴리시 이터레이션과 가치 이터레이션은 어떻게 다른가?
    • 폴리시 개선과 평가를 결합해 폴리시 이터레이션 알고리즘과 가치 이터레이션 알고리즘을 만들 수 있다.
    • 두 알고리즘의 차이를 알아보면 폴리시 이터레이션은 폴리시 평가와 개선을 반복적으로 실행하는 반면 가치 이터레이션은 두 프로세스를 단 한번의 폴리시 개선 업데이트로 결합한다는 점이다.

 

파이썬 기반 강화학습 알고리듬 책을 읽고, 그 책의 질문 부분에 대한 답변을 작성한것 입니다.

 

 

 

 

 

'ReinforcementLearning' 카테고리의 다른 글

확률 기반 PG최적화 학습  (0) 2023.04.02
Deep Q-Network  (0) 2023.04.02
Q-러닝과 SARSA 애플리케이션  (0) 2023.04.02
강화학습 사이클과 openAI Gym 구현하기  (0) 2023.04.02
강화학습  (0) 2023.04.02