Question

Il semble que les exigences en matière de sécurité ne semblent pas être identiques aux systèmes qui utilisent l’IA pour des exigences liées à la sécurité (en particulier lorsque des risques potentiels importants de destruction / mort sont impliqués). Quelqu'un peut-il suggérer pourquoi ? J'ai toujours pensé que, si vous programmez votre logique correctement, plus vous mettez d'intelligence dans un algorithme, plus il est probable qu'il puisse empêcher une situation dangereuse. Les choses sont-elles différentes dans la pratique?

Était-ce utile?

La solution

La plupart des algorithmes d'intelligence artificielle sont fuzzy - ils apprennent généralement au fur et à mesure. Ce que vous voulez, c’est déterministe. Il est plus facile de prouver que ces algorithmes sont corrects, ce qui est essentiel pour de nombreuses applications critiques pour la sécurité.

Autres conseils

Je pense que la raison en est double.

Tout d’abord, il est possible que l’intelligence artificielle prenne des décisions imprévisibles. Certes, ils peuvent être bénéfiques, mais quand on parle de sécurité, on ne peut pas prendre de tels risques, surtout si la vie des gens est en jeu.

La seconde est que le "raisonnement" derrière les décisions ne peut pas toujours être tracé (il y a parfois un élément aléatoire utilisé pour générer des résultats avec une IA) et quand quelque chose ne va pas, ne pas avoir la capacité de déterminer "pourquoi" (de manière très précise) devient un passif.

En fin de compte, il en va de la responsabilité et de la fiabilité.

Plus un système est complexe, plus il est difficile à tester. Et plus un système est crucial, plus il devient important de disposer de tests complets à 100%.

Par conséquent, pour les systèmes essentiels, les utilisateurs préfèrent des fonctionnalités sous-optimales, pouvant être testées, et reposant sur l'interaction humaine pour la prise de décision complexe.

Du point de vue de la sécurité, on se préoccupe souvent de la prévisibilité / déterminisme garanti du comportement et du temps de réponse rapide. Bien qu'il soit possible de faire l'une ou les deux techniques de programmation de type IA, la logique de contrôle d'un système devenant plus complexe, il est plus difficile de fournir des arguments convaincants sur le comportement du système (suffisamment pour convaincre l'auditeur).

Je suppose que les systèmes d’IA sont généralement considérés comme plus complexes. La complexité est généralement une mauvaise chose, surtout quand elle a un rapport avec la "magie". C'est ainsi que certaines personnes perçoivent les systèmes d'IA.

Cela ne veut pas dire que l’alternative est nécessairement plus simple (ou meilleure).

Lorsque nous avons codé les systèmes de contrôle, nous avons dû afficher des tables de trace pour chaque chemin de code et la permutation des entrées. Cela était nécessaire pour s'assurer que nous ne mettions pas l'équipement dans un état dangereux (pour les employés ou l'infrastructure), et pour "prouver" que les programmes ont fait ce qu’ils étaient censés faire.

Ce serait terriblement délicat à faire si le programme était flou et non déterministe, comme @tvanfosson l’a indiqué. Je pense que vous devriez accepter cette réponse.

La déclaration clé est "à condition de programmer correctement votre logique". comment devez-vous "fournir" & ";" cette? L’expérience montre que la plupart des programmes sont remplis de bogues.

Le seul moyen de s’assurer qu’il n’ya pas de bugs est de procéder à une vérification formelle, mais elle est pratiquement irréalisable pour tous les systèmes, à l’exception des systèmes les plus simples, et (pire) est généralement effectuée sur des spécifications plutôt que sur du code. Sachez que le code implémente correctement vos spécifications après que vous les avez prouvées irréprochables.

Je pense que c'est parce que l'IA est très difficile à comprendre et que cela devient impossible à maintenir.

Même si un programme d'intelligence artificielle est considéré comme flou, ou qu'il "apprend" au moment de sa sortie, il est très bien testé sur tous les cas connus (et il en a déjà tiré les leçons) avant même qu'il soit terminé. Dans la plupart des cas, cela "apprend". changera certains " seuils " ou poids dans le programme et après cela, il est très difficile de vraiment comprendre et maintenir ce code, même pour les créateurs.

Cela a changé au cours des 30 dernières années en créant des langages plus faciles à comprendre pour les mathématiciens, leur facilitant les tests et en fournissant un nouveau pseudo-code autour du problème (comme la boîte à outils AI pour le mat lab)

Il existe suffisamment de manières pour que des algorithmes ordinaires, une fois conçus et testés de manière médiocre, finissent par tuer des gens. Si vous ne l'avez pas lu, vous devriez rechercher le cas de Therac 25 . C'était un système où le comportement était supposé être complètement déterministe et où les choses allaient encore horriblement, terriblement mal. Imaginez s’il essayait de raisonner "intelligemment" aussi.

Comme il n’existe pas de définition acceptée de l’IA, la question doit être plus précise.

Ma réponse concerne les algorithmes d’adaptation utilisant simplement l’estimation de paramètres - une sorte d’apprentissage - pour améliorer la sécurité des informations de sortie. Même si cela n’est pas le bienvenu en matière de sécurité fonctionnelle, il peut sembler que le comportement d’un algorithme proposé soit non seulement déterministe (tous les programmes informatiques le sont), mais aussi facile à déterminer.

Préparez-vous à ce que l'évaluateur vous demande de présenter des rapports de test couvrant toutes les combinaisons de données d'entrée et de modes de défaillance. Votre algorithme étant adaptatif, cela dépend non seulement des valeurs d'entrée actuelles, mais également de la totalité ou de la totalité des valeurs précédentes. Vous savez qu’une couverture complète du test est impossible à l’ère de l’univers.

Une des façons de marquer consiste à montrer que les algorithmes plus simples précédemment acceptés (état de la technique) ne sont pas sûrs. Cela sera facile si vous connaissez votre problème (sinon, éloignez-vous de l'IA).

Une autre possibilité peut exister pour votre problème: une fonction de surveillance convaincante indiquant si le paramètre est estimé avec précision.

" Algorithmes ordinaires " pour un problème complexe, l’espace a tendance à être ardu. D'autre part, certains " intelligent " les algorithmes ont une structure simple. Cela est particulièrement vrai pour les applications de l'inférence bayésienne. Vous devez simplement connaître la ou les fonctions de vraisemblance de vos données (le pluriel s'applique si les données se séparent en sous-ensembles statistiquement indépendants).

Les fonctions de vraisemblance peuvent être testées. Si le test ne peut pas couvrir les queues assez loin pour atteindre le niveau de confiance requis, ajoutez simplement plus de données, par exemple d'un autre capteur. La structure de votre algorithme ne changera pas.

Un inconvénient est / était la performance du processeur requise pour l'inférence bayésienne.

Par ailleurs, il n'est pas utile de mentionner Therac 25 car aucun algorithme n'a été utilisé, mais uniquement du code spaghetti multitâche. Citant les auteurs, "les accidents étaient relativement uniques en ce qu’ils impliquaient des erreurs de codage logiciel - la plupart des accidents informatiques n’impliquaient pas des erreurs de codage, mais plutôt des erreurs dans les exigences logicielles, telles que des omissions et des conditions environnementales mal gérées et des états système." ;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top