‘파이썬과 케라스로 배우는 강화학습’ 세미나 8
이번 세미나와 다음 세미나는 그리드월드 구현이 목표입니다.
그리드월드를 구현하기 위해서 먼저 2장 내용을 리뷰합니다. 리뷰 방식은 ‘그리드월드를 구현하려면’에 초점을 맞추고 내용을 읽어가면서 머릿속에 떠오르는 생각들을 그대로 옮겨 보는 것입니다.
뭐가 문제야? 순차적 행동 결정
순차적이라는 것은 순서 즉 시간과 관련이 있다는 것. 연속적인 모든 시간이 중요한게 아니고 행동을 결정해야 하는 시간이 중요하다는 것(타임스텝).
결정해야 할 게 뭐지? 어떤 행동을 할 것인지 결정
어떤 행동을 할 것인지를 결정한다는 것은 가능한 행동들이 다수라는 것.
‘어떤 행동들이 가능한가?’에 답할 수 있어야 한다.
결정을 한다는 것은 조건이 있다는 거지, 한 번의 결정이 아니라 순차적으로 여러 번의 결정을 한다는 것은 조건이 달라진다는 것
‘너 지금 어떤 조건 하에 있는거야?’ 라고 묻는 것은 ‘너 지금 어떤 상황에 처해 있어?’ ‘너 지금 어떤 상태야?’라고 묻는 것
어떤 상태에 있는지 알려면 상태를 판단하기 위한 정보가 필요하지. 정보는 능동적으로 직접 수집할 수도 있고, 환경에 의해서 수동적으로 주어질 수도 있고. 이러한 정보는 직접 수집하던 환경에 의해 주어지던 observation 해야 하는 것.
이러 이러한 조건(상태)에서 이러 이러한 행동을 하기로 결정한다는 것은 규칙이 있다는 거 – 행동결정에 대한 규칙. 행동결정에 대한 규칙은 결국 어떤 상태에서 어떤 행동을 할 것인지에 대한 규칙
‘가능한 행동들 중에서 어떤 행동을 할 것인지를 어떻게 결정하는가?’, ‘어떤 행동을 할 것인지를 결정하기 위해 어떤 정보들이 필요한가?’에 답할 수 있어야 한다.
첫 번째 질문에 대한 답은 ‘행동결정에 대한 규칙’으로 표현되고, 두 번째 질문에 대한 답은 ‘상태’로 표현된다.
에이전트의 행동결정에는 대전제가 있다. 풀어야 할 문제(목표)가 있고, 문제를 푸는 기준이 주어진다.
문제를 푸는 기준은 ‘보상의 합이 가장 커지도록 하는 것이 목표에 도달하는 것이 되도록 해야 한다’는 것이다.
보상에는 감가율이 적용된다. 감가율이 적용되면 자연스럽게 최적의 경로를 선택하게 된다.
‘어떤 행동들이 가능한가?’에 대한 질문은 ‘문제를 풀기 위해 어떤 행동들이 요구되는가?’로 바뀐다.
보상의 합이 가장 커지도록 하는 것이 목표에 도달하는 것이 되도록 ‘보상을 계획’해야 한다.
에이전트는 목표에 도달하는 다양한 경로를 탐색하면서 학습한다. 다양한 경로를 탐색하려면 한 번의 탐색에 대한 시작과 끝(에피소드)이 정해져 있어야 한다.
‘한번의 에피소드는 어떻게 시작되고 어떻게 끝나나?’에 답할 수 있어야 한다.
에이전트가 어떤 상태에서 어떤 행동을 하기로 결정하면 환경은 에이전트에게 보상을 준다. 에이전트는 주어진 환경에 대해서 모르기 때문에 보상이라는 피드백을 통해 환경에 대해 학습한다. 에이전트는 학습의 과정을 통해 어떤 상태에서 어떤 행동을 할 것인지를 정해둔다(정책). 에이전트는 행동결정의 대전제인 보상의 합이 최대가 되도록 학습이 더해짐에 따라 정책들을 조정한다.
‘어떻게 정책들을 조정해 갈 것인가?’ 이것이 문제해결의 핵심이다.
에이전트가 학습을 시작하기 전에는 보상에 대한 경험이 없기 때문에 정책은 초기화되어야 한다.
에이전트는 학습량을 늘리기 위해서 환경을 탐색해야 한다. 탐색하려면 정책을 벗어난 행동을 하도록 결정해야 한다. 학습량이 점차 누적될 수록 탐색을 줄여야 한다.
‘어느 정도의 탐색율로 시작하고, 어떤 기준에 의해 어느 수준으로 탐색율을 조정해 나갈 것인가?’에 대해 답할 수 있어야 한다.
에이전트의 환경 또한 이것을 포함하는 더 큰 전체의 부분이 될 수 있기 때문에 환경은 변한다. 변하는 환경에 속한 에이전트는 불확실성 하에 있다. 환경으로 부터 주어지는 것들은 모두 확률적이다.
에이전트가 어떤 상태에서 가능한 다수의 행동 중에서 어떤 행동을 하기로 결정할 지 또한 확률적이다 – 정책은 확률적이다.
그리드월드에서
- 어떤 문제?
- 격자로 된 세상이 있다. 에이전트는 어떤 격자에 놓여진다. 에이전트는 장애물(녹색 삼각형이 위치한 곳)을 피해 목표지점(파란색 원이 위치한 곳)에 가장 적게 움직여서 도달해야 한다.
- 에피소드
- 에이전트가 특정 격자에 놓여지면서 시작되고, 장애물이나 목표지점의 위치에 도달하면서 끝난다.
- 에이전트의 가능한 행동들?
- up, down, left, right
- 어떤 행동을 할지 어떻게 결정하는가?
- 행동결정에 대한 대전제를 빼면 특별한 행동결정에 대한 규칙은 없다.
- 현재 어디에 있는지 정도만 알면 된다. 에이전트의 격자상의 위치(좌표).
- 그리드월드의 상태들(상태 공간)은 모든 격자의 위치로 총 25개가 있다.
- 목표에 도달하는 방법은? 최적의 방법은? 예상할 수 있는 예외적인 상황은?
- 장애물을 피해 목표지점에 도달한다. 다양한 경로가 존재한다.
- 최적의 방법은 이동 거리를 가장 짧게 하는 것이다. 이는 감가율을 적용하는 방법을 택하면 자동적으로 해결된다.
- 최적의 방법이 보상의 합이 가장 큰 것이 되도록 하려면?
- 장애물에는 – 값의 보상이 주어지도록
- 목표지점에는 + 값의 보상이 주어지도록
- 정책 초기화, 탐색율, 탐색율 조정
- 어떤 방법으로 정책을 갱신할 것인가?
‘어떤 방법으로 정책을 갱신할 것인가?’에 대한 답이 ‘강화학습으로’.
상태에 가치를 부여할 수 있다면? 에이전트는 가장 높은 가치가 부여된 상태들을 따라가도록 정책을 갱신하면 된다.
그렇게 하려면 상태의 가치를 구해야 하고, 학습 경험에 따라 상태의 가치를 갱신할 수 있어야 한다.
보상은 환경에 의해 주어지는 확률적인 값으로 기대값의 의미를 가진다.
상태의 가치를 어떻게 구할 수 있을까? 에피소드가 끝날 때 감가율을 적용한 보상의 합(반환값)으로 – p45 수식 2.21
수식 2.24 – 감가율과 환경에 의해 주어지는 보상만 알면 구할 수 있다. 정책은 에이전트가 아는 것
에이전트는 전이 가능한 상태들을 들여다보고 가장 큰 가치가 부여된 상태로 이동하기 위한 행동을 결정한다.
상태에 부여한 가치를 선택 가능한 행동들에 부여할 수 있다면?
수식 2.27 – 가치함수와 마찬가지로 감가율과 보상만 알면 구할 수 있다.
수식 2.35 – 모든 상태들에 대한 이전 가치 값을 알아야 한다 – 모든 상태들에 대한 이전 가치 값이 관리되어야 한다.
이렇게 할 경우 이전의 상태 가치 값을 사용함으로 기대값을 사용할 필요가 없다.
최적 정책
정책이라는 것은 어떤 상태에서 어떤 행동을 할 것인지를 정하는 것
학습을 통해 어떤 행동을 할 것인지 조정 – 조정하려면 조정할 값이 필요 – 확률적이라는 개념을 사용 – 어떤 행동을 할 것인지에 확률 값 부여
어떤 상태에서 가능한 행동들마다 확률 값을 부여하고 그 값이 조정되도록 – 학습을 통해 보상이 커지는 행동의 확률 값이 커지도록 – 이렇게 되도록 하는 것이 강화학습
어떤 상태에서 확률 값이 가장 큰 값을 선택하는 것이 최적 정책