Reinforcement Learning
-
RNN Policy 에 관하여 - (1)Reinforcement Learning 2022. 10. 14. 16:28
강화학습을 여러 문제에 적용하면서 보통은 Policy의 아키텍처를 FC layer나 CNN으로 설정한다. Partially Observable한 문제를 해결하기 위해 state를 쌓아서 policy input으로 많이 사용하는데 RNN을 사용해서 해결할 수도 있다. Policy에 단지 RNN을 추가했을 뿐인데 전체적인 학습 과정에서 꽤나 변화가 발생한다. 이번 포스팅에서는 RNN Policy의 전반적인 내용을 정리한다. 1. RNN 보통 시퀀스를 처리하는 RNN의 구조는 위 그림과 같다. 원에 해당하는 것은 변수들이고 사각형은 뉴럴네트워크다. RNN은 이전시점의 은닉상태 ht−1와 현재 시점의 입력 xt을 받아서 ht를 출력한다. RNN이 LSTM 인지, GRU 인지에 따라 $..
-
[Paper Review] - Deep Reinforcement Learning at the Edge of the Statistical PrecipiceReinforcement Learning 2022. 9. 18. 20:47
논문을 읽은 이유 강화학습 논문을 구현하고 실험을 재현할 때, 논문대로 잘나오지 않는 것들이 너무나도 많았다. 하이퍼파라미터, 네트워크를 똑같이 설정했는데도 그대로 나오지 않았다. 이 때문에 performance metric에 문제가 있거나 실험횟수가 너무 적어서 그런 것이 아닌가 생각을 했어서 관련 논문을 찾다가 이 논문을 발견했다. 논문에서는 구간추정에 기반한 metric을 사용해야 한다고 주장한다. 논문을 제대로 이해하려면 통계적 추론에 대한 배경지식(신뢰구간, 가설검정)이 필요하다. TL;DR 강화학습에서 에이전트의 성능을 비교하기 위해 사분위수 평균(interquartile mean score)을 사용할 것을 제안한다. 점추정치 (normalized median, mean score)로만 결론을..
-
[Paper Review] - Beyond Tabula-Rasa: a Modular Reinforcement Learning Approach for Physically Embedded 3D SokobanReinforcement Learning 2022. 9. 2. 19:48
논문을 읽은 이유 우리의 뇌 중에서 브로카 영역이 언어를 담당한다고 알려진 것처럼, 뇌의 각 부위들이 특정 역할을 담당한다는 내용을 뇌과학책에서 보았다. 비슷한 원리로 강화학습의 에이전트의 정책 또는 정책을 근사하는 뉴럴 네트워크를 여러 모듈로 나누어서 각자의 역할을 담당하는 그런 연구가 없을까 하는 와중에 논문을 발견해서 읽게 되었다. TL;DR 강화학습의 구성요소들을 여러 모듈로 나누어서 문제를 푸는 방식을 제안했다. Mujoco 기반의 Sokoban 문제에서 기존 10%도 안되던 테스크 성공률은 70퍼센트 넘게 개선했다. 생각해볼 것들 Tabula rasa의 의미? -> 위키백과에 따르면 어떤 인간이 태어날 때에는 정신적인 어떠한 기제도 미리 갖추지 않고 마음이 '빈' 백지와도 같은 상태로 태어나며..
-
[Paper Review] - IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner ArchitecturesReinforcement Learning 2022. 9. 2. 11:09
TL;DR 강화학습 에이전트를 더 빠르게 학습시키기위한 분산처리 아키텍처를 제안. 아키텍처는 비동기적으로 동작하는 Actor와 Learner로 구성되며, Off-policy 업데이트 방법인 V-trace를 제안하였음. 생각해봐야할 것 왜 분산 강화학습 알고리즘의 개발동기는 무엇일까? 알고리즘의 학습 루프에서 어떤 부분들이 병목현상을 일으키는가? IMPALA가 해결하고자 하는 것은 무엇인가? (contribution) Ape-X, A3C, Batched A2C, IMPALA 간의 차이점은 무엇일까? Retrace labmda 는 무엇인가? Abstract 본 논문에서는 하나의 강화학습 에이전트에 단일 파라미터 셋을 사용해서 task 들의 large collection 을 풀고자 한다. 즉, 같은 환경을 여..
-
5. 가상환경 설정 및 라이브러리 설치 (우분투)Reinforcement Learning/마인크래프트로 배우는 강화학습 2021. 8. 7. 16:51
개발환경을 효율적으로 관리하기 위해서 아나콘다의 가상환경을 사용하게 됩니다. 가상환경은 쉽게 설명하면 원하는 파이썬 모듈만 모아서 관리하는 파이썬 환경이라고 생각하시면 되겠습니다. 예를 들어 가상환경 1에서는 파이토치 1.7을 쓰고 가상환경 2에서는 텐서플로우2만 사용하는 식입니다. 직접 가상환경을 만들어보겠습니다. (1) 가상환경 만들기 우선 Ctrl + Alt + T를 통해 터미널을 켜주세요. 그리고 다음과 같이 입력합니다. conda create -n [환경이름] python=3.7 저는 환경이름을 rlenv라고 설정하겠습니다. conda create -n rlenv python=3.7 그 후, conda activate [환경이름]을 통해 가상환경을 활성화할 수 있습니다. 이제부터 여러가지 라이브..
-
4. Malmo 설치 (우분투, 윈도우)Reinforcement Learning/마인크래프트로 배우는 강화학습 2021. 7. 19. 00:36
Malmo는 마이크로소프트에서 개발한 마인크래프트 인공지능 플랫폼입니다. 파이썬, C++, JAVA를 통해 구현한 코드로 게임의 에이전트를 제어할 수 있게 됩니다. 그럼 Malmo를 설치해보겠습니다. (1) 우분투에서의 Malmo 설치 터미널을 실행해서 다음과 같이 코드를 입력합니다. sudo apt-get install libboost-all-dev libpython3.5 openjdk-8-jdk ffmpeg python-tk python-imaging-tk sudo update-ca-certificates -f 저희는 이미 앞서 우분투에 필요한 패키지들을 설치할 때 미리 설치를 다 했습니다. 혹시나 빠진 것이 있을 수 있으니 다시 터미널에 입력해보세요. https://github.com/microso..
-
3. 개발도구 설치Reinforcement Learning/마인크래프트로 배우는 강화학습 2021. 7. 18. 04:21
본격적으로 개발에 필요한 툴들을 설치하기 위해 Anaconda, Pycham, Jupyter notebook 등의 프로그램을 설치해야 합니다. (1) Anaconda https://www.anaconda.com/products/individual Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 위 링크로 들어가셔서 Anaconda Individual Edition을 다운로드 합니다. 모두 다운로드되었다면 왼쪽 독에서 파일 탐색기를..
-
2. 우분투 작업 환경 세팅Reinforcement Learning/마인크래프트로 배우는 강화학습 2021. 7. 17. 00:41
이번에는 우분투 환경 세팅을 해보겠습니다. (1) 한글 키보드 세팅 우분투 오른쪽 상단의 부분을 클릭해서 설정을 열 수 있습니다. Manage installed Languages를 누릅니다 그러면 위의 그림과 같은 창이 뜨면서 추가적으로 업데이트가 진행됩니다. 업데이트가 완료되었다면 다시 재부팅을 합시다. 다시 설정창을 열어서 + 버튼을 누릅시다 그 후, Korean을 찾아서 선택하고 Korean (Hangul)을 선택 후 Add를 누릅니다. 이후 위 그림에서 Korean(Hangul) 탭에서 톱니바퀴 모양을 누릅니다. Add 를 누른 후 오른쪽 Alt 버튼을 눌러서 키를 할당합니다. 각자의 키보드에 맞게 한영버튼을 할당해주시면 됩니다. (2) 필수 패키지 설치 우분투에서는 터미널을 통해 간단하게 패키지..