Inteligência Artificial

André Claudino

André Claudino

https://www.linkedin.com/in/andreclaudino/

https://github.com/andreclaudino

http://t.me/aclaudino

  • PhD. Física Computacional
  • Time IA Front
  • Autor do Livro ML Ops
  • Professor
  • Youtuber Iniciante

08/09

  • Introdução a IA
  • Tipos de IA
  • Hands On: Modelo em Tensorflow

09/09

  • Introdução a RL
  • Q-Learning
  • Hands On: Modelo de RL para jogar pong via API

Inteligência

Artificial

Inteligência

=

habilidade de generalizar

Inteligência

Artificial

MAXIMO_SEM_IMPOSTO = 237689.00
ALIQUOTA = 0.27

def inclui_impostos(pagamento: Pagamento):
	
    if pagamento.total >= MAXIMO_SEM_IMPOSTO:
    	pagamento.imposto = ALIQUOTA
        pagamento.total = pagamento.total * ALIQUOTA
        
    return pagamento
class PrevisorReceita(tf.Module):
  
  def __init__(name=None):
    super(PrevisorReceita, self).__init__()
    
  def __call__(self, input, training=False):
    self.inner_block(input)
    
  .
  .
  .

Tipos de IA

Supervisionado

Supervisionado

Não supervisionado

Não supervisionado

Geradores

Geradores

Aprende a gerar itens parecidos com a entrada

Reforço

Aprende qual ação tomar em busca de recompensa

Deep Learning

Neurônio

Neurônio

\mathcal{N}(\vec{x}, w) \equiv f(\vec{x} \cdot \vec{w})

Camada

Camada

\mathcal{\vec{N}}(\vec{x}, W) \equiv \vec{f}(W \vec{x})

Objetivo

\mathcal{L}(\vec{x}, y, \theta) \rightarrow0 \, \forall \vec{x}

Exemplo

Classificador de texto

Classificador de texto

  • Transferência de aprendizado
  • Modularizado
  • Pode ser reusado
  • Pode ser retreinado

Modelo

Encoder

Classificador

Ambiente

  • Criar virtualenv
  • Criar setup.py
$> python3.6 -m virtualenv venv
$> sourve venv/bin/activate
$> nano setup.py
from setuptools import setup, find_packages

setup(
    name='classificador',
    version='',
    packages=find_packages(),
    url='',
    license='',
    author='Time IA-FRONT',
    author_email='',
    description='',
    install_requires=[
        "tensorflow==2.1.0",
        "click==7.1.2"
    ]
)

Coletar dados de arquivos

from typing import Sequence, Optional

import tensorflow as tf

PRELOAD_FACTOR = 3


def load_microdata_from_csv(path: str, defaults: Sequence[tf.Tensor], batch_size: int,
                            repeats: Optional[int] = None,
                            limit: Optional[int] = None) -> tf.data.Dataset:
    buffer_size = PRELOAD_FACTOR*batch_size
    
    dataset = tf.data.experimental.CsvDataset(
                path, defaults, buffer_size=buffer_size,
                header=True, select_cols=None
              ).shuffle(buffer_size)

    dataset = dataset.limit(limit) if limit else dataset
    dataset = dataset.repeat(repeats) if repeats else dataset

    return dataset.batch(batch_size)

Hands On

Valeu!

https://www.linkedin.com/in/andreclaudino/

https://github.com/andreclaudino

http://t.me/aclaudino

Aprendizagem por Reforço

(de novo)

Como funciona?

  • Aprende comportamento em troca de recompensa
  • Genérico para problemas diferentes
  • (Usado quando nada mais dá certo)

Fluxo

Pong

Regras

  • Bastões só se movem na vertical
  • Se a bota tocar os cantos verticais da tela, jogo é encerrado
  • Quem lança a bola para a parede oposta ganha um ponto
  • Bola acelera quando é rebatida
  • Bola é refletida nos cantos superior e inferior

Regras na IA

  • Bater na bola aumenta recompensa
  • Quanto maior a distância vertical da bola, menor a recompensa
  • Ganhar o jogo aumenta a recompensa
  • Perder o jogo diminui a recompensa
  • Sair da tela diminui a recompensa
  • Ações possíveis são subir, descer e não fazer nada
Made with Slides.com