[artificial-intelligence] Q-learning과 SARSA의 차이점은 무엇입니까?

SARSA 는 정책에 따르고 Q 학습 은 정책에서 벗어난 것을 알고 있지만 공식을 보면이 두 알고리즘의 차이점을 확인하기가 어렵습니다.

Reinforcement Learning : An Introduction (by Sutton and Barto) 책에 따르면 . SARSA 알고리즘에서 정책이 주어지면 해당 작업-값 함수 Q (상태 s 및 작업 a, 시간 단계 t에서), 즉 Q (s t , a t )는 다음과 같이 업데이트 될 수 있습니다.

Q (s t , a t ) = Q (s t , a t ) + α * (r t + γ * Q (s t + 1 , a t + 1 )-Q (s t , a t ))

반면 Q-learning 알고리즘의 업데이트 단계는 다음과 같습니다.

Q (s t , a t ) = Q (s t , a t ) + α * (r t + γ * max a Q (s t + 1 , a)-Q (s t , a t ))

다음과 같이 쓸 수도 있습니다.

Q (s t , a t ) = (1-α) * Q (s t , a t ) + α * (r t + γ * max a Q (s t + 1 , a))

여기서 γ (감마)는 할인 계수이고 r t 는 시간 단계 t에서 환경으로부터받은 보상입니다.

이 두 알고리즘의 차이점은 SARSA가 다음 정책 값만 조회하고 Q-learning은 다음 최대 정책 값을 조회한다는 사실 입니까?

TLDR (및 내 답변)

내가 처음 질문 한 이후로이 질문에 답 해주신 모든 분들께 감사드립니다. Q-Learning을 사용 하여 github 저장소를 만들고 차이점이 무엇인지 경험적으로 이해했습니다. 이 방법에 대한 모든 금액 은 다음 최고의 액션 선택 알고리즘 관점에서 할 수 있습니다, 평균 , 최대 또는 가장 당신이 그것을 구현하기 위해 선택하는 방법에 따라 조치를.

다른 주요 차이점은 경우 이 선택이 일어나고있다 (예를 들어, 온라인오프라인 ) 방법 / 그 학습에 영향을 미치는 이유. 2019 년에이 글을 읽고 있고 실습에 가깝다면 RL 장난감 문제를 가지고 노는 것이 차이점을 이해하는 가장 좋은 방법 일 것입니다.

마지막으로 중요한 점은 Suton & Barto와 Wikipedia 모두 다음 주 최고 / 최대 조치 및 보상 과 관련하여 종종 혼합, 혼동 또는 잘못된 공식 표현을 가지고 있다는 것입니다 .

r (t + 1)

사실이다

r (t)

이것이 누군가가 이것에 붙어있는 데 도움이되기를 바랍니다.



답변

예, 이것이 유일한 차이점입니다. 정책에 따른 SARSA는 따르는 정책과 관련된 행동 값을 학습하는 반면, 정책을 벗어난 Q-Learning은 탐욕스러운 정책과 관련하여이를 수행합니다. 일부 일반적인 조건에서는 둘 다 실제 가치 함수로 수렴되지만 속도는 다릅니다. Q-Learning은 약간 느리게 수렴하는 경향이 있지만 정책을 변경하면서 계속 학습 할 수있는 능력이 있습니다. 또한 Q-Learning은 선형 근사와 결합 될 때 수렴이 보장되지 않습니다.

실질적으로 ε- 욕심쟁이 정책에 따라 Q-Learning은 Q (s, a)와 최대 행동 값의 차이를 계산하고 SARSA는 Q (s, a)와 평균 행동의 가중 합계 간의 차이를 계산합니다. 값 및 최대 :

Q- 학습 : Q (s t + 1 , a t + 1 ) = max a Q (s t + 1 , a)

SARSA : Q (s t + 1 , a t + 1 ) = ε · 평균 a Q (s t + 1 , a) + (1-ε) · max a Q (s t + 1 , a)


답변

이 부분을 배울 때도 매우 혼란스러워서 R.Sutton과 AGBarto의 두 의사 코드를 조합하여 차이를 더 명확하게 만들었습니다.

