Modelos de Inteligência Artificial

Modelo de IA

O que é um modelo de inteligência artificial?

Um modelo de IA é uma representação matemática que aprende padrões a partir de dados.

Essa definição abrange desde equações simples até redes neurais profundas.

Formalmente, um modelo mapeia entradas (características) em saídas (previsões).

Ele é construído por meio de um algoritmo de treinamento com exemplos históricos.

O objetivo é generalizar para novos dados nunca vistos antes.

Em essência, o modelo é o “cérebro” que encapsula o conhecimento adquirido.

Seus parâmetros são ajustados iterativamente para minimizar erros de previsão.

Sem um modelo, a IA seria apenas um conjunto de regras fixas e inflexíveis.

Portanto, a definição central é: função parametrizada que aproxima a realidade.

O que são modelos de inteligência artificial?

Modelos de IA são algoritmos que aprendem padrões a partir de dados.

Eles podem ser divididos em grandes famílias conforme sua lógica interna.

Esta classificação ajuda a escolher a ferramenta certa para cada problema.

Para iniciantes, é essencial entender essas diferenças básicas.

Modelos discriminativos versus generativos

Modelos discriminativos aprendem a fronteira entre classes de dados.

Eles respondem: “dado X, qual é a probabilidade de Y?”.

Regressão logística e máquinas de vetor de suporte são exemplos típicos.

Por outro lado, modelos generativos aprendem a distribuição conjunta P(X,Y).

Eles conseguem gerar novos exemplos semelhantes aos originais.

Redes generativas adversárias (GANs) e modelos de difusão são populares.

Enquanto discriminativos são ótimos para classificação, generativos criam conteúdo.

Ambos têm aplicações valiosas em visão computacional e processamento de texto.

Paramétricos e não paramétricos

Modelos paramétricos assumem uma forma funcional fixa com poucos parâmetros.

Regressão linear e redes neurais simples são exemplos dessa categoria.

Eles são rápidos de treinar, mas podem ser inflexíveis com dados complexos.

Já os não paramétricos não impõem uma estrutura rígida predefinida.

O número de parâmetros cresce com o tamanho dos dados de treino.

K-vizinhos mais próximos e árvores de decisão são representantes clássicos.

Eles se adaptam melhor a formas arbitrárias, porém exigem mais memória.

A escolha entre eles depende do volume e da natureza dos seus dados.

Baseados em instâncias (memória), árvores e redes neurais

Modelos baseados em instâncias guardam todos os exemplos de treinamento.

Para prever, eles comparam o novo ponto com os armazenados.

O algoritmo KNN é o mais conhecido dessa abordagem intuitiva.

Modelos baseados em árvores particionam o espaço com perguntas sucessivas.

Árvores de decisão e random forests são robustas e interpretáveis.

Elas lidam bem com dados categóricos e valores faltantes.

Modelos conexionistas, ou redes neurais, simulam neurônios interconectados.

Deep learning é a versão moderna com muitas camadas ocultas.

Eles exigem grandes volumes de dados e poder computacional significativo.

Bayesianos e evolucionários

Modelos bayesianos usam o teorema de Bayes para atualizar crenças.

Eles partem de uma probabilidade a priori e a refinam com os dados.

Redes bayesianas e classificadores Naive Bayes são exemplos práticos.

Essa abordagem é excelente para incerteza e dados escassos.

Modelos de otimização evolucionária imitam a seleção natural darwiniana.

Algoritmos genéticos evoluem soluções por meio de mutação e cruzamento.

Eles são úteis quando o espaço de busca é enorme e desconhecido.

Nenhuma garantia de ótimo global é oferecida, mas funcionam na prática.

Tribo Evolucionista

carnaval

O que é? A Tribo Evolucionista é uma das cinco grandes famílias de métodos da Inteligência Artificial. Inspirada na teoria da evolução de Charles Darwin, ela utiliza princípios como seleção natural, mutação e reprodução para encontrar soluções ótimas para problemas complexos.

Diferencial: É livre de derivadas e excelente para explorar espaços de busca enormes, irregulares ou pouco compreendidos, onde métodos tradicionais falham.

1. Algoritmos Genéticos (AG)

Os Algoritmos Genéticos são os mais populares e conhecidos da Computação Evolucionária. Trabalham com uma população de soluções codificadas como cromossomos (strings binárias ou vetores reais). A cada geração, os melhores indivíduos são selecionados para reprodução, gerando descendentes por cruzamento e mutação.

Componentes Fundamentais

Seleção (Roleta, Torneio)

Define quais indivíduos sobrevivem e se reproduzem. A roleta atribui probabilidades proporcionais à aptidão; o torneio compara aleatoriamente um subconjunto e escolhe o melhor.

Probabilidade na roleta: \(P(i) = \frac{f_i}{\sum_{j=1}^{N} f_j}\)

Cruzamento (Crossover)

Combina partes de dois cromossomos para gerar novos descendentes, promovendo a exploração do espaço de busca.

Crossover de ponto único: \(filho = pai_1[1..k] + pai_2[k+1..n]\)

Mutação

Introduz pequenas alterações aleatórias em um cromossomo, garantindo diversidade genética e evitando convergência prematura.

Mutação binária: \(bit = 1 – bit\) (inverte o bit)

