유니티 ML Agents 강화학습
개요
- 지난 7~8월 동안 강화학습 공부와 같이 했었던 그리고 지금도 하고있는 Unity ML Agents의 예제를 정리하고자 함
강화학습
앞선 강화학습 게시글의 내용은 [ 바닥부터 배우는 강화 학습 ]의 책을 보며 공부했었다. 하지만 어렵거나 이해가 더 필요하다 생각한 부분이 있었고 이는 여러 책들의 설명을 참고하여 공부를 진행했다.
주로 참고한 책은 [ Do it! 강화학습 입문 ]이였다. 물론 이를 제외한 다양한 책 또한 도움이 많이 되었다.
이렇게 강화학습에 대한 틀을 잡았다고 생각했고 더 공부를 해보자 구글링을 하여 Unity의 ML Agents를 알게되었다.
하지만 ML Agents를 사용하면서 아직 기초가 부족하다 생각을 해서 ML Agents의 예제를 실행하면서 기초를 다시 공부하게 되었다.
강화학습과 ML Agents을 선택한 이유
처음 인공지능에 대해 공부할때 [ 케라스 창시자에게 배우는 딥러닝 ] 책을 보았고 이미지 분할 및 분류에 대해 관심이 생겼다.
학교에서 교수님이 의료 영상을 주제로 연구를 진행중이었고 자연스럽게 의료 영상 관련되어 대회 및 논문을 진행하였다. 또한 프로젝트를 진행했었는데 이때는 의료 데이터가 아닌 다른 데이터를 사용하여 진행되었다.
프로젝트를 진행하면서 학습할 모델도 선정했고 목표도 설정했지만 학습시킬 데이터가 부족하여 직접 사진을 찍고 라벨링 작업을 하는 등의 어려움이 있었다.
이후 내가 좋아하고 하고싶어는 것을 찾다가 강화학습에 대한 인터뷰를 보게 되었다.
데이터를 직접 만들어서 학습하는 것에서 매력을 느낀다는 말에 이거다하고 공부를 시작하게 되었다. 지금 와서 생각해보면 틀린 말은 아니지만 프로젝트를 진행하려면 환경을 만들어야 한다는건 데이터를 수집하는 것과 비슷한 느낌이라 생각이 된다.
공부 초기에는 openAI gym, Atari 등 이러한 환경에서 학습을 진행하는 등 문제가 없었지만 결국 환경을 수정하거나 스스로 만들수 있는 툴이 필요해 Unity ML Agents를 선택하게 되었다.
ML Agents
Unity - 2021.3.11f1 / ML Agents - Version 2.0.1 November 08, 2021
ML Agents는 Unity에서 제공하는 인공지능 에이전트의 학습을 지원하는 툴이다.
다음은 공식 홈페이지에서 설명하는 ML Agents의 특성이다.
또한 다음과 같이 다양한 환경 예제를 기본적으로 제공한다.
Tensorboard 또한 제공이 된다.
Unity는 C#을 이용해 구현하고 강화학습 알고리즘은 Python으로 구현이 되는데 이 둘의 통신을 보다 쉽게 해주는게 ML Agents이다.
학습하는 방식에는 두가지가 있다.
-
ML Agents의 라이브러리로 Unity환경을 Python 코드로 불러와서 강화학습 알고리즘을 적용하는 방식
-
터미널 상에서 ML Agents가 제공하는 파이썬 파일을 실행해 Unity환경을 실행하여 강화학습 알고리즘을 적용하는 방식
첫번째는 내가 원하는 강화학습 알고리즘을 Unity환경에 적용 할 수 있다는 장점이 있지만 구현하는데 어려움과 많은 시간이 필요할 수 있다.
두번째는 실행만 하면 학습을 진행할 수 있어 편리하고 쉽지만 ML Agents에서 제공하는 강화학습 알고리즘만 사용해야하는 단점이 있다.
강화학습을 시작한지 3개월의 시간이 지났다. 완벽하게 이해했다고 보긴 어렵지만 이렇게 문서화 하면서 내가 이해한게 맞는지 틀린게 있다면 수정하고 살펴보기 위해 작성을 시작한다.
게시물을 2개월 동안 올리지 못했는데 ML Agents를 혼자서 이것 저것 찾아보면서 하다 보니 오래 걸렸다. 진작에 github의 문서를 보았으면 더 쉽고 편하게 배웠을 텐데하는 아쉬움이 있다.
이틀 전에 ML Agents에 관한 책을 읽어보는데 설명이 잘 되어있어 이해가 잘 되었다. [ 파이토치와 유니티 ML-Agents로 배우는 강화학습 ] 정말 ML Agents에 관심이 있다면 추천하는 책이다. 이후 설명을 위해 책의 내용을 많이 사용할 것이다.
이후 게시물의 내용은 앞서 말한 책을 참고해서 두번째 방법에 대한 설명과 지금 논문을 위해 진행하면서 겪은 어려움을 기록하기 위해 작성할 것이다.
Leave a comment