알고리즘 40
-
import tensorflow as tfimport numpy as npimport randomimport mathimport os"""# 설정값 지정"""# 학습에 필요한 설정값들을 선언합니다.epsilon = 1 # epsilon-Greedy 기법에 사용할 최초의 epsilon값epsilonMinimumValue = 0.001 # epsilon의 최소값 (이 값 이하로 Decay하지 않습니다)num_actions = 3 # 에이전트가 취할 수 있는 행동의 개수 - (좌로 움직이기, 가만히 있기, 우로 움직이기)num_epochs = 2000 # 학습에 사용할 반복횟수hidde..
-
DQN Q-Table을 업데이트하지 않고, 현재 상태값을 입력값으로 받고 현재 상태에서 취할 수 있는 행동들에 대한 Q값을 예측하는 인공신경망을 만들어서 사용하는 Q-NetWorks기법이다. Q-Networks를 학습시킬 때, 타겟 데이터는 Q-Learning알고리즘으로 구한 최적의 행동가치 함수값인 $ Q*(s_{t}, a_{t}) = R_{t+1} + \gamma \underset{a+1}{max}Q(s_{t+1}, a_{t+1}) $ 으로 지정하고 상태값을 입력받아 신경망이 예측한 $ Q(s_{t}, a_{t}) $ 와 타겟 데이터의 평균제곱오차(MSE)으로 손실함수를 정의해서 최적화를 수행한다. $ MSE = \frac{1}{2n}\sum_{i=1}^{n}(Q^{*}(s_{t},a_{t}) - ..
-
-
Q-Learning 및 강화학습을 적용할 때 보통 $ \epsilon - Greedy $ 라는 기법을 함께 적용한다. 에이전트가 항상 최대 Q값으로 행동하게 되면 데이터 수집과정에서 다양성이 감소하고 이로인해 최대 학습 결과가 Local Optima에 빠질 확률이 높아진다. 따라서 $ \epsilon - Greedy $ 기법은 에이전트가 $ \epsilon $ 확률로 최적의 행동이 아닌 랜덤한 행동을 하게 하고, 다시 $ ( 1 - \epsilon ) $ 확률로 최적의 행동을 하게 함으로써 에이전트가 다양한 상태를 경험하고 수집할 수 있게 한다. 결과적으로 학습이 끝난 후에 더 좋은 성능을 발휘할 수 있다. 하지만 계속해서 랜덤한 행동을 하도록 할 수는 없음으로 학습 초반에는 $ \epsilon $ ..
-
Discrete Action Space 에이전트가 취할 수 있는 행동이 n개의 행동중에 한개로 나누어 떨어지는 문제정의이다. 예를들어, 왼쪽 오른쪽 위 아래로 이동한다는 행동 4가지가 있을 때, 행동을 무조건 1개 선택해서 진행해야 한다고 하면. 위 또는 아래 오른쪽 왼쪽으로 이동하는 결과 한개가 나타나는걸 말한다. A = [ 왼쪽, 위, 오른쪽, 아래 ]Continuous Action Space 에이전트가 취할 수 있는 행동이 연속된 값을 선택하는 문제 정의 이다. 예를 들어, 로봇의 팔 관절이 몇도의 각도로 움직여야 할 지를 결정하는 문제는 Continuous Action Space이다. A = 0 ~ 360(팔각도)
-