티스토리 뷰
https://www.edwith.org/move37/lecture/59774/?isDesc=false
벨만 방정식이 어떻게 작동하는지 모른다면, 강화학습을 이해하는 데 어려움을 겪을 것이다.
벨만 방정식의 콘셉트
STATE = 무엇을 숫자로 표현할 것인가? 숫자로 표현되는 것 중에 에이전트가 찾아야 하는 어떠한 상태들
ACTION = 주어진 시간 어떠한 행동을 할 것인가? 에이전트가 해당 환경에 제공하는 input
REWARD = 환경에서 액션을 취했을 떄 에이전트에게 주어지는 보상. 이것은 해당 환경에 에이전트가 얼마나 잘 적응하고 있는지를 나타내는 척도로 정해야 한다.
예 : point가 얼마나 되었는지, 레벨이 얼마나 달성했는지, 등등
강화학습의 최종 목표
현재 상황에서, 가장 최적화된 행동을 통해 해당 환경에서의 장기적인 보상을 최대화하는 것이다.
벨만은 다이나믹 프로그래밍의 아버지로도 불린다.
다이나믹 프로그래밍은 복잡한 문제를 더 작은 하위 문제로 나누고, 하위 문제를 재귀적으로 엮어서 큰 문제를 해결하는 것이다.
벨만 방정식은 어떠한 상황에 대해 답을 제공하는가?
해당 상태에서 가능한 어떠한 행동을 했을 때, 가장 좋은 장기적인 보상을 가지는가?
해당 상태의 VALUE는 무엇인가?
-> 이게 중요한 이유는 현재 상태에서 최선의 결정을 내리고 싶기 때문이다.
로봇이 넘어졌을 때 일어나는 상태에 도달하는 것은 reward가 음수나 더 낮을지라도 우리가 강화하고 싶은 것이다.
넘어진 상태 -> 일어나는 상태
즉, 벨만 방정식은 우리가 각 상태의 장점이나 단점에 상대적으로 기대되는 보상을 평가하는 데 도움이 된다.
벨만 방정식
가장 기본적인 벨만 방정식이다.
이것은 결정론적 환경에 대한 것이다.
주어진 상태의 값은 maxa(최대 action)을 고르는데,
Reward(r(s,a))와 감마 * V(s')로 표현되고, 여기서 V(s')는 다음 상태 s'의 최적 가치이다.
V(s')는 동적 프로그래밍이 들어오므로, 재귀적으로 반복한다.
행동을 취하고 상태가 괜찮으면 보상을 받고, s'을 얻는다.
그리고 s'을 다시 가져와서 가치 함수에 다시 넣고 구한다.
그렇게 V(s)가 최적이 될 떄까지 반복한다.
즉, 목표 지점에서부터 거꾸로 채워나가는 것이다.
여기에 DNN을 더한다.
DNN은 단순히 상태의 가치를 지능적으로 추정할 수 있다.
어떤 행동이 그것을 최대화할 것인지 추측하면, 나중에 그것에 대해 더 많이 배운다.
따라서 딥러닝 -> 강화학습으로 되는 체이닝 프로세스가 완성되는 것이다.
가정 = 행동이 완전히 결정적이다.
감마는 보통 0.9~0.99 사이로 준다.
최종 목적지의 주변은 R(s,a) + r(s') = 1+0.9*(0)이다.
왜냐하면 해당하는 리워드를 받기 때문이다.
그 다음은 0+0.9이다.
그 이외에는 다 0+ 0.9(1)이다.