Тестування нейромереж вказало на дефекти в «мисленні» безпілотних автомобілів

Дослідники з Колумбійського та Ліхайського університетів розробили систему для тестування алгоритмів глибокого навчання. За допомогою цієї системи розробники перевірили нейромережі, в тому числі керуючі безпілотними автомобілями, і виявили в них тисячі помилок, що проявляються в незвичайних для нейромереж умовах. Розробка буде представлена на конференції SOSP 2017 в Китаї 29 жовтня.


Для автоматизації складних завдань, таких як керування автомобілем, все частіше використовується не фіксовані алгоритми з набором заздалегідь визначених правил, а машинне навчання. Цей підхід вимагає часу і тренувань на великих наборах даних, але в результаті дозволяє отримати програму, здатну виконувати складні завдання - наприклад, виявлення неявних закономірностей або розпізнавання образів.


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

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

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

Розробники протестували свій алгоритм під назвою DeepXplore за допомогою великих наборів даних для тренування алгоритмів різного призначення, наприклад, дані проекту Udacity self-driving car challenge, призначеного для навчання і порівняння алгоритмів для безпілотних автомобілів, а також наборів даних для тренування програм, що виявляють шкідливе програмне забезпечення. Таким чином вони змогли виявити кілька тисяч помилок у загальнодоступних алгоритмах. Наприклад, дослідники зробили дві версії фотографії різкого повороту на дорозі, в яких відрізнялася тільки освітленість. У випадку з поганою освітленістю керуючий автомобілем алгоритм неправильно оцінив обстановку, і несподівано прийняв рішення згорнути в бік металевого огородження дороги.

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

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


COM_SPPAGEBUILDER_NO_ITEMS_FOUND