Pergunta

Parece que os requisitos de segurança não parecem como sistemas que usam AI para requisitos em matéria de segurança (especialmente onde grandes riscos potenciais de destruição / morte estão envolvidos). Alguém pode sugerir por ? Eu sempre pensei que, desde que você programar a sua lógica corretamente, o mais inteligência que você colocar em um algoritmo, o mais provável deste algoritmo é capaz de evitar uma situação perigosa. São coisas diferentes na prática?

Foi útil?

Solução

A maioria algoritmos AI são difusa - normalmente aprendendo como eles vão junto. Para os itens que são de importância crítica de segurança que você quer é determinista. Esses algoritmos são mais fáceis de provar correta, que é essencial para aplicações críticas de muitos de segurança.

Outras dicas

Gostaria de pensar que a razão é dupla.

Em primeiro lugar, é possível que a AI vai tomar decisões imprevisíveis. Concedido, eles podem ser benéficos, mas quando se fala de segurança-preocupações, você não pode correr riscos como esse, especialmente se a vida das pessoas estão na linha.

O segundo é que o "raciocínio" por trás das decisões nem sempre pode ser rastreada (às vezes há um elemento aleatório usado para gerar resultados com um AI) e quando algo der errado, não ter a capacidade de determinar o "porquê" (de uma forma muito precisa) se torna uma responsabilidade.

No final, tudo se resume à prestação de contas e confiabilidade.

O sistema de uma forma mais complexa é, mais difícil é para teste. E o sistema de uma forma mais crucial é, mais importante se torna ter 100% testes abrangentes.

Portanto, para sistemas cruciais pessoas preferem ter características sub-óptima, que podem ser testadas, e dependem de interação humana para a tomada de decisão complexa.

Do ponto de vista de segurança, um muitas vezes se preocupa com garantia de previsibilidade / determinismo do comportamento e tempo de resposta rápido. Embora seja possível fazer uma ou ambas com técnicas de programação AI-estilo, como a lógica de controle de um sistema se torna mais complexo que é mais difícil para fornecer convencer argumentos sobre como o sistema se comportará (convincente o suficiente para satisfazer um auditor).

Eu diria que sistemas de inteligência artificial são geralmente considerados mais complexa. A complexidade é normalmente uma coisa ruim, especialmente quando se refere a "mágica" que é como algumas pessoas percebem sistemas de inteligência artificial.

Isso não quer dizer que a alternativa é necessariamente mais simples (ou melhor).

Quando fizemos sistemas de controle de codificação, tivemos de mostrar tabelas de rastreio para cada caminho de código único, e permutação de entradas. Isto foi necessário para garantir que nós não colocar o equipamento em um estado perigoso (para empregados ou infra-estrutura), e para "provar" que os programas fizeram o que deviam fazer.

Isso seria muito complicado para fazer se o programa foram macio e não-determinístico, como @tvanfosson indicado. Eu acho que você deve aceitar essa resposta.

A declaração chave é "desde que você programar a sua lógica corretamente". Bem, como você "fornecer" isso? A experiência mostra que a maioria dos programas são repletos de bugs.

A única maneira de garantir que não há erros seria a verificação formal, mas que é praticamente inviável para todos, mas os sistemas mais primitivamente simples, e (pior) geralmente é feito em especificações em vez de código, assim você ainda don' t sabe do código implementa corretamente a sua especificação depois de ter provado a especificação para ser impecável.

Eu acho que é porque AI é muito difícil de entender e que se torna impossível manter.

Mesmo que um programa de AI é considerada difusa, ou que "aprende" por parte do momento em que é lançado, ele é muito bem testado para todos os casos Know (e já aprendi com ele) antes de sua terminou mesmo. A maioria dos casos esta "aprendizagem" vai mudar alguns "limites" ou pesos no programa e, depois disso, é muito difícil para realmente entender e manter esse código, mesmo para os criadores.

Este têm vindo a mudar nos últimos 30 anos, criando línguas mais fácil de entender para os matemáticos, tornando mais fácil para eles para testar e entregar nova pseudo-código em torno do problema (como tapete de laboratório AI toolbox)

Há maneiras suficiente para que algoritmos comuns, quando shoddily projetado e testado, pode acabar matando pessoas. Se você ainda não leu sobre isso, você deve procurar-se o caso de Therac 25 . Este era um sistema onde o comportamento deveria ser completamente determinista, e as coisas ainda deu horrivelmente, terrivelmente errado. Imagine se ele estivesse tentando razão "inteligente", também.

Como não existe uma definição aceita da AI, a questão deve ser mais específico.

A minha resposta é em algoritmos adaptativos apenas empregando estimativa de parâmetros - um tipo de aprendizagem - para melhorar a segurança das informações de saída. Mesmo isso não é bem-vindo em segurança funcional embora possa parecer que o comportamento de um algoritmo proposto não só é determinista (todos os programas de computador são), mas também fácil de determinar.

Esteja preparado para o assessor pedindo-lhe para demonstrar relatórios de teste que cobrem todas as combinações de modos de dados de entrada e de falha. Seu algoritmo que significa ser adaptativos ele depende não só nas atuais valores de entrada, mas em muitos ou todos os valores anteriores. Você sabe que uma cobertura de teste completo é impossível dentro da idade do universo.

Uma forma de pontuação está mostrando que os algoritmos mais simples previamente aceitos (estado da arte) não são seguros. Este será fácil se você sabe o seu espaço do problema (se não, manter afastado de AI).

Outra possibilidade pode existir para o seu problema:. Uma função de monitoramento convincente indicando se o parâmetro é estimado com precisão

"algoritmos comuns" para um espaço complexo problema tendem a ser arkward. Por outro lado, alguns algoritmos "inteligentes" tem uma estrutura simples. Isto é especialmente verdadeiro para aplicações de Bayesian inferência. Você apenas tem que saber a função de verossimilhança (s) para os seus dados (plural se aplica se os separa os dados em subconjuntos estatisticamente independentes).

funções de verossimilhança pode ser testada. Se o teste não pode cobrir as caudas longe o suficiente para alcançar o nível de confiança necessário, basta adicionar mais dados, por exemplo, de um outro sensor. A estrutura do seu algoritmo não vai mudar.

Uma desvantagem é / foi o desempenho da CPU necessário para Bayesian inferência.

Além disso, mencionando Therac 25 não é útil, uma vez que nenhum algoritmo em tudo estava envolvido, apenas multitarefa código espaguete. Citando os autores, "[os] acidentes foram bastante singular em ter codificação de software erros envolvidos -. A maioria dos acidentes de computador-relacionado não envolveram erros de codificação, mas sim os erros nos requisitos de software, tais como omissões e condições ambientais extraviadas e estados do sistema"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top