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
Introdução ao Machine Learning
By André Claudino
Introdução ao Machine Learning
- 107