Lógica Fuzzy e Backpropagation: Conceitos Essenciais em IA

Classificado em Tecnologia

Escrito em em português com um tamanho de 4,7 KB

Lógica Fuzzy

A lógica difusa ou lógica fuzzy é uma extensão da lógica booleana que admite valores lógicos intermediários entre o FALSO (0) e o VERDADEIRO (1); por exemplo, o valor médio 'TALVEZ' (0,5). Isto significa que um valor lógico difuso é um valor qualquer no intervalo de valores entre 0 e 1. Este tipo de lógica engloba, de certa forma, conceitos estatísticos, principalmente na área de Inferência.

As implementações da lógica difusa permitem que estados indeterminados possam ser tratados por dispositivos de controle. Desse modo, é possível avaliar conceitos não-quantificáveis. Casos práticos incluem: avaliar a temperatura (quente, morno, médio, etc.), o sentimento de felicidade (radiante, feliz, apático, triste, etc.), a veracidade de um argumento (correctíssimo, correcto, contra-argumentativo, incoerente, falso, totalmente erróneo, etc.).

A lógica fuzzy deve ser vista mais como uma área de pesquisa sobre tratamento da incerteza, ou uma família de modelos matemáticos dedicados ao tratamento da incerteza, do que uma lógica propriamente dita. A lógica difusa normalmente está associada ao uso da teoria de conjuntos fuzzy.

Ao trabalhar com a lógica fuzzy, é comum chamar a lógica booleana de lógica nítida.

Backpropagation

Algoritmo de Backpropagation

O algoritmo de Backpropagation segue um processo iterativo para ajustar os pesos da rede:

  1. Inicialização: Defina um erro inicial (por exemplo, erro = 0) e um limiar de erro e.
  2. Repetição (Ciclo de Treinamento): Continue os passos abaixo até que o erro seja menor que e.
    1. Passo de Propagação Direta (Forward Pass):
      • Para cada camada i (de 1 a N, número de camadas):
      • Para cada nó j (de 1 a Mi, número de nós na camada i):
      • Calcule a saída do nó wij.
    2. Cálculo do Erro: Calcule o erro total da rede (por exemplo, erro quadrático médio).
    3. Passo de Propagação Reversa (Backward Pass):
      • Se o erro for maior que e:
      • Para cada camada i (de N a 1, da saída para a entrada):
      • Para cada nó j (de 1 a Mi):
      • Ajuste o peso da conexão wij com base na derivada da função de erro.

Características do Backpropagation

  • É o mais conhecido algoritmo de treinamento para redes MLP (Multilayer Perceptron).
  • Procura minimizar o erro alterando os pesos através do uso de informações sobre a derivada da função de erro.
    • As funções de ativação das unidades devem ser diferenciáveis (contínuas).
    • Por esse motivo, dizemos que é um algoritmo baseado em gradiente.
  • Se a função não for diferenciável, devem ser usados outros métodos que não utilizem derivada.
    • Ex.: Algoritmos genéticos, simulated annealing, entre outros.
  • O funcionamento é baseado na propagação da informação de erro a partir da camada de saída até a camada de entrada.
    • Por este motivo, não é comum usar muitas camadas escondidas (em geral, usamos 1 ou 2).
    • Cada vez que o erro é propagado para a camada anterior, torna-se uma estimativa menos precisa.
  • Termo de polarização (bias): Também é ajustável durante o treinamento.
    • Indica a posição da curva ao longo do eixo horizontal.

Tipos de Treinamento

  • Por padrão (on-line, incremental): Ajusta pesos a cada padrão de treinamento apresentado.
  • Por ciclo (batch): Ajusta pesos depois de apresentar todos os padrões de treinamento (considera um erro médio para o conjunto de padrões).
  • Estático: Topologia fixa (ajusta somente os pesos).
  • Dinâmico: Topologia ajustável (ajusta pesos e topologia).

Dificuldades no Uso de Backpropagation

  • Mínimos locais.
  • Overfitting.

Critérios de Parada Comuns

  • Parar quando atingir a quantidade máxima de iterações permitidas.
  • Parar quando o erro de treinamento cair abaixo de um limiar.
  • Parar quando o erro de validação crescer após atingir um mínimo.

Entradas relacionadas: