본문 바로가기

유니티 ML Agents/머신러닝과 강화학습 코딩

1. 개발환경 설치

아나콘다는 데이터 사이언스와 머신러닝에 필요한 다양한 파이썬과 R 관련 모듈을 모아 놓은 무료 배포 패키지이다. 파이썬을 사용해서 머신러닝을 할 때 pandas, numpy, tensorflow 등 다양한 패키지가 필요하다. 하지만 아나콘다만 설치하면 이 모든 패키지들이 기본적으로 설치되어 있기 때문이 다른 프로그램을 추가로 설치할 필요가 없다.


아나콘다 설치


아나콘다 리파지토리 페이지에 가면 다양한 아나콘다 버전을 다운로드할 수 있다. ML 에이전트를 실행하기 위해서는 호환되는 버전을 설치해야 하는데 ML 에이전트 0.5 버전과는 아나콘다 3 5.1 버전이 적합하다.


다음 사이트에서 https://repo.anaconda.com/archive/ 윈도우 64bits용 아나콘다 5.1 버전을 받아서 설치하자.


다운로드 받은 파일을 클릭하면 설치가 진행되는데 다른 것들은 디폴트 설정으로 놔두고 설치 위치만 변경한다. C:\anaconda3 디렉토리를 만들어서 설치 위치를 지정하자.


아나콘다 환경변수 설정


설치가 완료되면 환경 변수에 아나콘다 패스를 설정해야 한다. (1) 윈도우 검색 창을 열고 (2) 검색어에 “환경 변수"를 입력하면 시스템 환경 변수 편집 프로그램을 찾을 수 있다. (3) 편집 프로그램을 클릭하면 시스템 속성 창이 나온다. (4) 환경 변수 버튼을 눌러 환경 변수를 수정할 수 있는 창을 열자. (5) Path 항목을 선택하고 (6) 편집 버튼을 눌려 Path 환경 변수를 편집한다. 프로그램을 설치할 때 입력한 아나콘다 설치 (7) 폴더 C:\anaconda3 C:\anaconda3\Scripts를 입력한다.


ML-agents 실행 환경 만들기


아나콘다 설치가 끝났으면 강화학습 테스트를 위한 환경을 구성해보자. 강화학습 테스트 환경을 별도로 만들면 다른 파이썬 환경에 영향을 주지 않고 강화학습 만을 위한 새로운 환경을 구축할 수 있다. 최근 설치 프로그램 목록을 보면 아나콘다 관리를 쉽게 도와주는 Anaconda Navigator라는 프로그램을 확인할 수 있다. (1) Anaconda Navigator를 클릭하자. (2) 좌측에 Environments 항목을 클릭하고 하단에 나오는 (3) Create 버튼을 눌러 환경 생성 화면을 열어보자. (4) 이름 항목에 rlearning를 입력하고 마지막으로 (5) 생성 버튼을 누르면 환경 생성이 완료된다.


ML-agents 실행 환경 활성화


위에서 설정한 ml-agents 환경 우측에 있는 세모 아이콘을 클릭하고 Open Terminal 메뉴를 선택하면 ML Agent를 위한 실행 환경을 오픈할 수 있다. 앞으로 ML Agent를 사용하고자 하면 아나콘다 네비게이터를 사용해 ml-agent 환경을 열어야 한다. 이제 ML Agent 실행에 필요한 패키지를 설치해 보자.


ML-agents 실행 환경 활성화


아나콘다 네비게이터를 사용하지 않고 ml-agents 실행 환경을 활성화 시킬 수 있다. 아나콘다에서 제공하는 activate 명령어를 사용하는 것인데 먼저 명령 프롬프트를 실행시키고 [activate ml-agents] 명령어를 실행하면 된다. 사용자의 기호에 따라 어떤 방법을 사용할지 선택하면 된다.


아나콘다 텐서플로우 설치


텐서플로우를 설치해보자. 파이썬에서 지원하는 pip 모듈을 활용하면 프로그램을 쉽게 다운로드 받고 설치할 수 있다. 먼저 pip을 최신 버전으로 유지하는 것이 좋다. (1) python -m pip install --upgrade pip 명령어를 사용해서 pip을 업그레이드 하자. 다음으로 텐서플로우를 설치하는데 ML Agent에서 권장하는 버전을 설치하는 것이 좋다. 현재(2018 10 30) ML Agent 홈페이지에서는 1.7.1 버전 설치를 권장한다. (2) python -m pip install tensorflow==1.7.1 명령어를 사용해서 텐서플로우를 설치하자. 명령어가 실행되고 마지막에 (3) Successfully installed 메시지를 확인하면 설치가 정상적으로 끝난 것이다.


아나콘다 nodejs 패키지 설치

주피터 노트북을 사용하기 위해서는 nodejs 5 버전 이상이 필요하다. 아나콘다에서 기본으로 설치된 버전이 요구하는 버전 보다 낮을 수 있다. 아나콘다에서도 패키지를 쉽게 설치할 수 있는 파이썬에서 제공하는 pip과 유사한 conda라는 프로그램을 제공하고 있다.


[conda install 패키지명]과 같이 프로그램을 실행하면 아나콘다에서 제공하는 리파지토리에서 패키지를 다운로드 받아 자동으로 설치된다. 데이터 분석에 최적화된 패키지를 제공하기 때문에 혹시라도 동일한 이름의 다른 패키지가 설치되는 오류를 방지할 수 있다.


아나콘다 환경에서 패키지를 설치할 때는 앞에서 사용한 pip 명령어 보다는 conda 명령어를 사용하는 것을 추천하고 싶다. 하지만 아나콘다에서 제공하지 않는 패키지의 경우 pip 명령어를 사용해서 설치해야 한다.


아나콘다 nb_conda 패키지 설치


주피터 노트북을 설치하고 바로 실행하면 아나콘다 실행 환경(rlearnig)에 접근할 수 없다. 따라서 텐서플로우 또한 실행할 수 없게 된다. 아나콘다 실행 환경에 접속하기 위해서 nb_conda 패키지를 설치해야 한다.


아나콘다 pandas 패키지 설치


matplotlib은 그래프를 그려주는 데이터 시각화 도구이다. 데이터와 학습 결과를 분석하기 위해서는 반드시 데이터의 형태를 살펴봐야 하기 때문에 시각화 관련 패키지를 반드시 설치해야 한다.


아나콘다 matplotlib 패키지 설치

matplotlib은 그래프를 그려주는 데이터 시각화 도구이다. 데이터와 학습 결과를 분석하기 위해서는 반드시 데이터의 형태를 살펴봐야 하기 때문에 시각화 관련 패키지를 반드시 설치해야 한다.


아나콘다 scikit-learn 패키지 설치


scikit-learn은 머신러닝을 지원하는 훌륭한 라이브러리이다. scikit-learn에서는 데이터 처리를 위한 다양한 함수와 학습 데이터 생성을 위한 기능을 지원하고 있다. 테스트를 위한 학습 데이터 생성 기능을 사용하기 위해 scikit-learn을 설치하자.


아나콘다 gym 패키지 설치


강화학습을 테스트하기 위해 OpenAI에서 제공하는 테스트 프로그램을 설치하자. OpenAI에서는 gym이라는 패키지를 통해 다양한 프로그램을 제공하는데 여기에서는 카트폴 프로그램을 사용한다.