안녕하세요, 수업은 다 듣고 실습부분만 조금씩 다시 따라가고 있는데요, 카트레이싱에서 환경 구축을 다 하고, KartAgent 코드도 깃허브에 있는거 그대로 C# 코드 옮기고, AcadeKart 코드도 수정을 다 했는데, 이상하게 카트가 1번 웨이포인트 지나고 리셋이 됩니다. 파이토치와 유니티 책에는 OnEpisode 함수에 for문이 있는데, 넣고 빼고는 상관이 없더라구요, 웨이포인트를 이어가지 못하거나 중간에 충돌이라고 판단하거나 기타 리셋 조건이 문제인것 같은데, 어딜 봐야 할지 조언을 주실 수 있으신가요?
Assets\ML-Agents\Examples\GridWorld\Scripts\GridAgent.cs(88,20): error CS1061: 'VectorSensor' does not contain a definition for 'addObservation' and no accessible extension method 'addObservation' accepting a first argument of type 'VectorSensor' could be found (are you missing a using directive or an assembly reference?) 유니티에 다음과 같은 오류가 뜨네요.
설명해주신대로면, min()을 사용하지 않아도 이미 clip()을 통해서 r()이 상항과 하한을 넘기면 a 혹은 b로 고정되고, 그 범위 안에 들어가면 r()이 그대로 나오는 것으로 생각됩니다. min()이 여기서 어떠한 역할을 하는지 궁금합니다. => 범위 안에 있을때 r(original) 과 r(clipped)가 달라지는 경우가 있나요?
안녕하세요, Drone 강의 부분에서, Area를 GridWorld에서 했던 것처럼 여러 Area를 복사하여 한 씬에 넣고 동시에 학습시키면 step이 빨리 오르는 효과를 볼 수 있을 것 같다고 생각했습니다. 한 area를 여러 개 복사한 뒤에 학습을 진행하려 했는데, 다음과 같은 오류로 잘 되지 않았습니다. 어떻게 해결해 볼 수 있을까요? critic_loss = F.mse_loss(target_q, q) Traceback (most recent call last): File " DDPG.py ", line 240, in <module> actor_loss, critic_loss = agent.train_model() File " DDPG.py ", line 144, in train_model reward = np.stack([b[2] for b in batch], axis=0) File "<__array_function__ internals>", line 6, in stack File "C:\Users\anaconda3\envs\mlagent2\lib\site-packages\numpy\core\shape_base.py", line 426, in stack raise ValueError('all input arrays must have the same shape') ValueError: all input arrays must have the same shape
C:\Users\(사용자)\Desktop\ml-agents-release_17>mlagents-learn config/ppo/3DBall.yaml --env=C:\Users\(사용자)\Desktop\Project\Env\3DBall --run-id=mlagent_test1 를 실행하면 Traceback (most recent call last): File "C:\Users\chosun\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in run module_as_main return run code(code, main_globals, None, File "C:\Users\chosun\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in run code exec(code, run_globals) File "C:\Users\chosun\PycharmProjects\pythonProject\venv\Scripts\mlagents-learn.exe\__main__.py", line 4, in <module> from mlagents.trainers.learn import main File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\trainers\learn.py", line 2, in <module> from mlagents import torch_utils File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\torch_utils\__init__.py", line 1, in <module> from mlagents.torch_utils.torch import torch as torch # noqa File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\torch_utils\torch.py", line 6, in <module> from mlagents.trainers.settings import TorchSettings File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\trainers\settings.py", line 625, in <module> class TrainerSettings(ExportableSettings): File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\trainers\settings.py", line 648, in TrainerSettings cattr.register_structure_hook( File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\cattrs\converters.py", line 280, in register_structure_hook self._structure_func.register_cls_list([(cl, func)]) File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\cattrs\dispatch.py", line 57, in register_cls_list self._single_dispatch.register(cls, handler) File "C:\Users\chosun\AppData\Local\Programs\Python\Python39\lib\functools.py", line 855, in register raise TypeError( TypeError: Invalid first argument to register() . typing.Dict[mlagents.trainers.settings.RewardSignalType, mlagents.trainers.settings.RewardSignalSettings] is not a class. 이렇게 오류가 뜨면서 실행이 안 돼요.. 정말 완전 초보라 해결을 못 하고 있는데 어떻게 하면 되나요..?
안녕하세요 DDPG 부분까지 재밌게 수강했습니다. 드론이 랜덤하게 생성되는 particle (goal)에 도달하는 것 말고 유니티 상에서 경로를 생성해 준 후 그 경로를 goal이라고 지정한 후에, 그 경로를 잘 따라가게끔 하는 것을 실습해보고자 합니다. 혹시, 유니티에서 경로를 생성하게끔 해주는 툴을 알고 계신가요? 강의 내용과는 거리가 있지만, 알고 계시다면 답변 부탁드립니다.
안녕하세요, 수업 따라가면서 코드 오류는 없었지만 내용에 질문이 생겨 글 남기게 되었습니다. 드론 agent 스크립트 중 Heuristic()에서 키보드 입력을 주었을 때 OnActionReceived()로 전달되어 드론을 움직이는 것으로 이해했는데, 학습 과정에서는 키보드 입력 없이 드론이 어떤 방법으로 스스로 움직이며 학습을 하는 것인지 궁금합니다. 감사합니다!
안녕하세요, 알고리즘 관련해서 질문드리고 싶어 글 남깁니다. 해당 드론 예제를 DDPG가 아닌 PPO로 학습할 경우 대체로 성능이 낮아질까요? 내장된 알고리즘이 아닌 DDPG를 선택해 사용하신 이유가 궁금합니다. 또한 드론과 goal 사이에 여러 장애물이 무작위로 배치될 경우에도 해당 알고리즘으로 학습이 무리없이 진행될지 질문드리고 싶습니다. 강화학습에 입문하면서 도움 많이 받고 있습니다. 감사합니다!
안녕하세요, mlagents-learn을 이용해 학습하고 적용하는 것까지는 무리 없이 수강하였는데, API를 이용해 학습하는 과정에서 질문이 생겨 문의 드립니다. (현재 아나콘다에서 실습 진행하고 있습니다.) 학습 알고리즘으로 PPO가 아닌 DQN을 사용하고자 한다면 강의와 같이 코드를 작성하여 저장하고, 저장한 경로에서 해당 파이썬 파일을 실행하면 학습이 진행되는 것이 맞을까요? 기타 다른 작업이 필요하지는 않은지 궁금합니다. 예를 들어, mlagents-learn을 사용해 학습을 할 때에 사용했던 yaml 파일 등을 따로 생성할 필요는 없는지 등에 대해 여쭙고싶습니다. 감사합니다!
안녕하세요, 저는 강화 학습 관련 관심이 생겨 여러 강화 학습 관련 프로젝트를 진행하고 있는 대학교 4학년 학생입니다. 인프런 강의를 기반으로 하여 프로젝트 진행에 도움을 많이 받고 있어 너무 감사합니다. 다름이 아니라 ml-agents 관련 질문이 있어 글을 쓰게 되었습니다. 강화 학습에서 reward shaping하는 기준 혹은 참고 논문이 있는 건지 궁금합니다. Training을 진행할 때 여러 번 경험한 내용으로 시간이 지나는데도 학습이 진행이 안된 경험이 있습니다. 이럴 때마다 작업 관리자로 CPU나 CUDA의 이용률을 보면 0프로 정도로 거의 움직이지 않는데 이를 병목 현상으로 예상하고 있습니다. 이를 해결하기 위해 아나콘다 프롬폼트에 키보드 interrupt를 하게 되면 멈췄던 학습이 실행 되어 여러 번 interrupt를 걸어 해결했습니다. 여러 다른 컴퓨터를 사용할 때마다 일어나는 공통적인 현상이라 혹시 제가 학습을 잘못 하고 있는 건지 아니면 이러한 현상에 대한 해결 방안이 따로 있는 건지 궁금합니다. 강화 학습 Training 방법을 찾아보면 제가 보기로는 두 가지 방법이 있었습니다. Unity 환경에서 하나의 프리팹 위에서 episode가 끝날 때마다 Agent나 environment의 구성을 랜덤으로 하여 진행하는 방식과 다른 environment를 여러개의 프리팹으로 하여 학습을 진행하는 방법이 있었습니다. 두 방법에 큰 차이가 있는 건지 궁금합니다. 항상 이해하기 쉽게 강화 학습 관련 강의를 해주셔서 다시 한번 감사드립니다.