Por Renan Williams
Quando falamos sobre Inteligência Artificial (IA) é comum imaginarmos cenas como nos filmes da trilogia Matrix, dirigidos pelas irmãs Wachowski, ou uma dominação do mundo por robôs como no filme Eu Robô, protagonizado por Will Smith. Apesar de realidades como os filmes citados estarem um pouco longe de serem realidades (ou não tão longe assim hehe), nós já inserimos IA no nosso dia a dia.
Algoritmos de Inteligência Artificial já são utilizados atualmente em aeronaves no auxílio com o piloto automático, em carros com sensores que relatam a saúde do veículo, em dispositivos móveis no aprendizado do modo específico de digitação de cada usuário, na área da saúde com o auxílio aos diagnósticos de doenças e compõem uma parte muito importante no desenvolvimento da Indústria 4.0.
No desenvolvimento da Indústria 4.0, algoritmos de Aprendizagem de Máquina (Machine Learning) são de extrema importância para realização de análises preditivas. Vamos supor que uma empresa do ramo da produção de papel gostaria de saber, previamente, quando uma de suas máquinas irá apresentar algum tipo de defeito e em qual área da máquina existe uma maior probabilidade desse defeito acontecer. Nós podemos analisar dados dos sensores presentes nesta máquina e criar um algoritmo que consiga prever, com antecedência, quando e onde existe uma maior probabilidade de acontecer um defeito na máquina. Com essa informação, alguma pessoa responsável pelo gerenciamento desta máquina pode acionar algum tipo de medida corretiva e, assim, evitar que a máquina apresente o defeito, otimizando a produção.
Uma das partes mais importantes, na construção desses algoritmos de análises preditivas, é garantirmos que o processo de validação seja feito de forma correta, de acordo com a distribuição dos dados analisados. Esses algoritmos são capazes de realizar previsões futuras com base em dados históricos, portanto, precisamos garantir que nosso algoritmo aprenda características essenciais nos dados históricos que o torne capaz de identificar padrões nesses dados e, a partir daí, realizar previsões futuras.
Se fôssemos descrever a base de dados fornecida pela empresa no exemplo citado acima, poderíamos facilmente identificar um problema de desbalanceamento de classes nessa base de dados (em caso de decidirmos resolver esse problema como um problema de classificação com duas classes: 0 —máquina em funcionamento, 1 — máquina parou de funcionar por algum defeito). É factível pensarmos que em sua maioria dos dados históricos, a máquina estava funcionando, caso contrário, a produção de papel por essa máquina não seria tão rentável. Sendo assim, precisamos ensinar ao nosso algoritmo que apesar de geralmente a máquina estar em funcionamento, estaremos mais interessados em prever os momentos em que ela não estará. Se não tomarmos esses devidos cuidados, corremos o risco de termos um algoritmo que sempre irá prever todas as futuras situações da máquina como da classe 0 (máquina em funcionamento).
Entendendo que esse processo é de suma importância para o desenvolvimento de um algoritmo preditivo sem viés, apresento algumas dicas que podem ser bastante úteis:
- Otimize a métrica certa com base em seus objetivos: se você está trabalhando com uma base de dados desbalanceada, não é aconselhável utilizar a métrica Acurácia para otimização do seu algoritmo. Esta métrica irá medir quantas previsões corretas o algoritmo irá realizar, porém, como no exemplo citado, se um algoritmo prever todas situações como 0 irá acertar a maioria dos casos, mas nós precisamos medir quando este algoritmo irá acertar bem a classe 1. A Precisão, exclusivamente da classe 1, é uma métrica bastante interessante de ser otimizada neste caso, pois, ao contrário da Acurácia, a Precisão irá medir quantas vezes o algoritmo acertou a classe 1 de todas as vezes que ele previu uma situação como classe 1.
- Utilize alguma técnica de Cross-Validation na construção do seu algoritmo: É comum separarmos uma parte dos dados disponíveis para a fase de Treinamento/Validação, onde nosso algoritmo irá aprender as características necessárias para identificação de algum padrão, e outra parte para a fase de Teste, que é onde realizamos previsões e verificamos o desempenho do algoritmo como se estivéssemos simulando dados futuros. Porém, dependendo da base de dados, é recomendável repetir esse processo algumas vezes para medirmos a variância do desempenho do algoritmo. A técnica de Cross-Validation K-FOLD é muito utilizada, pois esta técnica divide a base de dados em K lotes e o processo de Treino/Validação é feito K vezes sempre variando a seleção dos lotes para Treinamento e Validação. Com isso conseguimos medir a variância do desempenho do nosso algoritmo nos dados disponíveis.
- A escolha de um algoritmo preditivo adequado ao problema: existem várias famílias de algoritmos preditivos, porém, dependendo do problema a ser resolvido, alguns algoritmos são mais indicados que outros. No caso do nosso exemplo, da empresa de produção de papel, temos uma base de dados desbalanceada, então faz sentido testarmos alguns algoritmos que no seu funcionamento interno já tratem um pouco esse desbalanceamento. Dependendo do nível de desbalanceamento da base de dados, por exemplo 70% para a classe 0 e 30% para a classe 1, algoritmos como Gradient Boosting e Random Forest podem ser ótimas tentativas para esse problema, pois ambos possuem internamente técnicas de criação de ensembles que podem ser bastante úteis para esta solução. Supondo agora que, no nosso exemplo, temos um nível de desbalanceamento de 99% para a classe 0 e 1% para a classe 1, talvez outros algoritmos sejam mais interessantes de serem testados, como OneClassSVM que tenta aprender padrões de apenas uma das classes e prevê tudo que for diferente como a outra classe.
Em geral, essas três dicas nos ajudam bastante a evitarmos viés no nosso algoritmo preditivo, porém, existem várias outras técnicas que podem ser utilizadas para obtenção de um algoritmo mais fiel possível aos dados, tudo vai depender do tipo de base de dados que está sendo trabalhada.
Empresas com produção industrial que não buscarem se atualizar nesta área, podem acabar perdendo competitividade com relação aos seus concorrentes. A aplicação de algoritmos de Machine Learning tem sido cada vez mais útil para otimização da produção em grandes indústrias. E, para não ficarmos apenas com minhas palavras, indico muito a leitura do artigo Machine Learning in Predictive Maintenance towards Sustainable Manufacturing in Industry 4.0, publicado em 05 de outubro de 2020 por Zeki Çinar e seus colaboradores na revista científica Sustainability. Neste artigo, os autores comentam mais detalhadamente sobre os recentes avanços que o Machine Learning tem tido na área de Manutenção Preditiva no desenvolvimento da Indústria 4.0.
Sua empresa precisa de algortimos de predição para otimizar seu dia a dia? Entre em contato com a Stepps e podemos conversar sobre nossas soluções!
Para se inscrever gratuitamente na Stepps News, acesse: bit.ly/steppsnews