
Odwrócona konstrukcja
Dawson i Fan uświadomili sobie potrzebę stworzenia ogólnego narzędzia optymalizacyjnego po zaobserwowaniu bogactwa zautomatyzowanych narzędzi projektowych dostępnych dla innych dziedzin inżynierii.
„Jeśli inżynier mechanik chciałby zaprojektować turbinę wiatrową, mógłby użyć narzędzia 3D CAD do zaprojektowania struktury, a następnie użyć narzędzia do analizy metodą elementów skończonych, aby sprawdzić, czy wytrzyma ona określone obciążenia” – mówi Dawson. „Brakuje jednak tych narzędzi komputerowego wspomagania projektowania dla systemów autonomicznych”.
Zazwyczaj robotyk optymalizuje system autonomiczny, opracowując najpierw symulację systemu i jego wielu współdziałających podsystemów, takich jak jego planowanie, kontrola, percepcja i komponenty sprzętowe. Następnie musi dostroić pewne parametry każdego z komponentów i uruchomić symulację, aby sprawdzić, jak system zachowa się w danym scenariuszu.
Dopiero po przeprowadzeniu wielu scenariuszy metodą prób i błędów robotyk może określić optymalną kombinację składników, która zapewni pożądaną wydajność. Jest to żmudny, nadmiernie dostosowany i czasochłonny proces, który Dawson i Fan chcieli obrócić na głowie.
„Zamiast mówić: 'Biorąc pod uwagę projekt, jaka jest wydajność?’, chcieliśmy odwrócić to, aby powiedzieć: 'Biorąc pod uwagę wydajność, którą chcemy zobaczyć, jaka jest konstrukcja, która nas tam doprowadzi?” wyjaśnia Dawson.
Naukowcy opracowali ramy optymalizacji, lub kod komputerowy, który może automatycznie znaleźć poprawki, które można wprowadzić do istniejącego systemu autonomicznego, aby osiągnąć pożądany wynik.
Serce kodu opiera się na automatycznym różnicowaniu lub „autodiff”, narzędziu programistycznym, które zostało opracowane w ramach społeczności uczenia maszynowego i było początkowo używane do szkolenia sieci neuronowych. Autodiff jest techniką, która może szybko i skutecznie „ocenić pochodną” lub wrażliwość na zmianę dowolnego parametru w programie komputerowym. Dawson i Fan oparli się na ostatnich osiągnięciach w programowaniu autodiff, aby opracować narzędzie optymalizacyjne ogólnego przeznaczenia dla autonomicznych systemów robotycznych.
„Nasza metoda automatycznie podpowiada nam, jak zrobić małe kroki od wstępnego projektu w kierunku projektu, który osiąga nasze cele” – mówi Dawson. „Używamy autodiffu, aby zasadniczo dokopać się do kodu, który definiuje symulator, i dowiedzieć się, jak wykonać tę inwersję automatycznie”.