여기에 이미지 설명 입력

파란색 상자는 두 알고리즘이 실제로 다른 부분을 강조합니다. 숫자는 나중에 설명 할 더 자세한 차이점을 강조합니다.

TL; NR :

|             | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' |   π   |      π     |
| Updating Q  |   π   |      μ     |

여기서 π는 탐욕스러운 정책 (예 : ε> 0 탐사)이고, μ는 탐욕스러운 정책 (예 : ε == 0, 탐사 없음)입니다.

  1. Q-learning은 다음 행동 A ‘를 선택하고 Q를 업데이트하는 데 서로 다른 정책을 사용하고 있다는 점을 감안할 때 다른 정책 μ를 따르면서 π를 평가하려고하므로 정책을 벗어난 알고리즘입니다.

  2. 반대로 SARSA는 항상 π를 사용하므로 정책에 따른 알고리즘입니다.

더 자세한 설명 :

  1. 둘 사이의 가장 중요한 차이점은 각 작업 후에 Q가 업데이트되는 방식입니다. SARSA는 ε- 욕심쟁이 정책을 따르는 Q ‘를 정확히 사용합니다. 대조적으로, Q- 학습은 다음 단계를 위해 가능한 모든 행동에 대해 최대 Q ‘를 사용합니다. 이것은 ε = 0으로 탐욕스러운 정책을 따르는 것처럼 보이게합니다. 즉,이 부분에서 탐색이 없습니다.

  2. 그러나 실제로 행동을 취할 때 Q-learning은 여전히 ​​ε- 욕심쟁이 정책에서 취한 행동을 사용합니다. 이것이 “Choose A …”가 반복 루프 안에있는 이유입니다.

  3. Q-learning의 루프 로직에 따라 A ‘는 여전히 ε-greedy 정책에서 왔습니다.


답변

수학적으로 차이점은 무엇입니까?

대부분의 다른 답변에서 이미 설명했듯이 수학적으로 두 업데이트의 차이점은 실제로 상태-작업 쌍 (S t , A t )에 대한 Q 값을 업데이트 할 때 다음과 같습니다.

  • Sarsa는 행동 정책 (즉, 에이전트가 환경에서 경험을 생성하는 데 사용하는 정책 (일반적으로 엡실론 탐욕))을 사용하여 추가 작업 A t + 1 을 선택한 다음 Q (S t + 1 , A t +1 ) ( 감마로 할인 ) 업데이트 대상 계산에서 예상되는 미래 수익률입니다.
  • Q- learning은 행동 정책을 사용하여 추가 작업 A t + 1 을 선택하지 않습니다 . 대신 업데이트 규칙에서 예상되는 미래 수익률을 max A Q (S t + 1 , A)로 추정합니다 . 여기에 사용 된 최대 연산자는 완전히 탐욕스러운 정책을 “따르는”것으로 볼 수 있습니다. 에이전트는 실제로 탐욕스러운 정책을 따르지 않습니다 . 업데이트 규칙에서 “지금부터 욕심쟁이 정책을 따르기 시작한다고 가정하면 내 예상 미래 수익은 어떻게 될까요?”라고만 나와 있습니다.

이것은 직관적으로 무엇을 의미합니까?

다른 답변에서 언급했듯이 위에서 설명한 차이점은 기술 용어를 사용하여 Sarsa가 정책 기반 학습 알고리즘이고 Q- 학습이 정책을 벗어난 학습 알고리즘이라는 것을 의미합니다.

한계 (경험을 생성하고 학습하는 데 무한한 시간 이 주어짐)와 몇 가지 추가 가정 하에서 이것은 Sarsa와 Q-learning이 서로 다른 솔루션 / “최적”정책으로 수렴됨을 의미합니다 .

  • Sarsa경험을 생성하는 데 사용 된 것과 동일한 정책을 계속 따른다가정하에 최적의 솔루션으로 수렴합니다 . 이것은 종종 엡실론 탐욕 과 같은 임의의 요소 ( “어리석은”)의 일부 요소를 포함하는 정책이 될 것입니다. 그렇지 않으면 우리가 어떤 것에 수렴 할 것이라고 보장 할 수 없기 때문입니다.
  • Q-Learning경험과 교육을 생성 한 후 탐욕스러운 정책으로 전환한다는 가정하에 최적의 솔루션으로 수렴됩니다 .

