논문주소:
https://arxiv.org/abs/2310.00971?utm_source=chatgpt.com
깃허브 레포:
https://github.com/jstyrud/BeBOP
새로운 작업에 대해 손쉽게 구성될 수 있어야 함
Behavior-based Bayesian Optimizationn and Planning(BeBOP)을 제안함. 일반적인 BT 생성을 위한 두가지 접근을 포함하고 있음. reactive planner과 Bayesian optimization을 통한 특정 파라메터 학습의 방법을 포함함.
-> SOTA RL보다 최대 46배 빠르면서 reward shaping에 덜 의존함.
또한 random forest surrogate model의 불확실성 추정을 수정하여 결과를 크게 향상시킴.
정의:
상황이 변하면 즉각 규칙대로 대응해 실시간 행동 정책 - planning을 길게 미리 계산하기보다 현재 상태와 BT에 따라 즉시 의사결정을 내려 실행하는 방식
-> 그냥 BT 쓴다는 말
여러 결정트리를 *부트스트랩 샘플로 학습해 강건한 비선형 회귀/분류기
** 부트스트랩: 원소를 복원추출로 여러개의 샘플링을 한 후, 각 샘플마다 평균, 표준편차, 회귀계수 등을 내어서 분포를 추정하는 절차
high cost의 실제 목적함수 f 대신, 관측 데이터로 근사모형 f^ 를 학습해 예측 평균 𝜇(𝑥) 𝜎(𝑥)을 제공하는 모델. BO의 코어임
하이퍼파라메터를 튜닝할 때, 어떤 파라메터를 바꾸면 성능이 좋아지는지 소수의 데이터만으로 찾아가는 최적화 방법
목적함수 f(x) (ex: 조작 성공률)를 직접 미분 불가라고 보고, 샘플 효율적으로 arg min, arg max f를 찾음
핵심 구성
1. Surrogate model f^ : 현재까지의 데이터 D = {(xi, y_i)}로 _f 를 근사
2. 획특함수 (Acquisition function) α(x ∣ D): 다음 실험점 x_t+1을 고르는 기준. 불확실+예측이익의 트레이드오프를 수치화
BO가 BT안의 구조의 연속 파라메터(거리, 속도, 힘)등을 적은 실험으로 최적화 -> Surrogate(RF)가 지금까지의 실험 데이터로 다음에 어디를 시도하면 이득이 클까? 추정 -> RF 불확실성 수정으로 σ(x) 신뢰도를 높여 획득함수가 더 현명한 판단하게 도움
로봇 policy를 환경에 맞춰서 빠르게 생성해야함. 기존에 두 가지 방법의 플래너가 있음. 물론 각각의 장단점 존재
따라서 대안으로 BT가 뜨고있음. 계층적, 순차적으로 task를 할 수 있게 해줌. 그리고 모듈형 구조를 가짐. 마지막으로 읽기 쉬워서 직점 분석 검증할 수 있어서 사람이 직접 수정할 수 있음. -> 뉴럴네트워크 기반 정책에 비해 강력함
Behavior-based Bayesian Optimization and Planning (BeBOP)를 제안함.
어떤 행동의 파라미터 값이 적절하게 설정되면 의도된 방식으로 작동할 것.
이 논문에서는 PDDL(Planning Domain Definition Language) planner(refer [38])를 사용함(https://arxiv.org/abs/1611.00230).
-> 논문 보면 refer [29], [34], [39]에서 확장된 버전 사용한다고 명시되어 있음
플래너의 입력으로서 모든 behavior는 다음을 가짐
"어떤 행동이 어떤 상태를 만든다"를 논리적으로 기술함.
(:action grasp
:precondition (and (object_visible ?obj)
(hand_empty))
:effect (and (holding ?obj)
(not (hand_empty))))
추가로 로봇의 작업은 goal conditions의 집합으로 정의됨
플래닝 과정은 goal conditions부터 출발하여 역방향 (Backward-chaining)으로 진행됨. 목표를 만족시키거나 다른 behavior의 사전조건을 만족시키는 행동들을 반복적으로 찾아 확장하며, 모든 조건이 충족될 때까지 이 과정을 계속함.
[39]의 플래너를 개선함 - (O. Gustavsson, et.al, Combining
Context Awareness and Planning to Learn Behavior Trees from Demonstration, RO-MAN, 2022)
1. single child를 가지는 control node를 제거하여 트리 간소화
2. 해당 behavior 바로 앞에 위치한 post-condition node를 제거.(이때, 모든 behavior는 실행 전에 내부적으로 post-condition을 검사한다고 가정)
또한 composite subtrees 개념을 도입함.
planning 후에, 특정 노드(leaf)는
이는 Reach와 Open이라는 두 behavior가 합쳐져 Place라는 스킬을 구성할 수 있고, Reach는 상황에 따라 문을 여는 행동(OpenDoor)이나 물체를 이동시키는 행동(MoveObject) 등으로 일반화 할 수 있음을 이용함.
policy를 최적화하기 위해 policy search formulation[46~48]을 따름.
π, u = π(x|θ) 수식에서 θ를 찾는 것이 목표. T 타임스텝 동안 policy를 실행할 때의 expected long-term reward를 최대화 하는 것.
여기서 BO를 이용해 이 파라미터들을 튜닝함.
주어진 BT에는 여러 action 노드가 있으며, 각 노드는 해당 작업에 대해 학습될 수 있는 0개 또는 그 이상의 파라메터를 가질 수 있음.
먼저 BT탐색하면서 adjustable parameters, domains, dependencies를 추출함.
HyperMapper(https://arxiv.org/pdf/1810.05236)의 맞춤형 BO 구현을 사용함. HyperMapper는 다양한 변수 타입과 최적값에 대한 uper prior를 지원하기 때문.
surrogate model에 대한 견고한 보상 측정치를 제공하고, BO가 훈련 데이터에 overfitting 하는 것을 방지하기 위해 각 파라메터 셋을 최대 20 에피소드깢비 평가함. 평가에는 robotsuite의 도메인 랜덤화를 활용하여 서로 다른 시드의 작업 환경을 사용함.
초기에 각 파라메터 셋을 서로 다른 랜덤화된 작업 시뮬레이션에서 3회 실행함. 그 후 각 에피소드 후에 분산을 추정하고, 이 policy가 현재 최고 policy보다 더 좋을 확률을 계산한다. 그 확률이 5% 이상인 동안, 또는 총 20 에피소드에 도달할 때까지 추가 에피소드를 계속 실행한다. 훈련 중에는 surrogate model의 일관성을 높이기 위해 동일한 랜덤 시드에서 각 파라메터 셋을 평가한다.
BO에서 일반적으로 사용되는 surrogate model은 GP지만 GP는 목적함수가 일정 수준의 smoothness를 가진다고 가정한다 -> 로보틱스에서는 사소한 오차가 reward에 극적인 차이가 발생하기 때문에 non-smooth에 더 적합한 Random Forest를 대신 사용함. 하지만 GP랑 다르게 RF는 variance estimate를 제공하지 않음. 분선은 BO에서 exploration(탐색)과 exploitation(활용) 사이의 균형을 결정하는데 핵심적인 요소임.-> Hutter는 tree들 간의 경험적 예측 분산(empirical prediction variance)(여러 트리가 같은 입력에 대해 얼마나 다르게 예측하는지로 불확실성 추정)을 사용하는 방법 제시, but 이전 데이터로부터 멀어질수록 불확실성이 자연스럽게 커지지 않는다는 한계 가짐 -> 탐색 저하.
최적화 성능 향상을 위해
Planner와 BO를 결합하기 위해 각 task에 대해 planner를 실행하여 BT 구조를 얻는다 - 이 planner는 각 behavior에 대해 일부 파라메터를 미정 상태로 남겨 두고 계획 단계에서 이 behavior들이 성공할 수 있는 파라메터의 집합이 존재한다고 가정함. -> 이게 바로 BO의 입력
planner로부터 생성된 BT가 계층적 구조를 가지기 때문에 BT를 여러 subtree로 나누어 점진적으로 더 큰 트리들을 순차적으로 학습할 수 있다.
물체를 이동시키는 작업의 subtask는 grasping인 갓 처럼 더 작은 아휘 task를 먼저 학습하고, 그때 얻은 최적 파라메터를 다음 더 큰 subtree의 prior로 사용하는 방식 -> BO의 학습 시간이 파라메터 수에 따라 super-linear으로 증가한다는 점을 고려할 때 최적화 속도를 향상 시킬 수 있음 -> Cascaded BeBOP으로 부름
*구체적 절차
*BO학습 절차
각 n번째 서브트리에 대해
그 후,
-> BT 기반 자율행동 학습을 안정적이고 점진적으로 구현함 - subtask 파라메터를 상위단에 넘겨줘서 후에 context aware tunning이 가능하도록 함.