Construindo Sistemas de IA Robustos: Algoritmos à Prova de Erros para a Indústria
Falhas em câmeras de visão computacional, sensores não calibrados ou sombras imprevisíveis podem levar a erros potencialmente custosos e perigosos em sistemas industriais de IA. No entanto, pesquisadores estão desenvolvendo algoritmos à prova de erros, bem como medidas simples que podem ser tomadas para reduzir a probabilidade de erro.

A inteligência artificial evoluiu muito além da rede neural artificial perceptron básica, mas o erro continua sendo uma questão. Imagem cortesia da Pixabay
Aplicações Industriais para Inteligência Artificial
Existem numerosas aplicações industriais para IA (inteligência artificial), como plataformas de robótica, manuseio de materiais, embalagem, atendimento de máquinas, montagem, inspeção e BAS (sistemas de automação predial). Exemplos mais específicos incluem tecnologia de drones e enxames para classificação, movimentação e transporte de itens ou detecção de anomalias em processos de produção.
A IA tornou-se um aspecto crítico, mas frequentemente esquecido, da automação industrial dependente de visão computacional, braços robóticos, sensoriamento remoto e controle de processo.
No entanto, ferramentas de IA não são uma caixa preta simples na qual dados são fornecidos como entrada e transformados em saída precisa. Às vezes, a saída está errada, e isso é motivo de preocupação.
Tipos de Erros em Aplicações Industriais
Computadores fazem o que são instruídos a fazer, então um humano está na raiz de todo erro. Pode ser um erro de projeto, um erro de algoritmo, um erro de engenharia ou dados ruins, mas haverá um humano na raiz.
Isso também se aplica à IA, incluindo IA industrial. Erros dentro da IA industrial podem se enquadrar em uma de duas categorias: viés algorítmico e viés de máquina.
O viés algorítmico envolve erros que são tanto repetíveis quanto sistêmicos. Tais erros podem se manifestar de várias maneiras diferentes: erro inerente na lógica do algoritmo, uso não antecipado da saída do algoritmo ou problemas com os dados fornecidos ao sistema de IA.
O viés de máquina ocorre quando um conjunto de dados limitado é usado para treinar o sistema, levando a saídas errôneas.
A Importância de Manter o Erro da IA Sob Controle
Como exemplo de viés algorítmico, considere um sistema de visão computacional capacitado por IA usado para sistemas automatizados de controle de qualidade. Tal aplicação depende fortemente de medições precisas fornecidas como dados à IA, determinando se a peça está dentro das tolerâncias. Se medições imprecisas forem fornecidas à IA, resultará em rotulagem errônea de peças.
Os algoritmos por trás da IA de visão computacional podem ser 100% corretos, mas dados ruins significam saída ruim. Peças aceitáveis podem ser descartadas, enquanto peças de má qualidade podem ser enviadas aos clientes. Isso leva a custos desnecessários e tempo de inatividade enquanto a fonte do problema é rastreada.

