강화학습: 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 신경망으로부터)