여기서 근사적으로 어드밴티지 함수를 구하기 위해, 현재 관측된 xt+1이 가장 상태 천이 확률이 높은 p(xt+1∣xt,ut)로부터 얻어졌다고 생각하면, γV(xt+1)의 평균이 현재 관측된 xt+1의 상태가치함수로 대체될 수 있다.
이제 목적함수의 그래디언트를 계산하는 것은 상태가치 함수를 얼마나 정확히 계산하느냐에 달려있다.
정책 π는 θ로 파라미터화된 정책 신경망으로부터 추정하고, 가치 V는 ϕ로 파라미터화된 가치 신경망으로부터 추정한다.
그러면 정책 신경망과 가치 신경망, 두 개의 신경망이 작동하게 되는데, 정책 신경망은 에이전트가 어떻게 행동해야 하는지를 알려주므로 액터(actor) 신경망이라고 하고, 가치 신경망은 그 행동을 평가하기 때문에 크리틱(critic) 신경망이라고 한다.
두 신경망에 대해 두 개의 독립적인 신경망을 구성하는 경우도 있고, 공통의 신경망을 쓰고 출력 부분만 다른 layer를 쓰는 경우도 있다.
여기서 Vϕ(xi)가 예측값이 된다. 21는 미분했을 때 제곱에서 나오는 2를 없애주기 위한 하나의 트릭이다.
크리틱 신경망으로부터 얻어진 상태가치함수 Vϕ로부터 어드밴티지 함수도 계산할 수 있다.
Aϕ(xi,ui)≈r(xi,ui)+γVϕ(xi+1)−Vϕ(xi)
정책 추정
정책은 목적함수로부터 얻어진다.
Lossactor(θ)≈−i∑(logπθ(ui∣xi)Aϕ(xi,ui))
이때 A2C의 목적함수는 최대화 해야하고, loss는 일반적으로 최소화하는 방향으로 학습하므로, 앞에 음의 부호를 붙인다.
여기서 Aϕ(xi,ui)는 θ의 함수가 아니기 때문에 그래디언트 안에 포함될 수 있다.
액터 신경망의 로스는 참값이 항상 1인 교차 엔트로피에 어드밴티지 함수를 곱한 형태이다.
교차 엔트로피란 H(p,q)=Ex∼p(x)[−logq(x)]=−∫xp(x)logq(x)dx로 표시하며, 확률 분포 p(x)에 따라 일어나는 이벤트를 근사 분포 q(x)를 사용하여 나타내려고 할 때 필요한 정보량이다.
액터 신경망의 로스는 참값이 항상 1인 p(x)가 있다고 했을 때 확률분포함수 πθ가 p(x)에 의해 일어나는 이벤트를 나타내려고 할 때 필요한 정보량이다.
이때 정보량은 작을수록 더 잘 모사한다는 것을 의미하므로, loss는 줄어드는 방향으로 학습해야한다.
어드밴티지 함수는 정보량에 곱해진 형태로, 어드밴티지가 큰 정책의 샘플은 그래디언트 계산에 더 큰 영향을 미치고, 어드밴티지가 작은 정책의 샘플은 그래디언트 계산에 작은 영향을 미치므로, 점진적으로 정책이 향상될 것으로 기대된다.
크리틱 신경망을 업데이트 한다. ϕ←ϕ+αcritici+1∑[(yi−Vϕ(xi))∇ϕVϕ(xi)]
액터 신경망을 업데이트 한다. θ←θ+αactor∇θi∑(logπθ(ui∣xi)Aϕ(xi,ui))
2~9 적절할 때까지 반복
온라인 액터-크리틱 프로세스
온라인 액터-크리틱 알고리즘은 한 개의 샘플이 생성되는 즉시 신경망을 업데이트 한다.
즉, N=1이다.
연속 공간에서의 신경망 구조
이산공간
이산공간에서 액터 신경망의 출력층의 뉴런의 개수는 취할 수 있는 행동의 개수가 된다.
즉, 행동변수 u=[u1,...un]T의 차원이 n이고 각 행동변수가 가질 수 있는 값 uj=uj1,uj2,...ujm의 개수가 m개라면, 출력층의 뉴런의 개수는 nm개가 된다.
예를 들어, 2차원 공간에서 움직이는 공이 있다고 했을 때, 행동변수 u=[u1,u2]이고(x축, y축), 각 행동변수가 가질 수 있는 값은 {−1,0,1}이 된다.
즉, 액터 신경망은 x축과 y축으로 움직이는 정도에 따라 6개의 뉴런 출력층을 가질 수 있다.
연속공간
연속공간 행동변수일 경우, 가질 수 있는 행동의 개수는 무한대가 될 것이다.
따라서 구현 가능한 액터 신경망을 만들기 위해서는 신경망의 출력을 특정한 구조를 갖는 확률밀도함수라고 가정하는 것이 좋다.
예를 들면 행동변수가 서로 독립인 가우시안이라고 가정하면, 각각의 행동변수가 갖는 평균과 분산을 출력하게 하는 것이다.
기댓값이 μ=[μ1,μ2,...μm]T이고 공분산이 P=diag{σ12,σ22,...,σm2}인 가우시안 정책 확률 밀도 함수는 다음과 같이 주어진다.