컴퓨터공학/인공지능

[인공지능] 9장. 강화 학습(Reinforcement Learning) 2

NIMHO 2023. 5. 30. 21:56
728x90

복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.

9.2

9.2.2 최적 정책

학습 알고리즘이 해야 할 일

- '누적(최종) 보상'을 최대화하는 '최적 정책'(optimal policy)을 알아내야 한다.

- 최적 정책이란?

     - ex. 다중 손잡이 밴딧에서 승률이 가장 높은 4번 손잡이를 당기는 정책

     - ex. Fronzenlake에서 상태 4에서 행동 1을 취해 안전한 길을 찾는다.

 

확률 분포로 표현되는 정책

 

9.2.3 가치 함수로 찾는 최적 정책

최적 정책(optimal policy)을 찾는 학습 알고리즘의 필요성

- 이전 예제에서는 최적 정책을 쉽게 찾았는데 문제가 단순하기 때문에 가능하다.

     - 학습과정 없이 직접 눈으로 보고 풀었다.

- 실용적인 문제에서는 학습 알고리즘이 필요

     - 가치 함수를 통해 최적 정책을 찾는 전략

 

가치 함수(value function)

- 상태 s에서 정책 π를 따를 때 기대되는 누적 보상을 나타내는 함수

     - 가치함수 : vπ(s), ∀s ∈ S

- 학습 알고리즘이 해야 할 일은 vπ(s)를 최대화하는 최적 정책 π^를 찾기

     - π^ = argmax vπ(s), ∀s ∈ S

- 위 식은 할 일을 정의. 이제부터 가치 함수를 계산하는 방법을 찾아야 한다.

 

가치 함수의 계산

- 아래 식은 가치 함수 계산을 위한 실마리를 제공한다.

728x90

최적 정책을 찾는 전략

- 신경망 학습과 마찬가지로 π1으로 초기화한 다음,

- π1을 π2로 개선하고, π2를 π3로 개선하고, π3을 π4로 개선하고,

- 결국 최적 정책 π^으로 수렴한다.

 

9.2.4 가치 함수 계산을 위한 벨만 방정식

벨만 기대 방정식

- 상태는 서로 밀접한 관련성을 가진다.

     - ex. FrozenLake의 경우 어떤 상태에서 이동할 수 있는 상태는 기껏 4개

- 이런 특성을 이용한 벨만 기대 방정식(Bellman expectation equation)

     - 오른쪽 변에 자기 자신을 포함하는 순환식 형태

     - A(s)는 상태 s에서 취할 수 있는 행동의 집합, P(a | s)는 상태 s에서 행동 a를 취할 확률,

     - r은 상태 s에서 행동 a를 취했을 때 받는 보상, s'는 상태 s에서 a를 취했을 때 다음 상태

 

할인계수를 적용한 누적 보상액

- 누적 보상액(accumulating reward)의 수학적 정의

     - 누적 보상액 r(z)현재 순간 t에서 시작하여 에피소드가 끝날 때(T)까지 발생한 보상 총합

     - γ는 할인계수(discount factor 또는 할인율 discount rate)

          - 미래에 발생하는 보상의 가치를 일정 비율로 삭감하는 역할)

          - r(z) = rt + γ rt+1 + γ^2 rt+2 + γ^3 rt+3 +...+ γ^(T-t+1) rT-1 = ∑(T-1)(i >= t) γ(i-t) ri

          - z = st (at)→ st+1 (at+1)→ st+2+ (at+2)→... (aT-2) → ST-1 (aT-1) → ST

               » 주의) textbook 9.8과 다름 (rt+1 → rt)

- γ의 역할

     - 단기 보상장기 보상에 대한 균형 맞춘다.

     - 무한한 누적보상액을 가지는 것을 막아 수학적 계산 가능성과 학습 안정성 향상된다.

 

9.3 동적 프로그래밍 (Dynamic Programming)

알고리즘 과목에서 배우는 동적 프로그래밍

- 문제를 가장 작은 단위까지 분해한 다음 가장 작은 문제부터 해결하기 시작하여

- 점점 큰 문제로 진행하는 상향식 문제해결 방법론

 

정책 반복(policy iteration) 알고리즘

가치 반복(value iteration) 알고리즘

 

9.3.1 정책 반복 알고리즘

정책 반복 알고리즘

- 03행이 가장 많은 시간 소요된다.

- 계산 시간이 과도하여 잘 사용되지 않는다.

 

9.3.2 가치 반복 알고리즘

가치 반복 알고리즘

- 식 (9.12)의 벨만 최적 방정식을 이용한다.

- 동적 프로그래밍은 부트스트랩(bootstrap) 방식

     - 모든 상태가 부정확한 값으로 출발하여 이웃 상태와 정보를 주고받으며 점점 수렴해 가는 방식

          - 예) FrozenLake에서는 목적지에 인접한 상태부터 정확해져서 점점 멀리 확산

     - 부트스트랩: agent가 자체적으로 가치 함수나 q-value 함수를 업데이트하는 것

     - 이웃 상태(neighbor state)는 어떤 상태에서 가능한 바로 다음 상태들을 의미

728x90