‘파이썬과 케라스로 배우는 강화학습’ 세미나 2

2장을 읽고 강화학습의 기초인 MDP와 벨만 방정식을 이해합니다.

제목처럼 강화학습의 기초를 아는 것이 목적입니다. 너무 깊이 들어갈 필요 없습니다. 저자의 설명에 따라 조금씩 꾸준하게 따라가면 됩니다. 포기하지 않는 것이 중요한 장입니다.

p29. 강화학습은 순차적으로 행동을 계속 결정해야 하는 문제를 푸는 것이다. 이러한 문제를 수학적으로 표현한 것이 MDP이다.

p28. MDP를 통해 정의된 문제에서 에이전트가 학습하기 위해 가치함수라는 개념을 도입하는데, 이 개념은 벨만 방정식과 연결된다.

MDP는 상태, 행동, 보상함수, 상태 변환 확률, 감가율로 구성되어 있다.

강화학습에서는 사용자가 문제를 정의한다. 문제를 잘못 정의하면 에이전트가 학습을 못 할 수도 있다. 따라서 문제의 정의는 에이전트가 학습하는 데 가장 중요한 단계 중 하나이다. 에이전트를 구현하는 사람은 학습하기에 많지도 않고 적지도 않은 적절한 정보를 에이전트가 알 수 있도록 문제를 정의해야 한다.

p30. S는 에이전트가 관찰 가능한 상태의 집합이다. 상태라는 말의 의미가 모호할 수 있는데 “자신의 상황에 대한 관찰”이 상태에 대한 가장 정확한 표현이다. 사용자는 상태를 정의해 줘야 하는데 이때 ‘내가 정의한 상태가 에이전트가 학습하기에 충분한 정보를 주는 것인가?’라는 질문을 해야 한다.

p32. 어떤 집합 안에서 뽑을 때마다 달라질 수 있는 것을 ‘확률 변수’라고 한다. 시간 t에 에이전트가 있을 상태 또한 때에 따라 달라지기 때문에 상태를 확률변수로 보는 것이다.

p33. 어떤 상태에서 에이전트가 가능한 행동의 집합은 A이다.

p34. 보상은 에이전트가 학습할 수 있는 유일한 정보로서 환경이 에이전트에게 주는 정보이다. 보상함수는 어떤 상태에서 어떤 행동을 했을 때 받을 보상에 대한 기댓값이다.

p36. 에이전트는 ‘좋은 행동’을 했기 때문에 보상을 받는 것이다.

p37. 상태의 변환에도 확률적인 요인이 들어간다. 상태 변환 확률은 환경의 일부이다. 환경은 에이전트가 행동을 취하면 상태 변환 확률을 통해 다음에 에이전트가 갈 상태를 알려준다.

p38. 에이전트는 그 보상이 얼마나 시간이 지나서 받는지를 고려해서 감가시켜 현재의 가치를 따진다. 더 먼 미래에 받을 수록 에이전트가 받는 보상의 크기는 줄어든다.

p39. 정책은 모든 상태에서 에이전트가 할 행동이다. 에이전트가 학습하고 있을 때는 정책이 하나의 행동만을 선택하기보다는 확률적으로 여러 개의 행동을 선택할 수 있어야 한다.

상태는 행동의 가능성을 제약할 수 있습니다. 어떤 상태에서 어떤 행동은 할 수 있지만 어떤 행동은 할 수 없을 수 있습니다. 그리드월드에서 (1, 1)에 에이전트가 있을 때는 ‘위’와 ‘왼쪽’으로 이동은 할 수 없습니다.

감가율은 최적의 정책을 찾을 수 있도록 합니다.

에이전트가 다수의 정책을 탐색할 수 있도록 하려면, 행동의 결정과 상태 변환이 확률적으로 일어나야 합니다.

가치함수

p40. 에이전트가 현재 상태에서 앞으로 받을 보상들을 고려해서 행동을 결정한다. 그러면 환경은 에이전트에게 실제 보상과 다음 상태를 알려준다. 이러한 과정을 반복하면서 에이전트는 앞으로 받을 것이라 예상했던 보상에 대해 틀렸다는 것을 알게 된다. 그러한 과정에서 에이전트는 실제로 받을 보상을 토대로 자신의 정보와 정책을 바꿔나간다. 이러한 학습 과정을 무한히 반복한다면 가장 많은 보상을 받게 하는 정책을 학습할 수 있다. 이때 받을 것이라 예상하는(기대하는) 보상을 가치함수라 한다.

