행동가치함수(Action-Value Function), 종종 Q-함수라고 불리우는 것은 강화학습에서 매우 중요한 개념입니다. 이 함수는 특정 상태에서 특정 행동을 취했을 때 얻을 수 있는 예상 누적 보상을 수치로 나타내는 함수입니다. 지금까지는 상태가치함수를 사용해 벨만 방정식을 도출했었지만, 이번 장에서는 행동가치함수 정의식을 살펴본 후 행동가치함수를 이용한 벨만 방정식을 도출해 보겠습니다. 행동가치함수는 Q(s,a)와 같이 표현합니다. 행동가치함수는 상태 s에서 행동 a를 취할 때 얻을 수 있는 미래의 보상을 할인율을 적용하여 합산한 값입니다. 이 함수는 주어진 상태와 행동에 대해 에이전트가 기대할 수 있는 "가치"를 나타내며, 강화학습에서는 이 값을 최대화하는 방향으로 학습이 진행됩니다.
행동가치함수(Action-Value Function, 종종 Q-함수로 불림)와 상태가치함수(State-Value Function, V-함수)는 강화학습에서 중요한 두 가지 유형의 가치 함수입니다. 이들은 에이전트가 환경에서 어떤 상태나 행동이 얼마나 좋은지를 수치적으로 평가하는 데 사용됩니다. 비록 비슷한 목적을 가지고 있지만, 두 함수는 중요한 차이점이 있습니다. 상태가치함수는 특정 상태의 가치를 평가합니다. 이는 특정 정책 π 하에서 어떤 상태 s에서 시작하여 무한히 행동을 수행할 때 기대할 수 있는 누적 보상의 합을 나타냅니다. 행동가치함수 Q(s,a)는 특정 상태에서 특정 행동을 취했을 때의 가치를 평가합니다. 이는 에이전트가 상태 s에서 행동 a를 선택하고, 이후 정책 π를 따라 무한히 행동할 때 기대할 수 있는 누적 보상의 합을 나타냅니다. 주요 차이점은 다음 몇가지가 있습니다. -정보의 상세성: 상태가치함수는 해당 상태에서 행동 선택의 세부 사항 없이 그 상태의 일반적인 가치만을 평가합니다. 이는 특정 정책 하에서 그 상태에서 시작할 때 얻을 수 있는 평균적인 보상을 나타냅니다. 행동가치함수는 특정 상태에서 특정 행동을 취했을 때의 가치를 더 구체적으로 평가합니다. 이는 특정 상태에서 특정 행동을 취할 때 기대할 수 있는 보상을 나타냅니다. -사용 용도: 상태가치함수는 주로 정책 평가나 정책 이터레이션 과정에서 사용됩니다. 행동가치함수는 Q-러닝과 같은 오프-폴리시 학습에서 더 자주 사용됩니다. 이 함수는 각 상태에서 최적의 행동을 직접적으로 알 수 있기 때문에, 최적의 정책을 더 쉽게 도출할 수 있습니다. 상태가치함수와 행동가치함수는 각각 상태와 행동의 가치를 평가하는 데 사용되며, 강화학습에서 중요한 역할을 합니다. 이 두 함수의 이해는 정책을 개선하고 최적의 행동을 결정하는 데 필수적입니다. 상태가치함수에서의 행동 a는 정책 π에 따라 선택됩니다. 반면 Q함수에서 행동 a는 자유롭게 선택할 수 있고, 이것이 상태가치함수와 Q함수의 가장 큰 차이점입니다.
상태가치함수 정의식은 아래와 같이 표현했습니다. Vπ(s) = Eπ[Gt | St = s] 여기서 조건은 상태가 s일것과 정책이 π일것 두가지입니다. 그리고 조건에 행동 a를 추가할 수 있는데, 조건 자체에 a가 들어가는 것이 행동가치함수입니다. qπ(s,a) = Eπ[Gt | St = s, At = a] Q함수는 시간 t일때 상태 s에서 행동 a를 취하고, 시간 t+1부터는 정책 π에 따라 행동을 결정합니다. 이때 얻을 수 있는 기대수익이 qπ(s,a)입니다. 여기서 행동 a는 정책 π와는 무관한데, qπ(s,a)의 행동 a는 자유롭게 결정할 수 있으며, 다음 행동부터는 정책 π를 따르게 됩니다.
행동가치함수인 Q함수를 이용해 벨만 방정식을 만들어 보겠습니다. 먼저 Q함수 전개부터 하겠습니다. qπ(s,a) = Eπ[Gt | St = s, At = a] = Eπ[Rt + γGt+1 | St = s, At = a] = Eπ[Rt | St = s, At = a] + γEπ[Gt+1 | St = s, At = a] = Σs' p(s' | s,a)r(s,a,s') + γΣs' p(s' | s,a)Eπ[Gt+1 | St+1 = s'] = Σs' p(s' | s,a){r(s,a,s') + γEπ[Gt+1 | St+1 = s]} = Σs' p(s' | s,a){r(s,a,s') + γVπ(s')} 이 식에서 함수 Vπ(s')은 Q함수를 사용하여 다시 변형할 수 있습니다. qπ(s,a) = Σs' p(s' | s,a){r(s,a,s') + γΣa'π(a'|s')qπ(s',a')} a'은 시간 t+1에서의 행동으로, 위의 식이 행동가치함수 Q함수로부터 도출된 벨만 방정식이 됩니다.
앞서 Q함수의 벨만 방정식을 도출했습니다. 이 식을 다시 자세히 풀어서 설명하겠습니다. qπ(s,a) = Σs' p(s' | s,a){r(s,a,s') + γΣa'π(a'|s')qπ(s',a')} 식의 구성요소는 다음과 같습니다. s: 현재 상태 a: 현재 상태 s에서 취할 행동 s ′: 다음 상태, 즉 행동 a를 취한 후에 도달할 수 있는 상태 a ′: 다음 상태 s′에서 취할 수 있는 행동들 p(s′∣s,a): 현재 상태 s에서 행동 a를 취했을 때 다음 상태 s′에 도달할 확률 r(s,a,s′): 상태 s에서 행동 a를 취하고 상태 s′로 이동했을 때 받는 보상 γ: 할인율, 미래의 보상을 현재 가치로 환산할 때 사용하는 계수 π(a′∣s ′): 정책 π에 따라 상태 s′에서 행동 a′를 취할 확률 Qπ(s',a′): 정책 π 하에서 상태 s′에서 행동 a ′를 취했을 때 기대할 수 있는 할인된 누적 보상 이 방정식은 현재상태 s에서 행동 a를 취할때 기대할 수 있는 보상과, 그 결과로 가능한 모든 다음 상태 s'에서 발생할 수 있는 미래보상의 현재가치의 합을 계산합니다. 구체적으로 다음과 같은 과정을 통해 계산됩니다. 다음 상태에 대한 합산: 먼저, 모든 가능한 다음 상태 s′에 대해 계산을 수행합니다. 각 상태 s′는 행동 a를 취했을 때 도달할 수 있으며, 각각의 확률 p(s′∣s,a)과 그 상태로 이동했을 때의 즉각적인 보상 r(s,a,s′)을 고려합니다. 미래 보상의 기대치: 각 다음 상태 s′에서, 가능한 모든 행동 a′에 대해 행동가치 Qπ(s′,a′)를 계산합니다. 이 값은 그 행동을 계속해서 취했을 때 얻을 수 있는 미래 보상의 기대치를 나타냅니다. 각 행동가치는 정책 π에 따른 행동 선택 확률 π(a′∣s′)에 의해 가중됩니다. 할인율 적용: 미래 보상은 할인율 γ를 통해 현재 가치로 환산됩니다. 이렇게 계산된 각 값은 현재 상태 s와 행동 a에 대한 행동가치 Qπ(s,a)를 업데이트하는 데 사용됩니다.
상태가치함수와 행동가치함수를 비교하기 위해 "로봇 카페 서빙" 시나리오를 제시할 수 있습니다. 이 예에서 로봇은 카페에서 주문을 받고 서빙하는 역할을 수행하며, 다양한 상황에서 어떤 행동을 선택해야 하는지 결정해야 합니다. ### 환경 설정 - **상태**: - S1: 고객이 주문을 기다리고 있음. - S2: 주문이 준비되어 서빙을 기다림. - S3: 주문 서빙 완료. - **행동**: - A1: 주문 받기. - A2: 주문 서빙하기. - A3: 추가 서비스 제공하기. ### 상태가치함수 Vπ(s) 상태가치함수는 특정 정책 를 따랐을 때 각 상태에서 시작하여 얻을 수 있는 기대 누적 보상을 나타냅니다. 예를 들어, 로봇이 다음과 같은 정책을 따른다고 가정해 봅시다: - S1에서는 주문을 받는 행동 A1을 항상 선택합니다. - S2에서는 서빙을 하는 행동 A2을 항상 선택합니다. - S3에서는 추가 서비스 A3을 제공합니다. 이 정책 하에서 각 상태의 가치는 로봇이 각 상태에서 시작하여 향후 취할 행동들을 통해 얻을 수 있는 보상의 기대값을 반영합니다. ### 행동가치함수 Q(s,a) 행동가치함수는 특정 상태에서 가능한 모든 행동을 자유롭게 선택할 수 있을 때, 각 행동이 가져올 수 있는 미래 보상의 기대치를 평가합니다. 이 함수는 각 상태에서 특정 행동을 취했을 때의 결과적 가치를 직접 계산합니다. 예를 들어: - S1에서 '주문 받기' A1, '주문 서빙하기' A2, '추가 서비스 제공하기' A3의 행동가치를 각각 계산할 수 있습니다. 하지만 S1에서는 A1만이 적절한 행동입니다. - S2와 S3에서도 마찬가지로 각 행동에 대한 가치를 계산합니다. 상태가치함수는 정책에 따라 각 상태에서 "평균적으로" 얻을 수 있는 보상을 반영하며, 정책의 결과로서 각 상태의 가치를 평가합니다. 반면, 행동가치함수는 각 상태에서 모든 가능한 행동의 결과를 고려하며, 특정 상태에서 각 행동을 취했을 때의 직접적인 결과를 평가합니다. 이 차이는 행동 선택의 자유도에서 비롯되며, 행동가치함수는 특히 강화학습에서 최적의 행동을 찾는 데 유용합니다.