Почему ACT превосходно справляется с бимануальными задачами
ACT (Action Chunked Transformers) изначально был разработан специально для исследований бимануальных манипуляций. Его основная идея — то, что прогнозирование последовательности будущих действий (кусков), а не одношаговых действий, снижает совокупную ошибку — особенно ценна для бимануальных задач, где небольшая ошибка в траектории одной руки может вызвать каскадный сбой в выполнении другой руки.
Механизм разделения действий эффективно дает политике горизонт планирования. Вместо того, чтобы выполнять одну совместную команду на каждом временном шаге 50 Гц, ACT планирует на 100 шагов вперед и плавно выполняет выполнение. Для задачи переключения это означает, что политика может «видеть» приближение обоих плеч к точке переключения как часть запланированной последовательности, а не реагировать на каждый кадр независимо. Эмпирически это вдвое снижает количество сбоев в середине передачи по сравнению с нефрагментированными подходами к двуручным наборам данных.
Одно предостережение: ACT предполагает, что демонстрации в вашем наборе данных представляют собой последовательная стратегия. Если разные демонстрации демонстрируют принципиально разные способы выполнения передачи обслуживания — разные руки, которые инициируют передачу, разную высоту передачи обслуживания — компоненту CVAE будет сложно закодировать единый стиль. Все ваши 100 демонстраций должны использовать одну и ту же стратегию движения.
Учебное командование
--device cuda отметьте, если у вас есть графический процессор. Варианты облачных графических процессоров (Lambda Labs, Vast.ai) стоят около 0,50–1,50 долларов в час за необходимое оборудование.
Чтение кривых бимануального обучения
Кривые бимануального обучения отличаются от кривых однорукого обучения в одном важном отношении: у вас есть два пространства действий, и политика должна научиться их координировать. Следите за этими закономерностями на кривых потерь (см. в TensorBoard по адресу tensorboard --logdir ~/dk1-policies/):
L_reconstruction (общая потеря действия)
Должно уменьшаться с ~3,0 до уровня ниже 0,4 на 60 000 шагов. Плато выше 0,7 после 40 000 шагов указывает на проблемы с качеством набора данных — вероятно, слишком большая разница во времени или положении передачи обслуживания.
L_kl (регуляризация CVAE)
Начинается около 0 и медленно возрастает до 5–15. Если оно превышает 30, CVAE пытается найти встраивание компактного стиля. Это часто означает, что в ваших демонстрациях слишком много поведенческого разнообразия. Подумайте о том, чтобы отсеять нижние 20% наименее последовательных демонстраций и провести переподготовку.
Ошибка действия: лево или право
Если вы включите регистрацию ошибок действий для каждой руки (через training.log_per_action_dim=true переопределить), вы увидите отдельные кривые потерь для левого и правого измерения действия. Большой постоянный разрыв между этими двумя показателями указывает на то, что демонстрации одной группы более последовательны, чем другой — просмотрите контрольный список качества модуля 4 для отстающей группы.
Бимануальные гиперпараметры
| Параметр | По умолчанию (одна рука) | Рекомендуется бимануальный режим DK1 | Почему |
|---|---|---|---|
action_dim |
7 | 14 | Два рычага с 6 степенями свободы + 2 захвата = 14 измерений действия |
chunk_size |
100 | 100 | То же самое — разделение действий уже хорошо подходит для двуручной координации. |
dim_feedforward |
3200 | 3200 | Никаких изменений не требуется — большее пространство действия обрабатывается головкой действия, а не шириной трансформера. |
num_steps |
50000 | 80000 | Бимануальная координация требует большего количества этапов обучения для надежной конвергенции; 80 тысяч — это практический минимум для 100 демок. |
batch_size |
32 | 16 | Уменьшено, чтобы соответствовать более крупным образцам бимануального набора данных (потоки с двух камер) в памяти графического процессора. |
kl_weight |
10 | 10 | По умолчанию работает хорошо; увеличьте до 20, только если L_kl остается близким к нулю после 30 тыс. шагов (CVAE не обучается) |
Выбор контрольной точки
Сохраняйте контрольные точки каждые 5000 шагов (training.save_freq=5000). Не думайте, что последняя контрольная точка будет лучшей. Бимануальные политики могут переработаться при большом количестве шагов — политика учится идеально воспроизводить обучающие демонстрации, но теряет обобщение из-за небольших реальных изменений, с которыми вы столкнетесь во время оценки.
Выберите контрольную точку на шаге, где L_reconstruction достиг минимума, прежде чем начать выходить на плато или слегка увеличиваться. Обычно это находится в диапазоне 60 000–80 000 шагов для бимануальных наборов данных из 100 демонстраций. Разверните две контрольные точки (контрольную точку минимальных потерь и последнюю) и сравните их реальную производительность в модуле 6.
Глава 5 завершена, когда...
В ходе обучения выполнено 80 000 шагов, контрольные точки сохранены в ~/dk1-policies/cube-handoff-v1/. Финал L_reconstruction значение ниже 0,5. Вы определили лучшую контрольную точку на основе кривых потерь. Вы понимаете, почему кривая L_kl ведет себя так, как во время вашего пробега. Вы готовы к развертыванию на реальном оборудовании в модуле 6 — целевой уровень успеха при передаче куба составляет >60 % (бимануальный режим сложнее, чем одноручный, и это хороший результат при первом запуске).