W298.dev
ProjectsPostsAbout Me
youtube
Pages
ProjectsPostsAbout Me
Posts
TAGS
All
RL-Obstacle-Avoid
RL-Competitive
Robot-Escape
Assembly Definition
ML-Agent
RL-Obstacle-Avoid
RL-Competitive
Unity
RL-Obstacle-Avoid
RL-Competitive
Robot-Escape
Assembly Definition
SERIES
RL-Obstacle-Avoid
RL-Competitive
Robot-Escape

밀집된 장애물 피하기 (With Sensor)

/imgs/post_imgs/mlagent_04/1.png
위와 같이 장애물들이 상당히 밀집해 있는 Env 에서 Target 에 도달하는 학습을 진행해 보았다.
Target 은 Env 전 지역에서 랜덤 위치에 스폰된다.

Observation (First Try, Second Try)

sensor.AddObservation
rigidbody.velocity.x
rigidbody.velocity.z
이전 포스트와 동일한 센서와 Observation 값들을 사용한다.

First Try

Policy

SituationRewardEndEpisode
장애물에 닿아있는 동안틱당 (-30 / MaxStep)
타깃에 도달+5O
Living틱당 (-2 / MaxStep)

Hyperparameter

접기/펼치기
1behaviors:
2  RollerBall:
3    trainer_type: ppo
4    hyperparameters:
5      batch_size: 512
6      buffer_size: 2048
7      learning_rate: 3.0e-4
8      beta: 1e-3
9      epsilon: 0.15
10      lambd: 0.95
11      num_epoch: 4
12      learning_rate_schedule: linear
13      beta_schedule: constant
14      epsilon_schedule: linear
15    network_settings:
16      normalize: false
17      hidden_units: 128
18      num_layers: 2
19    reward_signals:
20      extrinsic:
21        gamma: 0.99
22        strength: 1.0
23    max_steps: 1000000
24    time_horizon: 256
25    summary_freq: 10000
26

Result

/imgs/post_imgs/mlagent_04/5.png
꽤 잘 되는 것 같으나... 아래와 같이 특정 구간에 타깃이 있을 시 센서에 잡혔음에도 잘 안되는것을 확인할 수 있다.
저 구간이 좀 크기가 작아서, 스폰이 많이 일어나지 않아, 저 구간의 학습량이 부족한 것 같다.
  • 특정 구간

Second Try (추가 학습)

/imgs/post_imgs/mlagent_04/4.png
위 구간이 잘 안되는 것 같아, 저 부분을 집중적으로 학습시켰다.
기존 학습한 모델에, 저 구간에만 타깃이 생성되는 Env 로 추가 학습을 진행시켰다.

Policy

SituationRewardEndEpisode
장애물에 닿아있는 동안틱당 (-30 / MaxStep)
타깃에 도달+5O
Living틱당 (-2 / MaxStep)
동일.

Hyperparameter

접기/펼치기
1behaviors:
2  RollerBall:
3    trainer_type: ppo
4    hyperparameters:
5      batch_size: 512
6      buffer_size: 2048
7      learning_rate: 3.0e-4
8      beta: 1e-3
9      epsilon: 0.15
10      lambd: 0.95
11      num_epoch: 4
12      learning_rate_schedule: linear
13      beta_schedule: constant
14      epsilon_schedule: linear
15    network_settings:
16      normalize: false
17      hidden_units: 128
18      num_layers: 2
19    reward_signals:
20      extrinsic:
21        gamma: 0.99
22        strength: 1.0
23    max_steps: 1000000
24    time_horizon: 256
25    summary_freq: 10000
26
동일.

Result

/imgs/post_imgs/mlagent_04/6.png
성공이다. 거의 5에 수렴한다.
ML-Agents 의 --resume 옵션을 이용해 기존에 학습된 결과에 추가 학습을 진행시켰다.
1M 이후 (빨간색 선 이후) 가 추가 학습된 그래프이다.
  • 잘 안되는 구간에서 잘 되는 것을 확인할 수 있고,
  • 전체 구간에서도 문제없이 잘 되는 것을 확인할 수 있다.