어떤 알고리즘을 사용해야합니까?

일반적으로 Sarsa 와 같은 알고리즘 은 경험을 학습 / 생성하는 과정에서 에이전트의 성능에 관심이있는 상황에서 선호 됩니다 . 예를 들어 에이전트가 절벽 아래로 떨어지면 부서지는 값 비싼 로봇이라고 생각해보십시오. 비용이 많이 들기 때문에 학습 과정에서 너무 자주 떨어지지 않는 것이 좋습니다. 따라서 학습 과정에서 성능에 관심이 있습니다. 그러나 때때로 무작위로 행동해야한다는 것도 알고 있습니다 (예 : 엡실론 탐욕스러운). 이것은 로봇이 절벽을 따라 걷는 것이 매우 위험하다는 것을 의미합니다. 엡실론 확률로 무작위로 행동하고 쓰러 질 수 있기 때문입니다. 따라서 우리는 절벽에 가까이있는 것이 위험하다는 것을 빨리 배우는 것이 좋습니다.탐욕스러운 정책이 떨어지지 않고 바로 옆으로 걸을 수 있다고하더라도, 우리는 무작위로 엡실론 탐욕스러운 정책을 따르고 있다는 것을 알고 있으며 때때로 어리 석을 수 있다는 것을 알고 있으므로 성능을 최적화하는 데 관심이 있습니다 . 이것은 Sarsa가 선호되는 상황입니다.

Q-learning 과 같은 알고리즘은 우리가 훈련 과정에서 에이전트의 성능에 신경 쓰지 않는 상황에서 선호 될 수 있지만 결국 우리가 전환 할 최적의 탐욕스러운 정책을 배우기를 원합니다. 예를 들어, 우리가 몇 가지 연습 게임을하고 (때때로 무작위성 때문에지는 것을 신경 쓰지 않는 곳), 그 후에 중요한 토너먼트 (배움을 멈추고 엡실론 탐욕에서 탐욕스러운 정책으로 전환하는 곳)을한다고 생각해보십시오. ). 이것은 Q- 학습이 더 나은 곳입니다.


답변

Q-Learning 공식에 색인 오류가 있습니다. Sutton과 Barto의 148 페이지.

Q (st, at) <-Q (st, at) + 알파 * [r (t + 1) + 감마 * 최대 Q (st + 1, a)-Q (st, at)]

오타는 최대 인수에 있습니다.

인덱스는 st + 1 및 a이지만 귀하의 질문에는 st + 1 및 at + 1입니다 (SARSA에 맞습니다).

이것이 조금 도움이되기를 바랍니다.


답변

Q-Learning에서

Q-Learning : Q (St, At) = Q (St, At) + a [R (t + 1) + discount * max Q (St + 1, At )-Q (St, At)]

Q-Learning으로 변경해야합니다. Q (St, At) = Q (St, At) + a [R (t + 1) + discount * max Q (St + 1, a )-Q (St, At)]

말했듯이 업데이트 eq에 대한 최대 Q- 값을 찾아야합니다. 변화에 의해 , 그럼 당신은 새로운 Q (성,시)를해야합니다. 조심스럽게 최대 Q 값을 제공 하는 a 는 다음 작업이 아닙니다. 이 단계에서는 다음 상태 (St + 1) 만 알고 있으며 다음 라운드로 이동하기 전에 St + 1 (St <-St + 1)로 St를 업데이트하려고합니다.

각 루프에 대해;

  • Q 값을 사용하여 St에서 At를 선택하십시오.

  • At를 취하고 Rt + 1 및 St + 1을 관찰합니다.

  • eq를 사용하여 Q- 값을 업데이트합니다.

  • St <-St + 1

St가 터미널이 될 때까지


답변

SARSA와 Qlearning의 유일한 차이점은 SARSA는 현재 정책에 따라 다음 조치를 취하는 반면 qlearning은 다음 상태의 최대 활용도로 조치를 취한다는 것입니다.


답변