מדיניות דיפוזיה ללימוד רובוטים: מה זה וכיצד להשתמש בו
מדיניות דיפוזיה, שהוצגה על ידי Chi et al. בשנת 2023, הביא את מהפכת הדוגמנות הגנרטיבית לבקרת הרובוטים. על ידי התייחסות ליצירת פעולות כבעיית גנאי, היא מטפלת בטבע הרב-מודאלי והממד הגבוה של התנהגות מניפולציה בדרכים שאלגוריתמים פשוטים יותר של שיבוט התנהגותי אינם יכולים. הנה מה שאתה צריך לדעת כדי ליישם אותו בפרויקט הרובוטיקה שלך.
מהי מדיניות פיזור?
Diffusion Policy הוא סוג של מדיניות בקרת רובוט המבוססת על מודלים הסתברותיים של דיפוזיה (DDPMs) - אותה מסגרת מתמטית שעומדת בבסיס מודלים של טקסט לתמונה כמו דיפוזיה יציבה. בהקשר הרובוט, ה"תמונה" שנוצרת היא רצף של פעולות רובוט (מסלול). החל מרעש גאוסי טהור בחלל הפעולה, המודל משפיל אותו באופן איטרטיבי בהתנה במצב התצפית הוויזואלית ומצב הרובוט, ומייצר רצף פעולה קוהרנטי ואיכותי לאחר 10-100 שלבים של דהינו.
התובנה המרכזית היא שמודלי דיפוזיה לומדים התפלגות הסתברות מלאה על פני פעולות במקום לחזות פעולה אחת הטובה ביותר. עבור רובוטיקה, זה קריטי. הדגמות אנושיות של אותה משימה הן באופן טבעי רב-מודאליות: אדם עשוי לתפוס כוס מצד שמאל או מצד ימין, בהתאם לרמזים הקשריים עדינים. מודל שחייב למוטט את ההתפלגות הזו לתחזית יחידה יתחייב למצב אחד ויכשל בחצי השני של הזמן, או ממוצע המצבים וייצר מסלול ביניים מוזר שנכשל תמיד. Diffusion Policy נמנע מכך על ידי מודל של התפלגות באופן מפורש ודגימה ממנה בזמן הסקת מסקנות.
מדוע מדיניות הדיפוזיה עולה על שיבוט התנהגותי סטנדרטי
שיבוט התנהגותי סטנדרטי (BC) מאמן מדיניות כבעיית רגרסיה מפוקחת: נתון תצפית, חזה פעולה. זה עובד כאשר המיפוי מתצפיות לפעולות הוא דטרמיניסטי ואנומודאלי. בפועל, משימות מניפולציה לעיתים רחוקות כן. אפילו משימות "פשוטות" כמו בחירת בלוק מהשולחן כוללות זוויות גישה תקפות מרובות, תנוחות אחיזה ותצורות טרום אחיזה. Naive BC מייצרת מדיניות המהססת בנקודות החלטה, מבצעת בחירות תנועה שנפגעות או נכשלות באופן מוחלט כאשר התפלגות המבחן שונה מעט מהאימונים.
מדיניות הדיפוזיה עולה באופן עקבי על קווי הבסיס של BC על חבילות מניפולציות בנצ'מרק. במאמר המקורי, הוא השיג תוצאות מתקדמות ב-11 מתוך 12 משימות ב-Benchmark של Robomimic, עם מרווחים גדולים במיוחד במשימות עם רב-מודליות פעולה גבוהה. בהערכות של רובוטים אמיתיים, Diffusion Policy הפגינה התנהגות התאוששות חזקה יותר - כאשר הרובוט הגיע למצב ביניים מעט שגוי, המדיניות יכלה להתאושש מכיוון שהיא דגימה מהתפלגות רחבה במקום בעקבות נתיב דטרמיניסטי.
בהשוואה ל-ACT (Action Chunking with Transformers), Diffusion Policy בדרך כלל מתפקד טוב יותר במשימות עם מולטי-מודאליות חזקה ופחות טוב במשימות עם תלות באופק ארוך, שבהן חיזוי הנתחים של ACT זורח. בפועל, שני האלגוריתמים תחרותיים מספיק כדי לאיכות וכמות של מערך הנתונים חשובים יותר מאשר בחירת ארכיטקטורת המדיניות. אם אינך בטוח באיזה להשתמש, נסה תחילה את ACT למהירות האיטרציה, ולאחר מכן מדיניות Diffusion אם אתה מבחין בכשלים בממוצע מצב.
דרישות נתונים למדיניות דיפוזיה
Diffusion Policy נהנית מיותר נתונים מאשר ACT, בעיקר מכיוון שלרשת ה-denoising יש יותר פרמטרים ומטרת דוגמנות עשירה יותר. המינימום המעשי הוא 100-200 הדגמות עבור משימה בודדת בתנאים מבוקרים. כדי להשיג ביצועי פריסה חזקים - טיפול בשינויי מיקום אובייקט, שינויים בתאורה ורעש חיישנים מדי פעם - הקצוב 300-500 הדגמות למשימה. בניגוד ל-ACT, Diffusion Policy נוטה להמשיך ולהשתפר עם נתונים נוספים עד גדלי נתונים גדולים למדי, מה שהופך אותה לבחירה הטובה יותר אם אתה מתכנן להשקיע במאמץ לאיסוף נתונים בקנה מידה גדול.
גיוון הנתונים חשוב לא פחות מהנפח. הדגמות צריכות להשתרע על טווח של מיקומי אובייקטים, כיוונים ותצורות סצנה שאתה מצפה בפריסה. מקבץ צפוף של הפגנות עם חפצים תמיד באותו מקום בדיוק, ייצר מדיניות שנכשלת ברגע שאובייקט מוזז בכמה סנטימטרים. של SVRC שירות איסוף נתונים מנוהל עוקב אחר פרוטוקולי וריאציה מובנים - אקראי באופן שיטתי של מיקומי אובייקט, תנאי תאורה וסגנונות אחיזה של מפעיל - כדי להבטיח מערכי נתונים המייצרים מדיניות ניתנת להכללה.
גם לייצוג התצפית יש חשיבות משמעותית. מדיניות דיפוזיה עם מקודד תמונה של ResNet מאומן מקצה לקצה בדרך כלל עולה על מדיניות המשתמשת במקודדים קפואים שהוכשרו מראש בהפצות משימות צרות, אך מקודדים מאומנים מראש (R3M, MVP, DINO) מייצרים הכללה טובה יותר כאשר תנאי הבדיקה שונים מההדרכה. עבור רוב הפרויקטים המעשיים, התחל עם מקודד מאומן מראש כדי למקסם את הערך של מערך הנתונים שלך, ועבור להדרכה מקצה לקצה רק אם יש לך 500+ הדגמות וסביבה יציבה.
הגדרת הדרכה ודרישות מחשוב
יישום ההתייחסות של Diffusion Policy (זמין ב- Columbia Robotics Lab GitHub) מתאמן עם עמוד שדרה של UNet (הסקה מהירה יותר, קיבולת נמוכה יותר) או עמוד שדרה של Transformer (הסקה איטית יותר, קיבולת גבוהה יותר). עבור רוב הפרויקטים של משימה יחידה, גרסת UNet היא נקודת ההתחלה הנכונה. אימון על RTX 3090 או 4090 יחיד נמשך 4-12 שעות עבור מערך נתונים של 200 פרקים, תלוי ברזולוציית התצפית ואורך אופק הפעולה.
היפרפרמטרים עיקריים להגדרה נכונה: אופק הפעולה (כמה שלבים עתידיים לחזות - בדרך כלל 16-32 עבור משימות שולחן), מספר שלבי הדיפוזיה (100 עבור DDPM, 10-25 עבור DDIM עם אובדן איכות מינימלי), וחלון התצפית (כמה פריימים בעבר לכלול - בדרך כלל 2). אל תשנה את שלושתם בבת אחת; תקן את האחרים בעת כוונון אחד. השינוי המשפיע ביותר לשיפור ביצועי המדיניות הוא בדרך כלל הגדלת גודל הנתונים, לא כוונון היפרפרמטרים של ארכיטקטורה.
כדי להסיק על רובוט אמיתי, DDPM ב-100 צעדים הוא בדרך כלל איטי מדי עבור שליטה בתדר גבוה. השתמש במתזמן DDIM עם 10-25 שלבים, הפועל ב-~20Hz על RTX 3090 - מתאים לבקרת 10Hz עם מאגר. לחלופין, זיקוק מדיניות עקביות יכול להשיג הסקה של 1-3 שלבים עם ירידה מינימלית בביצועים למשימות פשוטות יותר.
שימוש ב-SVRC Data Services למדיניות דיפוזיה
של SVRC צינור שירותי נתונים מייצר מערכי נתונים המעוצבים לשימוש ישיר עם יישום הפניות של Diffusion Policy ומסגרת HuggingFace LeRobot. פרקים מאוחסנים כארכיוני ZARR עם זרמי תמונות מסונכרנים, מצב פרופריוספטיבי ופעולות ב-50Hz. סינון איכותי מסיר פרקים שבהם המשימה לא הושלמה בהצלחה, הרובוט התנגש בסביבה או היסוס של המפעיל יצר מסלולים לא מייצגים.
שירות האיסוף שלנו משתמש ב- פלטפורמת טל-פעולה SVRC עם בקרת מנהיגים-עוקבים בעלת זרוע כפולה, מצלמות מותקנות בפרק כף היד ומצלמות עיליות, ורישום כוח-מומנט אופציונלי. להדרכה מרובת משימות של מדיניות Diffusion - שבה מדיניות יחידה לומדת משימות מרובות המותנות במזהה משימה או שפה - אנו יכולים לאסוף גרסאות שונות של משימות בתוך אותו מסע פרסום ולספק מערך נתונים מאוחד. צוותים העובדים עם פלטפורמות החומרה OpenArm או ALOHA מקבלים תמיכה מקורית בחומרה; שילוב חומרה מותאם אישית זמין על פי בקשה. צור קשר עם הצוות שלנו כדי לדון בדרישות הנתונים ובציר הזמן שלך.