‘파이썬과 케라스로 배우는 강화학습’ 세미나 5

5장을 읽고 강화학습을 인공신경망과 함께 어떻게 사용하는지 학습합니다.

근사함수

p155. 지금까지 살펴본 강화학습 알고리즘들은 테이블 형식의 강화학습이었다. 즉, 모든 상태에 대해 테이블을 만들어놓고 테이블의 각 칸에 큐함수를 적는 형태인 것이다.

p156. 큐러닝까지의 알고리즘은 근본적으로 상태가 적은 문제에만 적용가능하다.

p158. 기존의 데이터를 매개변수를 통해 근사하는 함수를 근사함수라고 한다. 인공신경망을 근사함수로 사용할 수 있다.

 

우리는 이전의 세미나에서 딥러닝과 케라스에 대해서 학습했습니다. p176까지는 빠른 속도로 읽어냅니다.

딥살사

p178. 딥살사는 살사 알고리즘을 사용하되 큐함수를 인공신경망으로 근사한다.

p185. 현재 상태의 특징들이 인공신경망의 입력으로 들어가면 인공신경망은 각 행동에 대한 큐함수를 출력으로 내놓는다. 따라서 에이전트 클래스는 상태가 입력이고 출력이 각 행동에 대한 큐함수인 인공신경망 모델을 가지고 있어야 한다.

p155의 마지막 문단에서 에이전트가 선택 가능한 행동이 5개라고 언급하고 있습니다. 이전 까지는 4개의 행동(상, 하, 좌, 우) 였는데 갑자기 5개라고 하면서 계속 5개 였다고 이야기하는 뉘앙스입니다. 앞으로 나올 그리드월드 문제가 장애물들이 이동하는 문제로 변형되면서 제자리에 있는 것도 하나의 액션이 되기 때문에 5개가 되는 것으로 보입니다.

p178 마지막 문단의 상태의 총 수가 15개인 것이 처음에 이해가 안 되었습니다. 소스 코드를 보니 상대 위치가 x와 y 둘 씩으로 되어 있습니다.

위 두 가지 경우를 보면서, 글을 쓸때는 사소한 것에도 신경을 많이 써야겠다는 생각이 듭니다.

폴리시 그레디언트

p192. ‘가치 기반 강화학습’은 에이전트가 가치함수를 기반으로 행동을 선택하고 가치함수를 업데이트하면서 학습을 한다.

정책 기반 강화학습은 정책을 직접적으로 근사시켜 상태에 따라 바로 행동을 선택한다. 인공신경망이 정책을 근사한다. 인공신경망의 입력은 상태가 되고, 출력은 각 행동을 할 확률이 된다.

p195. 누적 보상은 최적화하고자 하는 목표함수가 되며 최적화를 하게 되는 변수는 인공신경망의 계수(가중치값)이다. 목표함수의 경사상승법을 따라서 근사된 정책을 업데이트하는 방식을 폴리시 그레이디언트라고 한다.

p199. 큐함수를 반환값으로 대체하는 것이 REINFORCE 알고리즘이다.  REINFORCE 알고리즘은 에피소드마다 실제로 얻은 보상으로 학습하는 폴리시 그레이디언트라고 할 수 있다. 그래서 몬테카를로 폴리시 그레디언트라고도 부른다.

그리드월드 구현을 환경 부분 포함해서 꼼꼼하게 이해하고 진행하지 않았더니 코드에 대한 이해가 뒤로 갈수록 점점 더 떨어지는 것 같습니다. 전체 내용을 다 다룬 다음 꼼꼼하게 코드 부분을 이해하는 시간을 갖도록 하겠습니다. 개선할 수 있는 부분은 개선하면서 진행해보도록 하겠습니다.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*