Desenvolvimento

20 set, 2018

A lógica sem lógica

Publicidade

Dentro do mundo da inteligência artificial encontramos vários algoritmos com suas particularidades. Já falamos de redes neurais artificiais, algoritmo evolutivo e colônia de formigas, por exemplo.

Porém, no próprio meio acadêmico e profissional, existem algumas pessoas que não percebem estes algoritmos como “dotados de inteligência”, visto que sua saída é apenas uma dicotomia baseada em um treino. Entretanto, existe uma lógica que foge da tradicional lógica booleana, é a chamada lógica fuzzy, lógica nebulosa, ou lógica difusa, e é dela que vamos falar hoje.

A lógica incerta

Para explicar um pouco a lógica Fuzzy, vamos nos apoiar na física quântica, já que está tão na moda falar sobre isso. Dentro da física quântica, temos um campo chamado mecânica quântica, que possui um enunciado chamado princípio da incerteza.

Este princípio limita a precisão de alguns pares de propriedades de partículas físicas, impossibilitando, por exemplo, que você saiba a posição e a velocidade de um elétron concomitantemente. Aqui não vamos entrar mais a fundo, pois não é o objetivo; porém, este princípio da incerteza serve para entendermos um pouco da lógica fuzzy.

Diferentemente do 0 e 1 da lógica clássica, a lógica fuzzy estabelece limites entre 0 e 1. Ela aplica o conceito de exceções às regras da lógica boolena. Pense da seguinte forma: uma expressão pode ser parte falsa e parte verdadeira, depende dos limites impostos pelo código. O mesmo valor pode ser falso em determinado momento e verdadeiro em outro.

Na realidade, a lógica fuzzy é baseada na teoria dos conjuntos fuzzy, que tem como objetivo analisar as incertezas probabilísticas e o conhecimento subjetivo por meio de modelos matemáticos. Porém, achamos mais fácil explicar pelo princípio da incerteza da mecânica quântica.

Como diria Einstein, “tão próximas as leis da matemática estejam da realidade, menos próximas da certeza elas estarão. E tão próximas elas estejam da certeza, menos elas se referirão à realidade”

Sistema Fuzzy

O processamento do conhecimento fuzzy é baseado no modelo abaixo.

Na etapa de fuzzificação, são utilizadas funções de pertinência definidas na modelagem do algoritmo. Estas funções podem ser trapezoidais, triangulares, gaussianas ou singletons.

O banco de regras é composto por uma base de dados e uma base de regras. Este modelo tem como objetivo caracterizar a estratégia de controle e as metas.

Na máquina de inferência é onde se aplica a lógica da tomada de decisão (IF, Else) baseada nos dados do banco de dados. Porém, aqui a importância está presente na definição dos conjuntos fuzzy referentes às variáveis de entrada e saída, visto que o desempenho é medido pela quantidade do número de conjuntos e da forma.

Durante a etapa de desfuzzificação, a variável fuzzy é transformada em valores escalares baseados em métodos como média de máximos e mínimos, primeiro máximo e último máximo, centroide e bissietorem.

Existem dois modelos de inferência fuzzy, o clássico Mandani e o Takagi-Sugeno-Kang. O primeiro converte valores quantitativos em qualitativos que, após seguidas inferências, os continua transformando em qualitativos. Ao final, ocorre a desfuzificação na qual estes valores qualitativos se tornam quantitativos novamente.

O segundo modelo transforma os valores de saída em funções das variáveis de entrada. Aqui não é necessária a desfuzzificação, visto que a resposta final é dada pela média ponderada das respostas das regras.

Didaticamente

A princípio, pode parecer um pouco confuso, mas imagine o seguinte: você trabalha em um escritório no qual a temperatura do ar condicionado seja um problema, pois pessoas diferentes têm padrões de conforto diferentes, entretanto, todos querem que o ambiente esteja frio. Então, nosso problema é o seguinte: precisamos de um ambiente confortável e frio; como resolver isso?

Aqui, temos um conjunto de variáveis, dadas por cada membro do escritório, que correspondem a temperatura confortável para cada um. Ao mesmo tempo, temos outro conjunto de dados, construído da mesma maneira e que nos mostra o que cada um entende como frio.

O que a fuzzy faz é criar uma intersecção do conjunto confortável E frio e a união do conjunto confortável OU grande e o complemento de frio que representa as temperaturas que não são frias.

Utilizações

A lógica fuzzy tem várias aplicações. A princípio ela foi desenvolvida para o processamento de linguagem natural. Era uma tentativa se aproximar a linha de raciocínio e fala de um computador a de um humano.

Porém, atualmente, temos outras aplicações. Podemos ver a fuzzy aplicada em identificação de imagens, por exemplo. Normalmente, a classificação de imagens é realizada por meio da segmentação das mesmas e identificação de bordas. Estas bordas, muitas vezes, são complexas de serem localizadas, pois podem existir lacunas entre as segmentações, o que gera uma transição indefinida. Além disso, a identificação pode não ser tão precisa, encontrando uma borda em um local que não é considerado uma fronteira.

Assim, pixels vizinhos podem confundir a lógica booleana comum. Porém, se utilizarmos a fuzzy e seus limites de verdadeiro e falso, podemos trabalhar com ambiguidades e informações imprecisas, o que nos permite utilizar funções de pertinência para delimitar o grau de parentesco entre os pixels.

Existem aplicações da lógica fuzzy em sistemas não lineares, como abastecimento de água que levam em consideração os diversos níveis de consumo, rotas de trânsito que levam em consideração modelos de carro, pedágios, além de caracterização de climas, controladores de temperatura, sistemas de reconhecimento de doenças e por aí vai.

Sua utilização é enorme e não deveria ser diferente. Como eu sempre digo, a tecnologia é um meio para um fim, e não é um fim em si só; basta apenas que você enxergue um problema na qual ela poderá ser utilizada.

***

Artigo publicado na revista iMasters, edição #26: https://issuu.com/imasters/docs/imasters_26_v6_isuu