Domanda

Sembra che i requisiti di sicurezza non sembrino gradire i sistemi che usano l'IA per requisiti di sicurezza (in particolare quando sono coinvolti grandi rischi potenziali di distruzione / morte). Qualcuno può suggerire perché ? Ho sempre pensato che, a condizione che programmassi correttamente la tua logica, più intelligenza inserisci in un algoritmo, più è probabile che questo algoritmo sia in grado di prevenire una situazione pericolosa. Le cose sono diverse nella pratica?

È stato utile?

Soluzione

La maggior parte degli algoritmi AI sono fuzzy - in genere imparano man mano che vanno avanti. Per gli articoli che sono di fondamentale importanza per la sicurezza, ciò che si desidera è deterministico. Questi algoritmi sono più facili da dimostrare corretti, il che è essenziale per molte applicazioni critiche per la sicurezza.

Altri suggerimenti

Penso che il motivo sia duplice.

Innanzitutto è possibile che l'IA prenderà decisioni imprevedibili. Certo, possono essere utili, ma quando si parla di problemi di sicurezza, non è possibile correre rischi del genere, soprattutto se la vita delle persone è in pericolo.

Il secondo è che il "ragionamento" dietro le decisioni non è sempre possibile rintracciare (a volte c'è un elemento casuale usato per generare risultati con un'intelligenza artificiale) e quando qualcosa va storto, non avendo la capacità di determinare " why " (in modo molto preciso) diventa una responsabilità.

Alla fine, si tratta di responsabilità e affidabilità.

Più un sistema è complesso, più è difficile testarlo. E più un sistema è cruciale, più diventa importante avere test completi al 100%.

Pertanto, per i sistemi cruciali le persone preferiscono avere caratteristiche non ottimali, che possono essere testate e si basano sull'interazione umana per processi decisionali complessi.

Dal punto di vista della sicurezza, ci si preoccupa spesso della prevedibilità / determinismo del comportamento e dei tempi di risposta rapidi garantiti. Sebbene sia possibile eseguire una o entrambe le tecniche di programmazione in stile AI, poiché la logica di controllo di un sistema diventa più complessa, è più difficile fornire argomenti convincenti su come si comporterà il sistema (abbastanza convincente da soddisfare un auditor).

Immagino che i sistemi di intelligenza artificiale siano generalmente considerati più complessi. La complessità di solito è una cosa negativa, specialmente quando si riferisce a "magia" ed è così che alcune persone percepiscono i sistemi di intelligenza artificiale.

Questo non vuol dire che l'alternativa sia necessariamente più semplice (o migliore).

Quando abbiamo terminato la codifica dei sistemi di controllo, abbiamo dovuto mostrare tabelle di traccia per ogni singolo percorso del codice e permutazione degli input. Ciò era necessario per assicurare che non avessimo messo le apparecchiature in uno stato pericoloso (per dipendenti o infrastrutture) e per "provare". che i programmi hanno fatto quello che dovevano fare.

Sarebbe tremendamente complicato se il programma fosse confuso e non deterministico, come indicato da @tvanfosson. Penso che dovresti accettare quella risposta.

L'istruzione chiave è "purché tu abbia programmato correttamente la tua logica". Bene, come " fornisci " quello? L'esperienza dimostra che la maggior parte dei programmi è piena zeppa di bug.

L'unico modo per garantire l'assenza di bug sarebbe la verifica formale, ma ciò è praticamente impossibile per tutti tranne che per i sistemi più primitivi, e (peggio) di solito si fa sulle specifiche piuttosto che sul codice, quindi non è ancora possibile " conoscere il codice implementa correttamente le specifiche dopo aver dimostrato che le specifiche sono impeccabili.

Penso che sia perché l'intelligenza artificiale è molto difficile da capire e che diventa impossibile da mantenere.

Anche se un programma di intelligenza artificiale è considerato sfocato, o che "impara" nel momento in cui viene rilasciato, è molto ben testato per tutti i casi noti (e ne ha già appreso) prima ancora che sia finito. La maggior parte dei casi questo "apprendimento" cambierà alcune "soglie" o pesi nel programma e, successivamente, è molto difficile capire e mantenere quel codice, anche per i creatori.

Questo è cambiato negli ultimi 30 anni creando lingue più facili da capire per i matematici, rendendo più facile per loro testare e fornire nuovi pseudo-codici intorno al problema (come mat lab AI toolbox)

Ci sono abbastanza modi in cui algoritmi ordinari, se progettati e testati in modo scadente, possono finire per uccidere le persone. Se non ne hai letto, dovresti cercare il caso di Therac 25 . Questo era un sistema in cui il comportamento doveva essere completamente deterministico, e le cose andavano ancora orribilmente, orribilmente male. Immagina se stesse cercando di ragionare anche "in modo intelligente",

Poiché non esiste una definizione accettata di AI, la domanda deve essere più specifica.

La mia risposta è sugli algoritmi adattivi che utilizzano semplicemente la stima dei parametri - una sorta di apprendimento - per migliorare la sicurezza delle informazioni di output. Anche questo non è il benvenuto nella sicurezza funzionale, sebbene possa sembrare che il comportamento di un algoritmo proposto non sia solo deterministico (tutti i programmi per computer lo sono) ma anche facile da determinare.

Preparati al valutatore che ti chiede di dimostrare i rapporti di prova riguardanti tutte le combinazioni di dati di input e modalità di errore. Il tuo algoritmo essendo adattivo significa che dipende non solo dai valori di input correnti ma da molti o tutti i valori precedenti. Sai che una copertura completa dei test è impossibile nell'età dell'universo.

Un modo per segnare è mostrare che algoritmi più semplici (stato dell'arte) precedentemente accettati non sono sicuri. Questo dovrebbe essere facile se conosci lo spazio del tuo problema (in caso contrario, tieni lontano dall'intelligenza artificiale).

Potrebbe esserci un'altra possibilità per il tuo problema: una funzione di monitoraggio convincente che indica se il parametro è stimato con precisione.

" Algoritmi ordinari " per un problema complesso lo spazio tende ad essere arkward. D'altra parte, alcuni "intelligenti" gli algoritmi hanno una struttura semplice. Ciò è particolarmente vero per le applicazioni dell'inferenza bayesiana. Devi solo conoscere le funzioni di probabilità per i tuoi dati (il plurale si applica se i dati si separano in sottoinsiemi statisticamente indipendenti).

Le funzioni di verosimiglianza possono essere testate. Se il test non riesce a coprire le code abbastanza lontano da raggiungere il livello di confidenza richiesto, basta aggiungere più dati, ad esempio da un altro sensore. La struttura del tuo algoritmo non cambierà.

Uno svantaggio è / era la prestazione della CPU richiesta per l'inferenza bayesiana.

Inoltre, menzionare Therac 25 non è utile, dal momento che nessun algoritmo era coinvolto, solo un codice spaghetti multitasking. Citando gli autori, "gli incidenti erano piuttosto unici nell'incorrere in errori di codifica del software - la maggior parte degli incidenti informatici non ha comportato errori di codifica ma piuttosto errori nei requisiti del software come omissioni e condizioni ambientali mal gestite e stati del sistema." ;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top