epsilon-greedy 함수 정의하기
RL에서 epsilon-greedy 전략은 탐색과 활용의 균형을 맞추는 방법이에요. 이 방식은 확률 epsilon으로 무작위 행동을 선택하고, 확률 1-epsilon으로 현재 가장 좋은 행동을 선택해요. epsilon_greedy() 함수를 구현하는 것은 Q-learning과 SARSA 같은 알고리즘에 필수적이며, 환경을 탐색하면서도 알려진 보상을 활용하도록 하여 에이전트가 효과적으로 학습하도록 돕습니다. 이번 연습 문제의 목표는 이 함수를 구현하는 것이에요.
numpy 라이브러리는 np로 임포트되어 있어요.
이 연습은 강의의 일부입니다
Python으로 배우는 Gymnasium 기반 Reinforcement Learning
연습 안내
- 함수 내부에서 에이전트가 환경을 탐색하도록 하는 적절한 조건을 작성하세요.
- 탐색 시에는 무작위
action을 선택하세요. - 활용 시에는
q_table에 따라 가장 좋은action을 선택하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
epsilon = 0.2
env = gym.make('FrozenLake')
q_table = np.random.rand(env.observation_space.n, env.action_space.n)
def epsilon_greedy(state):
# Implement the condition to explore
if ____ < ____:
# Choose a random action
action = ____
else:
# Choose the best action according to q_table
action = ____
return action