Courses
Reviews
- Mastering Unity Machine Learning Agents (Application Edition)
- Complete Guide to Unity Machine Learning Agents (Basics)
- Complete Guide to Unity Machine Learning Agents (Basics)
- Mastering Unity Machine Learning Agents (Application Edition)
- Mastering Unity Machine Learning Agents (Application Edition)
Posts
Q&A
(PPO ์ค์ต 2) total_loss ๊ตฌํ๋ ์ฝ๋์์ action entropy ๋ ์ด๋ป๊ฒ ๊ณ์ฐ๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
์ฉ๊ณค๋ ์๋ ํ์ธ์! ๋ง์ํด์ฃผ์ ๋๋ก PPO์์ action entropy๊ฐ์ ์์คํจ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ง ํด๋น ๊ฐ์ ์ ํ์ ์ธ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๊ณ , ๊ฐ์ ํ๊ฒฝ๋ค์์ clipped surrogate objective ๊ฐ๋ง ๊ฐ์ง๊ณ ํ์ต์ด ์ ๋์ด์ ์๋ตํ์์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 214
Q&A
DQN ํ์ต ๋ฐ ์ ์ฅ ๋ชจ๋ธ ๋ถ๋ฌ์ค๊ธฐ ์๋ ๋ฌธ์
์๋ ํ์ธ์!์๊ฐํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!์ค๋ช ํด์ฃผ์ ๋ด์ฉ์ผ๋ก๋ ์ ํํ ์์ธ์ ํ์ ํ๊ธฐ๋ ์ด๋ ค์ธ ๊ฒ ๊ฐ์๋ฐ์, ํน์ train/test ์์ ์บก์ณ๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค!๋ง์ํด์ฃผ์ ๋ด์ฉ์ ํ ๋๋ก ์์ฌ์ด ๊ฐ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, DQN ์๊ณ ๋ฆฌ์ฆ์ ํ์ต์ ์งํํ ๋ train_start_step์ด ์ง๋๊ณ ๋ ํ ๋ถํฐ ๋งค ์คํ ๋ง๋ค train_model ํจ์๋ฅผ ํตํด ๋คํธ์ํฌ ์ต์ ํ๋ฅผ ์งํํ๋๋ฐ์. ์ด๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ํตํด ํ์ต์ ์งํํ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ GPU๊ฐ ์๋ ๋จธ์ ์ด๋ผ๋ฉด test ๋ณด๋ค ๋๋ ค์ง ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ ์๋๋ผ๋ฉด ํ์ต์ ์งํํ ๋ ํ๋ ์์ด ๋๊ฒจ์ ๋ณด์ด๋๋ฐ์, ์ด์ ๋ฐ๋ผ ๋๋ฆฌ๊ฒ ๋ณด์ผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค (_ _)
- 1
- 1
- 376
Q&A
A2C ์๊ณ ๋ฆฌ์ฆ์ ๋๋ก ํ๊ฒฝ์ ์ ์ฉํ๋ ค๋ฉด
์์ค๋ ์๋ ํ์ธ์! ๊ทธ๋ฆฌ๋ ์๋์์ ์ฌ์ฉํ A2C๋ฅผ ๋๋ก ํ๊ฒฝ์ ์ ์ฉํด๋ณด์๋ ค๊ณ ํ๋ ๊ฒ ๊ฐ์๋ฐ์.ํ์ฌ ๊ทธ๋ฆฌ๋ ์๋๋ discrete action ํ๊ฒฝ์ด๊ณ ๋๋ก ํ๊ฒฝ์ continuous action ํ๊ฒฝ์ ๋๋ค.๋ฐ๋ผ์ ๊ทธ๋ฆฌ๋ ์๋ ํ๊ฒฝ์์ ์ฌ์ฉํ A2C๋ discrete action ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋ผ์์ด, ๋ฐ๋ก continuous action ํ๊ฒฝ์ธ ๋๋ก ์ ๋ฐ๋ก ์ ์ฉํ๊ธฐ๋ ์ด๋ ค์ด ์ํฉ์ธ๋ฐ์. ๋๋ก ์ A2C ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๊ธฐ ์ํด์ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค.์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ ์๋๋ก ๊ธฐ์กด์ discrete action ๊ธฐ๋ฐ์ A2C๋ฅผ continuous action ๊ธฐ๋ฐ์ผ๋ก ์์ ํ๋ ๊ฒ์ด ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ ์ฉํ๊ธฐ ์ํด์๋ Actor ๋คํธ์ํฌ์์ ํ๋ฅ ์ ๋ฝ๋ ๊ฒ์ด ์๋๋ผ, ํ๊ท ๊ณผ ํ์คํธ์ฐจ๋ฅผ ๊ตฌํด ๊ฐ์ฐ์์ ์ํ๋ง์ ํด์ผ ํฉ๋๋ค. ์ด์ ๊ด๋ จํด์ ํ์ต ์ฝ๋๋ ์์ ํด์ผ ํ๊ตฌ์. (์ฐธ๊ณ )๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ฝ๋ ์์ ์ ์ต์ํํ๊ธฐ ์ํด ๋๋ก ํ๊ฒฝ์ (-1, 0, 0), (0, -1, 0), (0, 0, -1), (1, 0, 0), (0, 1, 0), (0, 0, 1) ์ด๋ ๊ฒ 6๊ฐ์ discrete action ์ผ๋ก ๊ตฌ์ฑ๋ผ์๋ค๊ณ ๊ฐ์ฃผํ๋ ๊ฒ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ ์ฉํ๊ธฐ ์ํด์ action space๋ฅผ 6์ผ๋ก ์ ์ํ๊ณ action ์ ํ์ฒ๋ฆฌํ์ฌ ํ๊ฒฝ์ ๋ฃ์ด์ฃผ๋ ์ฝ๋๋ง ์์ฑํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ ์ฉํ๊ธฐ ์ํด ์ฌ๋ ค์ฃผ์ ์ฝ๋์์ ์๋์ ๊ฐ์ด ์์ ํด์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. (์์ ์ด ํ์ํ ๋ถ๋ถ๋ง ์์ฑํ์์ต๋๋ค.)... ... # ํ๋ผ๋ฏธํฐ ๊ฐ ์ธํ ๋ถ๋ถ action_size = 6 ... ... # Main ํจ์ ๋ถ๋ถ state = dec.obs[0] action = agent.get_action(state, train_mode) action_support = np.concatenate([-np.eye(action_size//2) , np.eye(action_size//2)], axis=0) real_action = action_support[action[0]] action_tuple = ActionTuple() action_tuple.add_continuous(real_action) env.set_actions(behavior_name, action_tuple) env.step() dec, term = env.get_steps(behavior_name) done = len(term.agent_id) > 0 reward = term.reward if done else dec.reward next_state = term.obs[0] if done else dec.obs[0] score += reward[0] if train_mode: # ํ์ต ์ํ actor_loss, critic_loss = agent.train_model(state, action[0], [reward], next_state, [done]) actor_losses.append(actor_loss) critic_losses.append(critic_loss) ... ... ์ถ๊ฐ๋ก ๊ถ๊ธํ์ ๊ฒ ์๋ค๋ฉด ํธํ๊ฒ ๋ฌผ์ด๋ด์ฃผ์ธ์.๊ฐ์ฌํฉ๋๋ค :)
- 1
- 1
- 764
Q&A
์คํฌ๋ฆฝํธ ์คํ ์ค ํ์ผ ๊ฒฝ๋ก ๊ด๋ จ ์ค๋ฅ๊ฐ ๋ ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค
์๋ ํ์ธ์!test_mode์ time_scale ์ค์ ์ ์ ํด์ฃผ์ ๊ฒ ๊ฐ์๋ฐ์~ํน์ TEST START ๋ ์ถ๋ ฅ๋๋์ง ๊ถ๊ธํฉ๋๋ค~! ๋ง์ฝ ์ด ๋ฌธ๊ตฌ๋ ์ถ๋ ฅ์ด ๋์ง ์์๋ค๋ฉด train_mode๊ฐ True ์์ ์์ฌํด๋ด์ผํ ๊ฑฐ ๊ฐ์๋ฐ์. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ train_mode๊ฐ False์ธ๋ฐ ๊ฐ์ ํ์์ด ๊ณ์ ์ผ์ด๋๋ค๋ฉด time.sleep์ ์ด์ฉํด์ผํ ๊ฒ ๊ฐ์ต๋๋ค...!
- 0
- 2
- 408
Q&A
ํ์ต๋ ๋ชจ๋ธ๋ก ๊ฒ์ ์ ์ฅํ๊ธฐ
์๋ ํ์ธ์!ํ์ต๋ ๋ชจ๋ธ์ด ํ๋ ์ด ํ๋ ์์์ ์ ์ฅํ๋ ๊ฒ์ ๋ฐ๋ก ml-agents์ ๊ธฐ๋ฅ์ ์ด์ฉํ๋ ๊ฒ์ด ์๋๊ณ , ๋ณ๋์ ๋ นํ ํด์ ์ด์ฉํด์ ์งํํ์์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค :)
- 1
- 1
- 217