O iRVision 3DL da FANUC usa lasers e IA para verificar as condições de superfície de uma peça. Imagem cortesia da FANUC
Alguns sistemas de IA exigem treinamento antes do uso em um ambiente ou aplicação específica. Nesses casos, os dados de treinamento fornecidos ao sistema são extremamente importantes. Por exemplo, se um sistema recebe treinamento limitado a condições em uma área iluminada, haverá problemas quando o sistema tiver que operar sem luz.
Prova de Erros em IA (Treinamento de IA)
Como há um elemento humano por trás da IA e do aprendizado de máquina, não é possível torná-la totalmente à prova de erros. Existem, no entanto, maneiras de minimizar erros dentro de sistemas de IA. Um exemplo inclui CARRL (Certified Adversarial Robustness for Deep Reinforcement Learning), um algoritmo de aprendizado profundo desenvolvido no MIT cujo objetivo é auxiliar sistemas autônomos incentivando um nível de ceticismo sobre os dados que leva em conta, como ruído nos dados e esforços adversariais para confundir o sistema.
A Carnegie Mellon também tem trabalhado em um algoritmo de IA para modelos de aprendizado profundo. Chamado RATT (Randomly Assign, Train and Track), essa abordagem usa dados de treinamento não rotulados e ruidosos para estabelecer um limite superior para o risco real de erro. Esse limite superior pode então determinar quão bem um modelo de IA se adapta a novos dados de entrada. Além disso, pesquisadores de Princeton têm analisado algoritmos que permitirão a um sistema de IA aprender efetivamente quando erros estão presentes nos dados de treinamento.
Também existem padrões em desenvolvimento que impactarão os esforços de prova de erros. O NIST (Instituto Nacional de Padrões e Tecnologia) está contribuindo ativamente para padrões de IA que incluem foco na avaliação da confiabilidade da tecnologia de IA. O NIST também propôs uma abordagem para reduzir o risco de viés em sistemas de IA.
A CISA (Agência de Segurança Cibernética e Infraestrutura) dos Estados Unidos já está analisando padrões para vetar algoritmos de IA e coleta de dados, conforme revelado durante um painel de 2020 intitulado "Máquinas Gênio". Esse esforço, junto com o do NIST, enfatiza a responsabilização.
Abordando Erros em Sistemas de IA
Embora tornar os sistemas de IA pelos quais você é responsável à prova de erros possa não ser possível devido ao elemento humano envolvido, certamente existem maneiras de minimizar a possibilidade de erros.
Se você suspeita que erros estão vindo do seu sistema de IA, não culpe automaticamente o algoritmo; em vez disso, estude os erros para procurar um padrão. Por exemplo, se for um robô autônomo de separação em caixas cometendo erros, veja se há algo em comum que os itens incorretamente separados têm ou se há mudanças no ambiente do robô (iluminação, sombras, etc.) que poderiam afetar seu desempenho. Também pode haver um problema com uma lente de câmera suja na parte de visão computacional do sistema, como as encontradas em robôs móveis autônomos.

Muitas câmeras de visão computacional têm sistemas de IA integrados, como a FLIR Firefly DL, mas esses sistemas podem gerar erros se não forem mantidos limpos e configurados corretamente. Imagem cortesia da FLIR
Uma regra rígida de programação é que entrada ruim sempre resultará em saída ruim. O primeiro passo para minimizar o erro gerado por um sistema industrial de IA é garantir que seus dados sejam o mais precisos possível, começando com os sensores. Os sensores que fornecem dados de entrada a sistemas de IA devem ser calibrados regularmente.
Ferramentas dentro do sistema de IA que permitem aos usuários definir intervalos aceitáveis para dados devem ser implementadas após cuidadosa consideração de um intervalo aceitável: muito rigoroso, e a IA não fornecerá muito valor; muito frouxo, e gerará muitos erros. E lembre-se, esses valores podem ser ajustados.
Além disso, como aludido anteriormente, mantenha as câmeras limpas. Embora sistemas de visão computacional sejam projetados para serem robustos em várias condições ambientais, isso não significa que ainda funcionarão bem quando a visão for comprometida por uma lente suja. O mesmo vale para outros sensores industriais cuja precisão pode ser comprometida por acúmulo de incrustações, exposição a ambientes corrosivos, problemas mecânicos ou envelhecimento.
A IA é amplamente usada no setor industrial para tudo, desde controles de processo até inspeções de qualidade. E devido ao fator humano envolvido, esses sistemas de IA também estão sujeitos a erros. Algoritmos de prova de erros estão sendo desenvolvidos, mas esses métodos não estão totalmente maduros, nem foram extensivamente testados em aplicações industriais. E embora organizações como NIST e CISA estejam trabalhando em padrões de prova de erros, eles ainda estão em desenvolvimento. No entanto, algumas medidas simples podem reduzir a probabilidade de erro em seus sistemas de IA.
Robô industrial
- Entendendo Tipos de Dados em C++: Fundamentos, Modificadores e Boas Práticas
- Tipos de Dados em C Explicados: int, float, char e Mais – Guia Completo
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Encapsulamento em Java: Guia Prático de Ocultação de Dados
- Dominando Algoritmos de Coleção Java: Ordenação, Embaralhamento e Mais
- Dominando Type Casting em Java: De Widening a Narrowing e Além
- Entendendo Tipos de Dados em C: Guia Abrangente
- Uniões em C Explicadas: Gerenciamento Eficiente de Memória para Múltiplos Tipos de Dados
- Entendendo Tipos de Dados no MATLAB: Guia Completo
- Guia Completo dos Tipos de Dados em C#: Valor, Referência e Ponteiro