강화학습/RL 강의 정리 6

모두를 위한 RL강좌 정리하기(Lecture7 ~ Lab7)

앞에서는 큐네트워크를 이용해 CartPole문제를 풀려고 했지만 잘 풀리지 않는 것을 보았다. 그건 강화학습+신경망의 문제 때문인데 그 문제는 각 샘플들간의 상관관계와 target이 유동적이기 때문이다. 이 두개가 정말 큰 문제이다. 근데 DQN을 만든 딥마인드는 이 문제들을 풀어냈고 이 것들을 어떻게 풀어냈는지 보자. 일단 첫번째로 샘플들간의 상관관계가 있는데 내가 카트폴을 training 시킨다고 했을 때, 카트폴이 움직일 때 정말 조금조금씩 움직이므로 이렇게 연속적으로 받은 데이터들은 굉장히 유사할 것이다. 그래서 이 데이터(샘플)들 간에 연관성이 있다는 얘기이다. 예를 들어 데이터의 분포가 위와 같을 때 인접한 데이터들끼리만 학습을 시킨다고 하면 그림처럼 전체 데이터와는 아주 다르게 학습을 할 것..

모두를 위한 RL강좌 정리하기(Lecture 6 ~ Lab 6)

이전까지는 강화학습 에이전트를 학습시킬 때 큐테이블을 사용해서 학습시켰다. 이전의 Frozen Lake는 state는 16개, 각각의 action은 4개가 있는 테이블로 만들 수가 있었다. 근데 과연 큐테이블을 Frozen Lake뿐만 아니라 좀 더 어려운 예제에 적용시킬 수가 있을까 답은 힘들다. 이 큐테이블은 실생활의 더 어려운 예제에는 적용하기가 힘들다. 예를 들어 100x100의 미로는 100x100x4의 큐테이블로 표현할 수 있지만 만약 그림같은 게임이라면 이는 엄청나게 커지기 때문에 큐 테이블로는 표현하기가 힘들다. 그렇다면 큐테이블을 안쓰고 어떻게 큐함수들을 표현할 수 있을까? 그래서 신경망을 이용해 큐테이블을 근사한다. 이 신경망은 마치 큐테이블처럼 다음과 같이 어떤 state가 input..

모두를 위한 RL강좌 정리하기(Lecture 5 ~ Lab 5)

사실 Frozen Lake라는 환경은 바람도 많이 불고 빙판길을 걸어가다가 미끄러질 수 있는 변수가 많은 환경이다. 그래서 에이전트는 자신이 원하는 곳으로 마음껏 갈 수 있는 것이 아니다. 그러니까 에이전트가 오른쪽으로 가고 싶다고 해서 항상 오른쪽으로 가는 것이 아니라 갑자기 왼쪽으로도 갈 수 있는 환경이 Frozen Lake라는 환경이다. 이번에는 이런 변수가 많은 환경에서 큐러닝을 적용시켜 본다. 위와 같이 변수가 많은 Frozen Lake 환경은 stochastic model이다. 대충 확률론적인 모델이라고 번역할 수 있는데 말했다시피 에이전트가 오른쪽으로 가는 action을 취했다고 해서 반드시 오른쪽으로 갈 수 있는 것이 아니다. 이와 반대로 deterministic model은 변수가 없는 ..

모두를 위한 RL강좌 정리하기(Lecture 4 ~ Lab 4)

Lecture 3에서 프로토타입(?)같은 큐러닝을 배웠다면 여기서는 완전한 큐러닝을 배워보자 일단 저번시간에 본 큐테이블이다. 위의 경우는 에이전트가 우연히 발견한 길인데 딱 보기에도 에이전트가 목표지점에 가는 최적화된 길이 아님을 알 수 있다. 근데 이전에 배웠던 큐함수 식으로 큐값을 업데이트하게 된다면 랜덤하게 길을 찾고 한번 발견한 길로만 계속 가기 때문에 더 좋은 길이 있어도 그 길로 가지 않는다. 그래서 기존의 길이 아닌 새로운 길을 탐험하는 exploration이 필요하다. 강의에서는 이 exploit과 exploration을 음식점을 고르는 것에 비유했다. 내가 음식점을 가던 곳만 가면 더 맛있고 괜찮은 곳이 있어도 알 수가 없다. 그러니까 exploration을 해서 더 좋은 곳을 찾는다는..

모두를 위한 RL강좌 정리하기(Lecture 3 ~ Lab 3)

이번에는 Q러닝에 대해서 배운다.에이전트가 목표를 찾아가는데 있어서 에이전트는 환경을 모르기 때문에 목표까지 어떻게 찾아갈 것인지를 정해야한다. 일단 첫번째로 에이전트는 랜덤하게 이동하면서 목표를 찾아갈 수 있다. 근데 다만, 이것보다는 이제부터 목표를 찾아가는 새로운 기준이 생기는데 그게 바로 Q다.Q는 에이전트에게 현재 상태에서 어디로 가야할지를 알려주는 것이라고 할 수 있다. 에이전트는 환경에 대해서는 잘 모르지만 Q를 알고 이 정보를 가지고 어디로 갈지를 결정하게 된다.Q함수는 다음과 같이 이루어져 있다. 즉 어떤 상태(state)와 행동(action)을 인풋으로 주면 그에 맞는 Q값이 리턴되는 것이다. 이런 함수같은 구조 때문에 Q함수라고도 부른다. 큐함수를 아는 에이전트는 그러면 이를 어떻게 ..

모두를 위한 RL강좌 정리하기(Lecture 1 ~ Lab 2)

강화학습을 혼자서 책만 보고 공부하는 것은 힘들다. 다양한 매체들을 이용해 공부를 시작해보자. 첫번째로 홍콩과기대 김성훈 교수님의 모두를 위한 RL 강좌를 보고 내용을 정리하며 공부. 강의 유튜브: https://www.youtube.com/user/hunkims/featured Lecture 1: 강화학습 소개 Reinforce라는 개념은 머신러닝뿐만 아니라 여러분야에서도 사용된다. 예를 들어 개를 훈련킬 때 Positive Reinforcement를 사용할 수 있는데, 개가 잘하면 거기에 맞는 reward를 주는 방식으로 개를 훈련시킬 수 있다. 사실 reinforce라는 아이디어는 우리가 그동안 학습해오던 모든 것들과 비슷하다. 우리는 환경과의 상호작용을 통해 칭찬을 받는다던지 그 밖의 부정적인 것..