강화학습 첫걸음 - 미로찾기를 위한 강화학습 구현

Yubin Hong·2021년 8월 2일
0

강화학습 첫걸음

목록 보기
4/5

앞으로 배울 내용

  1. 강화학습이란 무엇인가?
  2. 미로찾기를 위한 강화학습 구현
  3. 역진자 문제를 위한 강화학습 구현
  4. 파이토치를 이용한 딥러닝 구현
  5. 딥러닝을 적용한 강화학습 - DQN 구현
  6. 딥러닝을 적용한 강화학습 - 심화과정
  7. AWS GPU 환경에서 벽돌깨기 구현





오늘은 2. 미로찾기를 위한 강화학습 구현


2.1 주피터 노트북 체험 페이지 사용법
2.2 미로와 에이전트 구현



2.2.1 미로 구현

이번 장의 태스크가 될 미로는 3x3칸으로 붉은 색으로 표시된 벽은 통과가 불가능하다. S0은 시작 지점이며 오른 쪽 하단의 S8이 목표지점이다. 동그라미로 나타낸 에이전트(책에서는 주황색이지만 화면에서는 녹색으로 나온다)를 이 미로의 목표 지점에 도달시켜야 한다.

# 구현에 사용할 패키지 임표트하기

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 초기 상태의 미로 모습


# 전체 그림의 크기 및 그림을 나타내는 변수 선언
fig = plt.figure(figsize = (5, 5))
ax = plt.gca()


# 붉은 벽 그리기
plt.plot([1,1], [0,1], color = 'red', linewidth = 2)
plt.plot([1,2], [2,2], color = 'red', linewidth = 2)
plt.plot([2,2], [2,1], color = 'red', linewidth = 2)
plt.plot([2,3], [1,1], color = 'red', linewidth = 2)


# 상태를 의미하는 문자열(S0~S8) 표시
plt.text(0.5, 2.5, 'S0', size = 14, ha = 'center')
plt.text(1.5, 2.5, 'S1', size = 14, ha = 'center')
plt.text(2.5, 2.5, 'S2', size = 14, ha = 'center')
plt.text(0.5, 1.5, 'S3', size = 14, ha = 'center')
plt.text(1.5, 1.5, 'S4', size = 14, ha = 'center')
plt.text(2.5, 1.5, 'S5', size = 14, ha = 'center')
plt.text(0.5, 0.5, 'S6', size = 14, ha = 'center')
plt.text(1.5, 0.5, 'S7', size = 14, ha = 'center')
plt.text(2.5, 0.5, 'S8', size = 14, ha = 'center')
plt.text(0.5, 2.3, 'START', ha = 'center')
plt.text(2.5, 0.3, 'GOAL', ha = 'center')


# 그림을 그릴 범위 및 눈금 제거 설정
ax.set_xlim(0, 3)
ax.set_ylim(0, 3)
plt.tick_params(axis = 'both', which = 'both', 
                bottom = False, top = False, labelbottom = False, right = False, left = False, labelleft = False)


# S0에 녹색 원으로 현재 위치를 표시

line,  = ax.plot([0.5], [2.5], marker = "o", color = 'g', markersize = 60)


"
"
"
"
"
"
"
"
"
"
"
"
"

Reference

profile
기억보단 기록을

0개의 댓글