Почему требования безопасности любят препятствовать использованию ИИ? - PullRequest
4 голосов
/ 03 января 2009

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

Ответы [ 10 ]

20 голосов
/ 03 января 2009

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

6 голосов
/ 03 января 2009

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

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

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

В конце концов, все сводится к ответственности и надежности.

4 голосов
/ 03 января 2009

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

4 голосов
/ 03 января 2009

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

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

2 голосов
/ 03 января 2009

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

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

2 голосов
/ 03 января 2009

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

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

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

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

1 голос
/ 03 марта 2013

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

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

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

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

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

1 голос
/ 01 февраля 2009

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

1 голос
/ 03 января 2009

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

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

Это изменилось за последние 30 лет, создавая понятные математикам языки, облегчая их тестирование и предоставляя новый псевдокод для решения проблемы (например, набор инструментов mat lab AI)

0 голосов
/ 05 марта 2013

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

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

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

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

...