2020년 5월 30일 토요일

강화학습: A2C (Advantage Actor-Critic)


강화학습: A2C study


Reference : 수학으로 풀어보는 강화학습 원리와 알고리즘


1. 환경: OpenAI Gym 의 pendulum-v0

2. A2C agent 객체 생성

  2.1. 객체 초기화
    hyper parameters 초기화 (감마, batch_size, actor 학습률, critic 학습률)
    환경 저장
    state 와 action 의 dimension
    action bound 확보
  
    results 변수 (reward)

  2.2. actor 와 critic 네트워크 생성
  
  2.2.1 actor 클래스

    2.2.1.1 actor 클래스 초기화
      - actor 신경망 생성
        input layer
        h1 layer
        h2 layer
        h3 layer
        out layer (2개, 평균과 표준편차)        

        출력 중 평균의 스케일링 (-action bound, action bound)
        네트워크 모델 생성 및 반환
      - optimizer : Adam
   
  2.2.2 critic 클래스
    2.2.2.1 critic 클래스 초기화
      - critic 신경망 생성
        input layer
        h1 layer
        h2 layer    
        h3 layer
        out layer (1개)

        신경망 모델 생성 및 반환
        모델 컴파일 (Adam, loss = 'mse')

3. agent train

  3.1. 매 에피소드마다 다음을 반복

    3.1.1. 초기화
          (states, actions, td_targets, advantages)
          에피소드 초기화 (time, episode reward, done)
          환경 초기화

    3.1.2. 한 에피소드가 완료될 때까지 학습 반복

      3.1.2.1. action sampling (get action)
        - Actor 클래스
            model.predict : 현재 state 에 대한 평균과 표준편차 얻기 (actor 신경망으로부터)
    





2020년 5월 24일 일요일