Função de Aptidão (Fitness)

Avalia a qualidade de cada solução. É o “termômetro” que guia todo o processo evolutivo.

Exemplo: \(f(x) = \frac{1}{1 + erro(x)}\)

Aplicações típicas: Otimização de parâmetros, problemas de roteamento, design de engenharia, ajuste de hiperparâmetros em ML.

2. Programação Genética (PG)

Enquanto os AGs evoluem parâmetros, a Programação Genética evolui programas de computador completos. As soluções são representadas como árvores de expressão, onde folhas são variáveis/constantes e nós internos são operadores.

Subcomponentes

Árvores de Expressão

Estruturas hierárquicas que representam funções ou programas. Ex: a expressão (x + 3) * y vira uma árvore com * na raiz.

Representação: \(f(x,y) = (x + 3) \times y\)

Evolução de Programas

A população de árvores evolui por cruzamento (troca de sub-árvores) e mutação (alteração de nós), buscando programas que resolvam problemas específicos.

Crossover em PG: \(filho = arvore_1[subarvore_a] + arvore_2[subarvore_b]\)

Aplicações típicas: Descoberta de fórmulas matemáticas, síntese de circuitos, automação de tarefas, geração de heurísticas.

3. Estratégias Evolutivas (EE)

Especializadas em otimização contínua (variáveis reais). Desenvolvidas na Alemanha, destacam-se pela auto-adaptação dos parâmetros de mutação.

Subcomponentes

(1+1)-ES

A mais simples: um pai gera um filho por mutação. O melhor entre os dois sobrevive.

Regra: \(x’ = x + \mathcal{N}(0, \sigma)\)

(μ,λ)-ES

μ pais geram λ descendentes (λ > μ). A nova geração é composta apenas pelos λ filhos, descartando os pais. Promove exploração.

Seleção: \(P_{t+1} = \mu \text{ melhores de } \lambda \text{ filhos}\)

(μ+λ)-ES

Pais e filhos competem juntos; os μ melhores sobrevivem. Abordagem mais elitista.

Seleção: \(P_{t+1} = \mu \text{ melhores de } (\mu \text{ pais} + \lambda \text{ filhos})\)

Aplicações típicas: Otimização contínua em robótica, engenharia aeroespacial, controle de processos.

4. Programação Evolutiva (PE)

Evolui estruturas de dados sem restrição a uma representação fixa. Originalmente proposta para evoluir autômatos finitos que aprendem a tomar decisões.

Subcomponentes

Autômatos Finitos Evolutivos

Máquinas de estados que evoluem suas transições e estados por mutação (sem crossover). Cada autômato é avaliado por sua capacidade de resolver uma tarefa.

Autômato: \(M = (Q, \Sigma, \delta, q_0, F)\)

Aplicações típicas: Aprendizado de máquina, reconhecimento de padrões, planejamento e tomada de decisão em ambientes dinâmicos.

5. Algoritmos de Colônias de Formigas (ACO)

Inspirados no comportamento social de formigas para resolver problemas de otimização combinatória (ex: Caixeiro Viajante). As formigas artificiais depositam feromônios nas arestas de um grafo; a intensidade do feromônio guia futuras formigas para caminhos mais curtos.

Subcomponentes

Ant System (AS)

Primeira versão. Todas as formigas constroem soluções completas e atualizam os feromônios com base no comprimento do caminho encontrado.

Atualização: \(\tau_{ij}(t+1) = (1-\rho) \cdot \tau_{ij}(t) + \sum_{k=1}^{m} \Delta \tau_{ij}^k\)

Ant Colony System (ACS)

Evolução do AS, com mecanismo de exploração vs. exploração e atualização local de feromônio, melhorando a convergência.

Regra de transição: \(p_{ij}^k = \frac{[\tau_{ij}]^\alpha [\eta_{ij}]^\beta}{\sum_{l \in \text{permitidos}} [\tau_{il}]^\alpha [\eta_{il}]^\beta}\)

Aplicações típicas: Roteamento de veículos, problemas de alocação, redes de telecomunicações, logística.

6. Otimização por Enxame de Partículas (PSO)

Inspirado no comportamento social de bandos de pássaros. Cada partícula representa uma solução candidata que se move no espaço de busca, ajustando sua posição com base em sua melhor experiência individual e na melhor experiência do grupo.

Subcomponentes

PSO Clássico

Cada partícula ajusta sua velocidade baseada em sua posição anterior e nas melhores posições encontradas, sem parâmetro de inércia.

Velocidade: \(v_i(t+1) = v_i(t) + c_1 \cdot r_1 \cdot (p_i – x_i(t)) + c_2 \cdot r_2 \cdot (g – x_i(t))\)

PSO com Inércia

Adiciona um coeficiente de inércia que controla o impacto da velocidade anterior, equilibrando exploração global e local.

Velocidade com inércia: \(v_i(t+1) = w \cdot v_i(t) + c_1 \cdot r_1 \cdot (p_i – x_i(t)) + c_2 \cdot r_2 \cdot (g – x_i(t))\)

Posição: \(x_i(t+1) = x_i(t) + v_i(t+1)\)

Aplicações típicas: Otimização de funções contínuas, treinamento de redes neurais, ajuste de controladores, processamento de sinais.