지콩이
기발자의 기록
지콩이
전체 방문자
오늘
어제
  • 분류 전체보기 (41)
    • 대학원 공부 (29)
      • 데이터베이스 (8)
      • 기계학습의원리 (11)
      • 텐서플로 (4)
      • 통계 (3)
      • anomaly detection (2)
      • Python 데이터분석 (1)
    • 인공지능프로젝트 (3)
    • 알면 도움 되는 꾸루팁 (8)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • vscode
  • 텐서플로
  • feature
  • 텐서플로우
  • 강화학습
  • 변수변환
  • EM알고리즘
  • 가상환경
  • 파이썬에러
  • 딥러닝
  • 데이터전처리
  • 볼츠만머신
  • 빈자리접수
  • 데이터셋
  • 파이썬
  • 베이지안
  • 판다스
  • 정처기
  • 주성분분석
  • 신용카드사기거래
  • 빅데이터
  • anomaly detection
  • 전이학습
  • 이상징후탐지
  • 슈도코드
  • RBM
  • 기계학습
  • 데이터분석
  • pandas
  • 머신러닝

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
지콩이

기발자의 기록

[머신러닝 원리] 12-3. 강화 학습(Reinforcement Learning)
대학원 공부/기계학습의원리

[머신러닝 원리] 12-3. 강화 학습(Reinforcement Learning)

2022. 12. 13. 14:17

앞에서 policy와 value function에 대해 알아봤는데 이제 이 policy를 학습하는 방법에 대해 알아보겠다. 

Model Based Learning

이 모델 기반 학습은 모델이 있다는 가정하에 학습을 진행하는 것이다. 

12-1에서 소개한 MDP의 perfect한 모델이 주어졌을 때를 조건으로 하는 것이다. perfect한 모델은 모든 s, a에 대해서 s'와 r이 나올 확률이 나와 있는 것을 말한다 .

여기서 s 공간과 s'공간이 다른데 이는 s'는 termial state를 포함할 수 있기 때문에 공간을 다르게 하였다. 

 

이렇게 완벽한 모델을 가지고 있을 때는 exploration이 필요 없이, dynamic programming(sub problem의 solution들을 저장해두고 나중에 쓸 수 있도록 하는 것)기법을 이용하여 state value나 action value의 optimal한 값을 찾을 수 있게 된다. (by Bellman optimality equations)

가장 value를 높게하는 action을 선택하여 optimal한 값을 구한다.

 

s,a일 때 s'으로 가면서 얻는 모든 reward에 대한 확률을 곱해서 더해주면 기댓값이 나오므로 위와 같이 풀어서 쓴다. 

여기서는 앞에 max를 취한다. (평균을 취하는게 Bellman equations)

 

action value function은 아래와 같이 정의할 수 있다. 

a'는 다음 액션으로 가장 좋은 액션(리워드가 높은 것)을 취하는 것을 의미한다. 

일단 최적의 state value 또는 최적의 action value를 구하면, 최적의 policies를 쉽게 구할 수 있다. 

 

이제 optimal state value function을 계산하는 알고리즘을 소개하겠다.

이 function을 알게되면 자연스럽게 optimal한 policy를 알게된다.

이 function은 Policy iteration이라고 하는데 다음과 같은 방식이다.

초기에는 policy가 임의로 정해져있는 상태이다.

그래서 어떤 정해진 policy가 있으면, dynamic programming으로 그 policy를 따를 때의 state value가 어떤지를 계산할 수 있다.(추정치를 이용해서 추정치를 계산한다.-Bootstrapping)

3번에서는 이 Policy를 개선하게 되는데 제일 좋은 state value로 가는 policy로 갱신하는 것이다.

 

이 알고리즘을 쉽게 다시 설명해보겠다.

맨 처음에 초기 policy가 주어진다.(파이 제로) 보통 랜덤하게 주어진다.

그 policy로 이룰 수 있는 모든 state에서의 각 discount return 값을 계산(value function-브이파이제로) Policy Evaluation 단계

(이 과정이 위 알고리즘 코드에서 Loop안의 내용)

이 추정치가 갱신되면 또다시 추정해야되고 이 과정을 갱신이 되지 않을 때까지(value function이 수렴) 반복한다.

이 value function이 가르쳐주는대로 내가 가장 높은 reward를 가지려면 어떤 action을 취해야하는지 알 수 있다.

이 과정이 Policy Improvement 단계이다.

마지막에 파이별, 브이별이 각각 optimal한 도출값이라고 볼 수 있다.

 

하지만 아래와 같은 예시를 통해 의문을 제시할 수 있다.

4X4 grid에서 value function이 수렴할 때까지 policy evaluation을 했는데 자세히 보면 k=3일 때부터 k가 무한대일때까지 value function은 다르지만 optimal policy는 같은 것을 볼 수 있다. 

따라서 이 policy evaluation을 끝까지 하는 것이 아니라 중간에 그만두어도 좋은 policy를 구하는데 문제가 없다.

이 이론을 반영한 알고리즘을 value iteration algorithm이라고 하며 다음과 같은 sequence를 가지고 있다.

이 알고리즘은 , 

초기에 임의의 value에서 시작한다.

랜덤한 policy라고 생각하고 시작한다.

액션들의 기대값을 생각하지말고 가장 좋은 액션의 value로만 업데이트한다.

즉 optimal 한 policy라고 치고 그 action에 대한 value로 업데이트하라는 의미.

이것은 Bellman optimality equation을 업데이트룰화하여 돌아가는 알고리즘이다. 

 

 

'대학원 공부 > 기계학습의원리' 카테고리의 다른 글

CNN 파라미터 개수 계산 (예제)  (0) 2023.10.29
[머신러닝 원리] 12-4. 강화 학습(Reinforcement Learning)  (0) 2022.12.31
[머신러닝 원리] 12-2. 강화 학습(Reinforcement Learning)  (0) 2022.12.13
[머신러닝 원리] 12-1. 강화 학습(Reinforcement Learning)  (0) 2022.12.08
[머신러닝 원리] 10-1. Features  (0) 2022.11.23
    '대학원 공부/기계학습의원리' 카테고리의 다른 글
    • CNN 파라미터 개수 계산 (예제)
    • [머신러닝 원리] 12-4. 강화 학습(Reinforcement Learning)
    • [머신러닝 원리] 12-2. 강화 학습(Reinforcement Learning)
    • [머신러닝 원리] 12-1. 강화 학습(Reinforcement Learning)
    지콩이
    지콩이
    기획자와 개발자 그 사이 어딘가

    티스토리툴바