Почему требования безопасности препятствуют использованию ИИ?

StackOverflow https://stackoverflow.com/questions/409252

Вопрос

Похоже, что требованиям безопасности не нравятся системы, которые используют ИИ для требований, связанных с безопасностью (особенно там, где задействованы большие потенциальные риски разрушения/смерти).Может ли кто-нибудь предложить почему?Я всегда думал, что если вы правильно программируете свою логику, то чем больше интеллекта вы вкладываете в алгоритм, тем больше вероятность того, что этот алгоритм способен предотвратить опасную ситуацию.На практике дела обстоят иначе?

Это было полезно?

Решение

Большинство алгоритмов ИИ нечеткий - обычно учатся по ходу дела.Для предметов, которые имеют решающее значение для безопасности, вам нужен детерминированный подход.Эти алгоритмы легче доказать правильность, что важно для многих приложений, критически важных для безопасности.

Другие советы

Я думаю, что причина двоякая.

Во-первых, возможно, что ИИ будет принимать непредсказуемые решения.Конечно, они могут быть полезными, но, говоря о проблемах безопасности, нельзя так рисковать, особенно если на кону стоят жизни людей.

Во-вторых, не всегда можно проследить «причину» решений (иногда для генерации результатов с помощью ИИ используется случайный элемент), и когда что-то идет не так, не имея возможности определить «почему» (в очень точным образом) становится ответственностью.

В конечном итоге все сводится к ответственности и надежности.

Чем сложнее система, тем труднее ее тестировать.И чем важнее система, тем важнее провести 100% комплексное тестирование.

Поэтому для критически важных систем люди предпочитают иметь неоптимальные функции, которые можно протестировать, и полагаются на человеческое взаимодействие для принятия сложных решений.

С точки зрения безопасности часто речь идет о гарантированной предсказуемости/детерминированности поведения и быстром времени реагирования.Хотя можно сделать и то, и другое, используя методы программирования в стиле ИИ, по мере того, как логика управления системой становится более сложной, становится все труднее предоставить убедительные аргументы о том, как система будет вести себя (достаточно убедительные, чтобы удовлетворить аудитора).

Я предполагаю, что системы искусственного интеллекта обычно считаются более сложными.Сложность обычно — это плохо, особенно когда она касается «магии», как некоторые люди воспринимают системы ИИ.

Это не значит, что альтернатива обязательно проще (или лучше).

Когда мы кодировали системы управления, нам приходилось показывать таблицы трассировки для каждого отдельного пути кода и перестановки входных данных.Это было необходимо для того, чтобы гарантировать, что мы не привели оборудование в опасное состояние (для сотрудников или инфраструктуры), и чтобы «доказать», что программы делали то, что должны были делать.

Это было бы очень сложно сделать, если бы программа была нечеткой и недетерминированной, как указал @tvanfosson.Я думаю, вам следует принять этот ответ.

Ключевое утверждение: «при условии, что вы правильно запрограммировали свою логику».Хорошо, как ты это "обеспечиваешь"?Опыт показывает, что большинство программ полны ошибок.

Единственный способ гарантировать отсутствие ошибок — это формальная проверка, но это практически неосуществимо для всех систем, кроме самых примитивно простых, и (что еще хуже) обычно выполняется на основе спецификаций, а не кода, поэтому вы все еще не знаете, код правильно реализует вашу спецификацию после того, как вы доказали ее безупречность.

Я думаю, это потому, что ИИ очень сложно понять и его становится невозможно поддерживать.

Даже если программа ИИ считается нечеткой или «обучается» к моменту ее выпуска, она очень хорошо тестируется на все известные случаи (и уже извлекла уроки из них) еще до ее завершения.В большинстве случаев это «обучение» приводит к изменению некоторых «порогов» или весов в программе, и после этого становится очень сложно понимать и поддерживать этот код даже для создателей.

За последние 30 лет ситуация изменилась: были созданы языки, более понятные для математиков, упрощённые для них тестирование, а также появился новый псевдокод для решения проблемы (например, набор инструментов AI для Mat lab).

Существует достаточно способов, которыми обычные алгоритмы, если они плохо спроектированы и протестированы, могут привести к убийству людей.Если вы не читали об этом, вам следует поискать случай Терак 25.Это была система, поведение которой должно было быть полностью детерминированным, но всё равно всё шло ужасно, ужасно неправильно.Представьте себе, если бы он тоже пытался рассуждать «разумно».

Поскольку общепринятого определения ИИ не существует, вопрос должен быть более конкретным.

Мой ответ заключается в том, что адаптивные алгоритмы просто используют оценку параметров (своего рода обучение) для повышения безопасности выходной информации.Даже это не приветствуется в функциональной безопасности, хотя может показаться, что поведение предлагаемого алгоритма не только детерминировано (все компьютерные программы таковы), но и легко определяемо.

Будьте готовы к тому, что оценщик попросит вас продемонстрировать отчеты об испытаниях, охватывающие все комбинации входных данных и режимов отказов.Адаптивность вашего алгоритма означает, что он зависит не только от текущих входных значений, но и от многих или всех предыдущих значений.Вы знаете, что полное тестовое покрытие невозможно в эпоху существования Вселенной.

Один из способов оценки — показать, что ранее принятые более простые алгоритмы (современные) небезопасны.Это будет легко, если вы знаете свою проблемную область (если нет, держитесь подальше от ИИ).

Для вашей проблемы может существовать другая возможность:убедительная функция мониторинга, показывающая, правильно ли оценивается параметр.

«Обычные алгоритмы» для сложного проблемного пространства имеют тенденцию быть арктическими.С другой стороны, некоторые «умные» алгоритмы имеют простую структуру.Это особенно верно для приложений байесовского вывода.Вам просто нужно знать функцию(и) правдоподобия для ваших данных (применяется во множественном числе, если данные разделяются на статистически независимые подмножества).

Функции правдоподобия можно проверить.Если тест не может охватить хвосты достаточно далеко, чтобы достичь требуемого уровня достоверности, просто добавьте больше данных, например, от другого датчика.Структура вашего алгоритма не изменится.

Недостатком является/была производительность процессора, необходимая для байесовского вывода.

Кроме того, упоминание Therac 25 бесполезно, поскольку никакого алгоритма вообще был задействован, просто обрабатывал многозадачный спагетти-код.По словам авторов, «[эти] несчастные случаи были довольно уникальными, поскольку включали ошибки кодирования программного обеспечения - большинство несчастных случаев, связанных с компьютерами, были связаны не с ошибками кодирования, а скорее с ошибками в требованиях к программному обеспечению, такими как упущения и неправильное управление условиями окружающей среды и состояниями системы».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top