p47 . 벨만 기대 방정식은 현재 상태의 가치함수와 다음 상태의 가치함수 사이의 관계를 말해주는 방정식이다. 강화학습은 벨만 방정식을 어떻게 풀어나가느냐의 스토리이다.

p48. 가치함수는 상태 가치함수이다. 에이전트는 가치함수를 통해 어떤 상태에 있는 것이 얼마나 좋은지 알 수 있다. 에이전트는 가치함수를 통해 다음에 어떤 상태로 가야할 지 판단할 수 있다. 어떤 상태로 가면 좋을지 판단한 후에 그 상태로 가기 위한 행동을 따져볼 것이다.

p51. 가치함수는 어떤 상태의 가치에 대한 기대를 나타낸다. 어떤상태의 가치함수는 에이전트가 그 상태로 갈 경우에 앞으로 받을 보상의 합에 대한 기댓값이다. 가치함수는 현재 에이전트의 정책에 영향을 받는다.

큐함수

p48~49. 어떤 상태에서 각 행동에 대해 따라 가치함수를 만들어서 그 정보를 얻을 수 있다면 에이전트는 굳이 다음 상태의 가치함수를 따져보지 않아도 어떤 행동을 해야 할지 선택할 수있다. 이처럼 어떤 상태에서 어떤 행동이 얼마나 좋은지 알려주는 함수를 햄동 가치함수, 간단하게 큐함수라 한다.

큐 함수는 상태, 행동이라는 두 개의 변수를 가진다.

강화학습에서 에이전트가 행동을 선택하는 기준으로 가치함수보다는 보통 큐함수를 사용한다.

벨만 기대 방정식

p50. 벨만 방정식은 현재 상태의 가치함수와 다음 상태의 가치함수 사이의 관계를 식으로 나타낸 것이다. 벨만 기대 방정식이라고 하는 이유는 식에 기댓값의 개념이 들어가기 때문이다.

p53. 벨만 기대 방정식을 이용해 현재의 가치함수를 계속 업데이트하다 보면 참값을 구할 수 있다. 참값이라는 것은 최대의 보상을 이야기하는 것이 아니다. 현재의 정책을 따라갔을 경우에 에이전트가 얻을 실제 보상의 값에 대한 참 기댓값이다.

p54. 처음에 가치함수의 값들의 의미가 없는 값으로 초기화된다. 벨만 기대 방정식을 통해 계속 계산을 진행하다보면 언젠가 식의 왼쪽 항과 오른쪽 항이 동일해 진다.

방정식이므로 우변과 좌변이 같아야 합니다. 참 값을 구한다는 것은 방정식을 푼다는 것입니다. 즉 좌변과 우변을 같게하는 가치함수들의 값을 구하는 것입니다.

벨만 최적 방정식

p54. 참 가치함수는 어떤 정책을 따라서 움직였을 때 받게 되는 보상에 대한 참 값이다. 가치함수의 정의가 현재로부터 미래까지 받을 보상의 총합인데 이 값이 얼마가 될지에 대한 값이다. 최적의 가치함수는 수많은 정책 중에서 가장 높은 보상을 주는 가치함수이다.

p55. 가치함수는 결국 정책이 얼마나 좋은지를 말해준다. 모든 정책에 대해 가장 큰 가치함수를 주는 정책이 최적 정책이다. 최적 정책을 따라걌을 때 받을 보상의 합이 최적 가치함수이다.

p56. 선택 상황에서 판단 기준은 큐함수이며, 최적 정책은 언제나 이 큐함수 중에서 가장 높은 행동 하나를 하는 것이다.

p58~59. 에이전트가 어떤 정책이 더 좋은 정책인지 판단하는 기준이 가치함수이다. 가치함수는 현재 상태로부터 정책을 따라갔을 때 받을 것이라 예상되는 보상의 합이다.

에이전트는 정책을 업데이트할 때 큐함수를 사용한다.

벨만 기대 방정식은 특정 정책을 따라갔을 때 가치함수 사이의 관계식이다.

최적의 정책은 최적의 가치함수를 받게 하는 정책이며, 그때 가치함수 사이의 관계식이 벨만 최적 방정식이다.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*