Giter VIP home page Giter VIP logo

Comments (2)

Kyushik avatar Kyushik commented on August 17, 2024

안녕하세요! 질문하신 사항들에 대해 답변 드립니다. 개인적인 의견이라 틀린 부분이 있을 수 있는 점 참고 부탁드립니다!

우선 여러 에이전트를 복사해서 사용하는 경우 DQN 같은 일반적인 on policy 알고리즘은 메모리에 다양한 데이터를 따로 쌓을 수 있긴 합니다. 이런 경우 한 메모리에 데이터를 공유하면 됩니다. 하지만 이런 경우보다 off policy 알고리즘을 사용할 때 여러 에이전트를 복사해서 사용하는게 더 효과적입니다. on policy 알고리즘의 경우 계속 데이터를 누적한 데이터셋을 만들고 거기서 일정 개수의 배치데이터를 뽑아서 학습하는 방식을 취하는데 off policy 알고리즘은 과거에 누적한 데이터를 사용할 수 없습니다. 이에 따라 여러 데이터를 뽑아서 배치 데이터로 만든 후 한번에 학습에 이용하는 것이 어렵습니다. 하지만 다수의 에이전트를 사용하는 경우 현재 타임스텝의 모든 에이전트 데이터를 하나의 배치데이터로 만들고 학습을 수행하면 됩니다. 이에 따라 여러 에이전트를 동시에 사용하는 경우 off policy 알고리즘에서도 다수의 배치 데이터를 통해 학습을 수행하는 것이 가능해집니다. 또한 A3C나 R2D2 같은 distributed RL 알고리즘의 경우 다수의 에이전트(worker)를 이용하여 학습을 수행합니다. 이런 알고리즘들은 다수의 환경을 만들어서 사용해야하므로 ML-Agents를 이용하면 손쉽게 환경 구성이 가능합니다.

적대적 DQN 만들기에서 다수의 브레인을 따로 사용하는 경우 각 브레인에 하나의 에이전트에 대한 데이터가 들어오게 설정하는 것이고 하나의 브레인을 사용하는 경우 모든 에이전트에 대한 데이터가 한꺼번에 들어오게 됩니다. 말씀하신 그 차이밖에 없고 이에 따라 강화학습 알고리즘에서 데이터를 받는 형태를 조금 다르게 해야합니다. 제 경험상 하나의 멀티에이전트 환경을 사용하는 경우 하나의 브레인을 사용하는 것이 더 알고리즘 짤 때 편했습니다. 하지만 멀티에이전트 환경을 여러개 복사해서 동시에 돌리는 경우에는 각 에이전트에 해당하는 브레인을 연결해주는 것이 알고리즘 짤 때 더 편했습니다. 두 방법 모두 사용해보시고 기호에 따라 사용하시면 될 것 같습니다!

직접 강화학습 알고리즘을 구현하실 경우 Pytorch를 이용하셔도 상관없습니다. ML-Agents에서 제공하는 강화학습 알고리즘을 사용하시는 경우 tensorflow를 설치하셔야 코드를 실행하실 수 있습니다.

from unity_ml_agents.

moonsh avatar moonsh commented on August 17, 2024

네 알겠습니다. 상세한 설명 감사합니다 !.

from unity_ml_agents.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.