복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.
▶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
- 위 식은 할 일을 정의. 이제부터 가치 함수를 계산하는 방법을 찾아야 한다.
가치 함수의 계산
- 아래 식은 가치 함수 계산을 위한 실마리를 제공한다.
최적 정책을 찾는 전략
- 신경망 학습과 마찬가지로 π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)는 어떤 상태에서 가능한 바로 다음 상태들을 의미
'컴퓨터공학 > 인공지능' 카테고리의 다른 글
[인공지능] 10장. 생성 모델(Generative Model) 1 (0) | 2023.06.04 |
---|---|
[인공지능] 9장. 강화 학습(Reinforcement Learning) 3 (0) | 2023.06.04 |
[인공지능] 9장. 강화 학습(Reinforcement Learning) 1 (0) | 2023.05.30 |
[인공지능] 8장. 시계열 데이터와 순환 신경망4 (1) | 2023.05.24 |
[인공지능] 8장. 시계열 데이터와 순환 신경망3 - LSTM 편곡 (1) | 2023.05.14 |