본문 바로가기

프로그래밍/ML-Agents

[ML-agents] 란 무엇 인가?

https://github.com/Unity-Technologies/ml-agents

 

Unity-Technologies/ml-agents

Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub.

github.com

Ml-agents의 공식 홈페이지다. ML-agnets는 유니티에서 지능형 에이젼트를 학습하고 개발할 수 있는 환경을 제공하는 시뮬레이션 플러그인이다. 현재 2019년 5월 2일 기준으로 베타 버젼을 발표한 상태다.

 

ML-agents는 총 크게 4가지 방식으로 에이젼트를 학습시킬 수 있는 환경을 제공한다.

  1. Reinforcement Learning(강화학습)
  2. Imitation Learning(모방학습)
  3. neuroevolution
  4. 그 외의 다른 알고리즘

ML-agents는 게임 개발자들 그리고 AI 인공지는 연구자들을 위해 Unity에서 개발한 플랫폼이라고 보면 된다.(갓니티)

 

 깃헙을 보면 최근에도 계속 업데이트가 되고있다. 좋은 점은 텐서플로우에 기반하여, 최근에 발표된 여러가지 머신러닝 논문을 바탕으로 만들어진 알고리즘을 지속적으로 추가하겠다고 한다. 원래 Reinforcement Learning은 openAI gym이 가장 유명한 플랫폼이었고 많이 연구되었지만, mujoko(시뮬레이터)가 유료화가 되고 리눅스환경에서 돌아가기 때문에 불편한 점이 많았다. ML-agent는 게임 개발업계에서 de facto standard인 Unity를 시뮬레이터로 활용하기 때문에 많은 인공지능 연구자들이 openAI-gym에서 넘어오지 않을까 조심스레 예측해본다. (Mujoko 너무 비싸다)

 

ML-agents의 특징

  • Python으로 Control되는 Unity 환경
  • 10개 이상의 샘플 환경(Example)
  • 다양한 환경설정 값과, 훈련 시나리오
  • memory-enhanced Deep reinforcement learning(메모리 활용 심층 강화학습)
  • 쉽게 정의할 수 있는 커리큘럼 Learning 시나리오
  • 내장 되어있는 모방학습
  • 유연한 컨트롤 with on-demand decision making.
  • 네트워크 출력의 시각화
  • 쉬운 도커 셋업
  • 학습환경을 gym이라는 것으로 추상화
  • 유니티의 추론 엔진을 사용
  • 여러개들 동시에 학습시킬 수 있는 세팅 지원