Інженери навчили роботів не довіряти своїм навчальним моделям

Робот-маніпулятор з лабораторії американських інженерів виконав кілька типів завдань із мотузкою у 150 різних середовищах завдяки тому, що вчені навчили його не довіряти навчальним моделям. Робот почав перевіряти свої навчальні моделі на надійність для різних ситуацій, враховуючи особливості завдання, а його спроби піднести дріт зарядного пристрою до телефону дослідники описали у журналі Science Robotics.

Робот тягне дріт до телефона (і не довіряє своїй навчальній моделі). University of Michigan ARM Lab / YouTube

Робот тягне дріт до телефона (і не довіряє своїй навчальній моделі). University of Michigan ARM Lab / YouTube

Чому роботам варто перестати довіряти навчальним моделям?

Не складно здогадатися, що за межами лабораторних експериментів, де інженери дбайливо розкладають перешкоди для своїх роботів, світ значно відрізняється. Найбільш поширені у робототехніці методи управління і планування руху для роботів засновані на моделях для прогнозування результатів потенційних дій. Однак у реальному неструктурованому середовищі її припущення (чи передбачення) можуть не виправдатися і зробити модель ненадійною. Навіть динамічні навчальні моделі, які створені, щоб навчити техніку планувати свій рух у середовищах з високим ступенем свободи, тобто у непередбачуваних умовах, не можуть підготувати робота до дійсно непередбачуваного середовища — вашого будинку, виробництва або дороги.

Як справляються із помилками?

Ми можемо навчитися розробляти більш досконалі моделі, однак варто враховувати, що незалежно від того, наскільки потужні наші симулятори або наскільки великі у них набори даних, моделі іноді будуть помилятися. Але що гірше, навіть оцінка того, наскільки помилковою є модель, є ще важчим. Адже розподіл невизначеності на основі даних після навчання не врахує нові сценарії, якщо наприклад, ввести нові типи обмежень, які модель буквально не уявляла.

Робототехніки рідко звертаються до проблеми ненадійних моделей безпосередньо — замість цього вони часто вдаються до високочастотного перепланування, сподіваючись компенсувати помилки моделі вже у реальному часі. Втім, такий підхід передбачає, що помилкова модель якимось чином все ж зможе здійснити корисну дію на місцевому рівні. Однак, створення універсальних моделей складних систем з високим ступенем свободи не є неможливим і не перешкоджає використанню недосконалих моделей для виконання корисних завдань. Роботу не потрібно знати всі властивості тертя і жорсткості мотузки, щоб тягнути її по землі, але знати про те, наскільки знадобиться одна із його моделей у якійсь ситуації, інженери вважають не зайвим.

Чому навчили робота вчені?

Перш ніж запустити роботів у неструктуроване середовище, варто відповісти на два ключових питання: чи ми повинні довіряти моделі, і що робити, якщо робот зрозумів, що модель ненадійна. В умовах, коли неможливо збирати великі набори даних і повторно вивчати точну динаміку після кожної зміни (це і непотрібно, адже спробувати систематизувати всі зміни, наприклад, на фабриці, займе неймовірну кількість обчислювальних потужностей), найкращим варіантом було б, щоб робот сам думав, що робити із перешкодами. Тому інженери створили для свого робота-маніпулятора набір різноманітних задач із мотузкою та класифікатор, який допомагає визначити, чи спрацює наявна у робота модель у наявних умовах. В основі роботи лежить ідея, що «набагато краще навчитися передбачати, де корисна (але обмежена) модель є надійною, ніж намагатися вивчити модель, яка надійна всюди».

Зокрема, в контексті задач із мотузкою вчені пропонують двоетапний процес навчання. Так спершу робота знайомлять із корисною моделлю динаміки мотузки, припускаючи, що якісь обмеження взагалі відсутні. Потім, з огляду на обмежені дані про взаємодію мотузки з перешкодами, створюється класифікатор, який передбачає, у якому випадку раніше вивчена модель виявиться надійною. Цей класифікатор і використовується роботом при плануванні руху для задач з різною геометрією середовища, щоб уникати тих частин простору, де моделі не можна довіряти. Також вчені передбачили і вихід для робота із «безвихідної» ситуації, тобто до якої його навчання не готувало. За результатами випробувань, використання такого класифікатора перевершує як підходи із спробою врахувати заздалегідь динаміку середовища, так і просту довіру до моделі без обмежень.

Презентація нового способу навчання. University of Michigan ARM Lab / YouTube

Що зміг розв’язати робот?

Щоб оцінити свій підхід, інженери порівнювали свій метод з іншими у завданнях для робота із мотузкою у 150 випадково згенерованих середовищах — вдома і під капотом машини. Так у першому сценарії робот мав помістити один кінець мотузки в точку, одночасно тягнучи мотузку за інший кінець. Задачу ускладнювали відсутність попереднього навчання та безліч перешкод, однак вона необхідна, щоб у майбутньому подібні маніпулятори могли накладати шви або розбиратися із дротами. Так роботу вдалося досягти успіху у 76 відсотках випадків із 50 тренувань із середньою помилкою завдання 4,48, у той час як без класифікатора він помилявся у два рази більше, а з моделями, які намагалися враховувати динаміку, успіх був усього 32 відсотки.

У другому сценарії інженери прагнули навчити робота маніпулювати обома руками, щоб помістити середину мотузки у точку в тривимірному просторі, утримуючи тільки її кінці. Використання обох рук маніпуляторами набагато краще дає змогу контролювати щось, але і створює додаткові проблеми при координації обох рук. Завдання він виконував під капотом автомобіля, де йому заборонялося розтягувати мотузку чи стикатися руками. Тут новий метод також показав успіх у 84 із сотні випробувань проти 47 без класифікатора і 18 із динамічною моделлю.

А що як робот не зможе довіряти моделі?

Хоча вищезгадані методи дозволяють роботу виконувати корисні завдання з мотузкою, попри неможливість передбачити динаміку обмежень, він все ж потрапляє у ситуації, де вивчена модель ненадійна. Це стається через неточності у виконанні, зовнішні втручання або запуск завдання в стані, з якого прогнозування ненадійне. І підхід інженерів полягає в тому, щоб спочатку використовувати класифікатор, щоб визначити, коли це сталося, а потім «відновитися», тобто знову виконати серію дій, які повернуть робота в область, де вивчена модель є надійною. Так по поверненню до місця, де прогнозам вже можна довіряти, робот знову запустить планування дій.

Робот не перший, якого вчили не довіряти своєму навчанню. Так ми вже писали, як розробники навчили нейронну мережу попереджати про неточні рішення — тоді вона повідомляла про підозрілі дані навіть впевненіше, ніж про свої прогнози щодо них.