Compreendendo A Inteligência Artificial - Fábrica de Noobs

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 348

Compreendendo a

Inteligência Artificial

Natanael Antonioli

Fábrica de Noobs

Novembro de 2021
Introdução
Objetivos

No vídeo de hoje, começaremos a abordar a inteligência artificial, suas aplicações e seus funcionamentos. O
tema foi escolhido uma vez que:

▪ Muitos têm uma concepção errônea do que a inteligência artificial é capaz, e do que o correto
desempenho de uma função por uma inteligência artificial implica.

▪ Muitos imaginam aplicações de inteligência artificial como caixas-pretas, dentro das quais algum tipo de
magia acontece.

▪ Muitos tentam explicar aplicações de inteligência artificial usando nomes de técnicas, mas isso não traz
qualquer valor se nós não soubermos o que essas técnicas representam. Afinal, o que diabos é um
algoritmo genético?
Introdução
Objetivos

▪ Diversos vídeos no futuro envolverão aplicações de inteligência artificial, e assim poderemos mencionar
técnicas sem nos preocupar em detalhar como elas funcionam (e como seus pré-requisitos funcionam).
Introdução
Organização

Faremos isso ao longo de 5 vídeos, com os temas:

1. Resolução de problemas: além dessa introdução, técnicas clássicas de inteligência artificial como busca em
largura, profundidade, gulosa, heurística, jogos, subida e descida de encosta e algoritmos genéticos.

2. Representação de conhecimento: lógica proposicional, lógica de predicados, ontologia, redes bayesianas e


modelos de Markov.

3. Aprendizagem: tarefas de regressão, classificação, agrupamento, aprendizado de regras de associação, redução


da dimensionalidade através de aprendizado supervisionado, não supervisionado, reforçado e redes neurais.
Introdução
Organização

4. Percepção e ação: processamento de linguagem natural, visão computacional e robótica.

5. Aplicações e fundamentos: lista não exaustiva mas ampla de aplicações e seus funcionamentos, filosofia,
ética da inteligência artificial e conclusões.

Cada vídeo requer o vídeo anterior para ser melhor entendido, porém nenhum deles requer conhecimentos
prévios na área de computação.

Ao final, espera-se que o espectador seja capaz de entender como a maioria das aplicações de inteligência artificial
funcionam em detalhes, bem como aprender sozinho sobre novas aplicações. Essa série não envolve
implementação dos algoritmos, apenas explicações de alto nível e demonstrações, e também não
substitui uma disciplina acadêmica de inteligência artificial.
Introdução
Organização

Nesse momento, todos os vídeos já estão prontos:


roteirizados, gravados, editados e enviados para o
YouTube.

Eles serão postados em uma frequência de 2 a 3 por


semana.
Introdução
O que é inteligência artificial?

Definir inteligência artificial é uma tarefa complicada, e podemos separar tentativas de fazê-lo em quatro
categorias.
Ideal humano Ideal racional
“O novo e interessante esforço para fazerem os “O estudo das faculdades mentais
computadores pensarem (...) máquinas com mentes, no pelo uso de modelos
Pensamento

sentido total e literal.” computacionais.” “

[Automatização de] atividades que associamos ao “O estudo das computações que


pensamento humano, atividades como a tomada de tornam possível perceber,
decisões, a resolução, o aprendizado...” raciocinar e agir.”
“A arte de criar máquinas que executam funções que “Inteligência Computacional é o
exigem estudo do projeto de agentes
inteligência quando executadas por pessoas.” inteligentes.”
Ação

“O estudo de como os computadores podem fazer “AI... está relacionada a um


tarefas desempenho inteligente de
que hoje são melhor desempenhadas pelas pessoas.” artefatos.”
Introdução
Agentes inteligentes

Em termos gerais, nossos objetivos serão estudar como agentes inteligentes podem ser desenvolvidos. Um agente é
tudo que pode ser considerado capaz de perceber seu ambiente através de sensores, e agir sobre ele por intermédio
de atuadores.

Um agente robótico pode ter câmeras e detectores da faixa de infravermelho funcionando como sensores e vários
motores como atuadores.

Um agente de software recebe sequências de teclas digitadas, conteúdo de arquivos e pacotes de rede como
entradas sensórias e atua sobre o ambiente exibindo algo na tela, escrevendo em arquivos e enviando pacotes de
rede.
Resolução de problemas
Objetivo

Aqui, queremos que programas sejam capazes de


resolver problemas (tais como jogos ou otimização)
que humanos são capazes de resolver.
Resolução de problemas
Representação do problema

O programa precisa primeiro ser capaz de trabalhar com o problema. Um primeiro tipo de problema, aquele no
qual devemos cumprir etapas para se chegar e um objetivo, é representado elencando:

- Uma coleção de estados que o problema pode assumir;


- As operações que permitem mudar de estado;
- O estado inicial (𝑆) e o estado final (𝑂).

Opcionalmente:

- Uma função de custo para cada mudança de estado possível;


- Uma função heurística que avalia um estado.
Resolução de problemas
Representação do problema

“Um fazendeiro tem uma cabra, um saco de trigo e um lobo que precisam cruzar um rio (da margem A para a
margem B) em um barco. O barco comporta apenas o fazendeiro e mais dois itens de cada vez. Sabe-se que, se
deixados sozinhos:

- O lobo mataria a cabra;


- A cabra comeria o trigo.

Em que ordem fazer a travessia?”

Margem A Margem B
Resolução de problemas
Representação do problema
Fazendeiro Lobo Cabra Trigo Estado
Cada item (incluindo o fazendeiro)
A A A A Inicial
pode estar em um de dois lados, o A A A B
que significa que o problema pode A A B A
A A B B Proibido
assumir 24 = 16 estados diferentes.
A B A A
A B A B
Alguns (6 deles) são proibidos, pois A B B A Proibido
A B B B Proibido
levam ao trigo sendo comido pela
B A A A Proibido
cabra ou à cabra sendo morta pelo B A A B Proibido
lobo. B A B A
B A B B
B B A A Proibido
Um é o estado inicial, o outro é o B B A B
estado final (ou objetivo). B B B A
B B B B Final
Resolução de problemas
Representação do problema

Assim, cada linha válida da tabela é chamada de estado, e ela permite produzir um mapa que indica quais transições
de estados são possíveis.

A A A A A A A B A A B A A B A A A B A A

B A B A B A B B B B A B B B B A B B B B
Resolução de problemas
Representação do problema

Assim, cada linha válida da tabela é chamada de estado, e ela permite produzir um mapa que indica quais transições
de estados são possíveis.

A A A A A A A B A A B A A B A A A B A A

B A B A B A B B B B A B B B B A B B B B
Resolução de problemas
Representação do problema

Assim, cada linha válida da tabela é chamada de estado, e ela permite produzir um mapa que indica quais transições
de estados são possíveis.

A A A A A A A B A A B A A B A A A B A A

B A B A B A B B B B A B B B B A B B B B
Resolução de problemas
Representação do problema

Diversas soluções existem a partir desses estados. Estamos interessados em automatizar a tarefa de encontra-las, e
impor restrições (como encontrar a solução com o menor número de passos).

A A A A A A A B A A B A A B A A A B A A

B A B A B A B B B B A B B B B A B B B B
Resolução de problemas
Representação do problema

Ao passo em que o uso de linhas e descrições completas de cada estado é útil para fins didáticos, podemos nomear os
dez estados como letras do alfabeto, de forma que trabalhar com esses rótulos é mais fácil.

S C E G I

B D F H O
Resolução de problemas
Representação do problema

A organização intrincada da imagem anterior fica


S C
mais legível quando fazemos uma malha. Nossos
D I
algoritmos deverão percorrer essa malha seguindo
alguma regra.
F

B
G
E
O
H
Resolução de problemas
Busca em largura

Na busca em largura, todos


S
os nós de um nível são
abertos primeiro, para que
depois os nós do segundo
nível sejam abertos. B D F H

Encontra sempre o
E C I G
caminho mais curto para a
solução, que será o caminho
ótimo caso todos os O
movimentos tenham o
mesmo custo.
Resolução de problemas
Busca em profundidade

Na busca em profundidade,
S
exploramos todo o ramo de
cada nó antes de retornar
ao mesmo nível.
B D F H

O
Resolução de problemas
Busca bidirecional

Aqui, executamos duas buscas simultâneas: uma partindo do estado inicial em direção ao objetivo, e outra partindo
do objetivo em direção ao estado inicial.

O algoritmo termina quando ambas as buscas retornam um nó em comum.

E
D
S O
F I

G
Resolução de problemas
Busca de custo uniforme

Em algumas situações, cada movimento também Assim, usamos um algoritmo que explora os

possui um custo associado. Esse é o caso, por expande em sequência os nós cujo custo do

exemplo, de sistemas de navegação. movimento é menor, até que o nó objetivo seja


expandido e o algoritmo termine.
3 B 3
Aqui, há garantia de encontrarmos o caminho de
1 A
1
D menor custo, independente de seu tamanho.
1
S Operação Resultado
C 3 S é expandido Gera A-1, G-12
2
A é expandido Gera C-2, B-4
C é expandido Gera D-3, G-4
12
G D é expandido Gera G-6
B é expandido Gera D-7
G é expandido Objetivo
Resolução de problemas
Heurística

As estratégias que verificamos até agora utilizam somente da definição do problema para tomar decisão. Isso é
chamado de busca desinformada. Entretanto, outro tipo de busca, chamado de busca informada, utiliza regras para
avaliar um estado e decide para qual estado seguir em função dessas regras, em combinação ou não com o custo da
mudança de estado. A heurística, ℎ(𝑛), dá um indicador numérico para um estado, e a função de avaliação, 𝑓(𝑛),
prepara esse indicador para a tomada de decisão.

Decisão de
Estado mudança de
atual estado

Custo associado à transição Função de


avaliação
Possível Heurística (Estado seguinte)
estado Função
seguinte heurística
Resolução de problemas
Heurística

A função heurística é zero no objetivo (em outras palavras, 𝑓 𝑂 = 0)e é uma função positiva. Ademais, a definição
da função heurística é intimamente ligada ao problema com o qual estamos trabalhando. Por exemplo, para um
quebra-cabeça de 8 peças no qual devemos mover peças na horizontal e vertical até atingir um objetivo, seguem
duas possíveis funções heurísticas:

▪ ℎ1 (𝑛), determinado pelo número de peças que estão fora de


lugar em relação ao estado objetivo.
▪ ℎ2 𝑛 , determinada pela soma da distância das peças até suas
posições-objetivo. As peças são movidas na horizontal e vertical,
então consideramos o número de movimentos que precisariam
ser feitos em um tabuleiro no qual essa peça estivesse sozinha, e
ela fosse movida da posição corrente até a posição objetivo.
Resolução de problemas
Heurística

A
14 9 E
h = 38 15
É comum que lidemos com situações nas 21
h = 17
quais cada transição possui um custo, e 13
S B
cada estado possui uma heurística. 8 O h=0
h = 36 49
h = 25
D
10
C 14
h = 19
9

h = 16 F
13
h = 10
Resolução de problemas
Busca gulosa

Na busca gulosa, definimos S


𝑓 𝑛 = ℎ(𝑛). Em outras
palavras, apenas a
heurística de cada estado é A B C
levada em consideração. f = 25 f =16
f = 38

O algoritmo irá escolher o


D F
nó que possui a menor
função de avaliação e que, f =19 f =10
na busca gulosa, é
simplesmente a menor
O
heurística.
Resolução de problemas
Busca A*

Na busca A*, definimos 𝑓 𝑛 = Operação Resultado


ℎ 𝑛 + 𝑔 𝑛 , em que g(n) é a S é expandido Gera A - 38+14=52, B-13+25=38, C-16+49=65
B é expandido Gera D - 13+8+19=40, E - 13+9+17=39
função de custo para alcançar o
E é expandido Gera O - 13+9+21=43
próximo estado. D é expandido Gera C - 13+8+14+16=51, F - 13+8+9+10 = 40
F é expandido Gera O - 13+8+9+10 = 40
O é expandido Objetivo encontrado
Mais uma vez, nós escolhemos a
menor função de avaliação, que
agora é uma combinação entre
heurística e custo.

É como uma busca de custo


uniforme, mas com heurística.
Resolução de problemas
Ambientes competitivos

Até agora, o processamento realizado pelos algoritmos leva em conta somente um único agente: o próprio
computador.

Porém, algoritmos de busca podem ainda ser aplicados em situações nas quais o computador deve procurar um
objetivo ao mesmo tempo em que outro agente, de forma adversária, persegue esse objetivo. Essas situações podem
também se beneficiar de algoritmos de busca, em uma área denominada busca competitiva.

Aqui, muitas vezes temos um espaço de busca muito maior (e inviável de ser inteiramente elencado), além da
necessidade de tomar alguma decisão mesmo que seja inviável saber se essa decisão é de fato ótima.
Resolução de problemas
Minimax

O primeiro passo para o A


algoritmo Minimax é
gerar toda a árvore de
busca do jogo, a ser
B C
jogado, e atribuir um
valor numérico para cada
D E F G
possível resultado do jogo.

Cada nível da árvore


H I J K L M N O
corresponde à possíveis
jogadas de um dos 2 3 5 9 0 1 7 5
jogadores.
Resolução de problemas
Minimax

A ideia aqui é que A


existem dois jogadores, o
MAX e o MIN. O MAX
pretende maximizar o
B C
resultado, e está
interessado no maior
D E F G
valor possível
(idealmente, +∞), e MIN
está interessado no
H I J K L M N O
menor valor possível
(idealmente, −∞). 2 3 5 9 0 1 7 5
Resolução de problemas
Minimax

Nós então propagamos os valores, de baixo A 3


para cima (a partir de quem fará a primeira
jogada). MAX escolhe os maiores valores na
sua vez, MIN escolhe os menores valores.
B 3 C 1

Admite-se, portanto, que


D 3 E 9 F 1 G 7
ambos os jogadores jogam
de forma ótima. Assim, ele
responde: se o adversário
der o seu melhor, qual
H I J K L M N O
jogada devo fazer para 2 3 5 9 0 1 7 5
minimizar seus ganhos?
Resolução de problemas
Poda alfa-beta

O algoritmo Minimax funciona bem para


jogos nos quais é possível traça toda a
árvore de busca (por exemplo, no jogo da
velha, em que temos menos de 9! =
362880 terminais, um valor
computacionalmente viável.

Porém, em jogos como o xadrez, a árvore


de busca tem mais de 1040 nós, e é
impossível percorrê-la por inteiro. Mas
existem formas de eliminarmos partes
grandes dessa árvore.
Resolução de problemas
Poda alfa-beta

Na poda alfa-beta, olhamos para cada A


ramificação e determinamos valores
máximos e mínimos em tempo real,
eliminando ramificações quando
B C
percebemos que continuar não é mais
necessário.
D E F G

H I J K L M N O

2 3 5 9 0 1 7 5
Resolução de problemas
Poda alfa-beta

Aqui, MIN irá escolher o menor valor, e A [−∞, +∞]


por isso ele certamente vai escolher um
valor que é no máximo 3. O outro ramo
da árvore possui 5, logo é inútil explorar
B [−∞, 3] C
este ramo, e ele pode ser podado.

D 3 E [5, +∞] F G

H I J K L M N O

2 3 5 9 0 1 7 5
Resolução de problemas
Poda alfa-beta

MIN irá escolher o menor A [3, +∞]


valor, e por isso ele
certamente vai escolher
um valor que é no máximo
B [−∞, 3] C [−∞, 1]

1.

D 3 E [5, +∞] F 1 G
Porém, isso já nos diz que
MAX irá escolher entre
um valor que é no máximo
H I J K L M N O
3, e um valor que é no
máximo 1, e por isso esse 2 3 5 9 0 1 7 5
ramo pode ser podado.
Resolução de problemas
Algoritmos de busca local

Até agora, lidamos com situações nas quais o


caminho até um objetivo é importante, pois ele
indica como se chegar no estado final. Porém,
existem problemas (denominados de busca local)
nos quais apenas o estado final interessa.

Esse é o caso de problemas como o problema das


8 rainhas (em que 8 rainhas devem ser dispostas
em um tabuleiro de xadrez sem que uma possa
atacar a outra) ou situações do mundo real,
como projeto de circuitos eletrônicos ou
escalonamento de jornadas de trabalho.
Resolução de problemas
Função objetivo

Aqui, passamos a trabalhar com o espaço de estados


como um contínuo, e não mantemos uma árvore de
busca com os estados já percorridos.

Há uma função objetivo, que devolve um valor numérico


para cada estado. Nesses problemas, a meta é minimizar
(caso essa função se traduza em uma características
indesejada) ou maximizar (caso essa função se traduza
em uma característica desejada) a função objetivo.

Essa função também pode ser ilustrada em um gráfico. Como a função se assemelha a uma cadeia montanhosa,
termos geológicos são frequentes na descrição e análise de algoritmos de busca local.
Resolução de problemas
Subida da encosta, reinício aleatório e feixe local

O algoritmo de subida de encosta simplesmente procura pelo próximo estado cuja função objetivo é maior (ou
menor, e nesse caso é chamado de descida), e para quando o estado atual não leva a nenhuma melhoria em estados
futuros. Para a escolha do próximo estado, podemos sorteá-lo ou escolher o primeiro encontrado. É um algoritmo
extremamente simples (em termos de funcionamento e memória), mas que pode parar em um máximo local, em
uma cordilheira ou em um platô.

Uma solução para o problema é realizar diversas buscas de


subidas de encostas, a partir do estado inicial, de forma
aleatória. Assim, é provável que, após um certo número de
tentativas, uma solução seja encontrado porque o caminho que
leva à solução foi obtida naquela tentativa. Outra possibilidade
é manter alguns estados na memória, e usar essa informação
para decidir sobre onde concentrar esforços.
Resolução de problemas
Têmpera simulada

Para entender a têmpera simulada, vamos Mínimo local

imaginar uma situação em que devemos descer a


encosta (e não subir). Imagine que joguemos uma
bolinha de ping pong na superfície, e esperemos
que ela role. Ela provavelmente chega em um
mínimo local.
Agitação
(aleatoriedade)
Porém, podemos agitar a superfície, de forma
moderada: o suficiente para ela pular e ir em
direção a um mínimo global, mas não muito forte
de forma que ela escape completamente da região
de mínimo global.
Mínimo global
Resolução de problemas
Têmpera simulada

A solução da têmpera simulada é começar o


algoritmo com alto grau de aleatoriedade (ou
seja, permitindo movimentos menos precisos e
com possibilidade de irem na direção contrária),
mas prossegue para movimentos cada vez menos
aleatórios.

Essa mudança é também referida muitas vezes


como o declínio de temperatura, que é máxima
no começo do algoritmo e chega à zero no final.
Resolução de problemas
Algoritmos genéticos

Até agora, geramos um estado sucessor modificando o estado que possuímos atualmente. Porém, algoritmos
genéticos propõe fazê-lo combinando dois estados. O algoritmo começa com um conjunto de estados iniciais
chamado de população. Os estados são armazenadas geralmente como uma cadeia de caracteres.

Então executa-se uma função de adaptação nos estados, que dá valores maiores para estados mais adequados.
Resolução de problemas
Algoritmos genéticos

Em seguida, esses estados são combinados entre si (ou “cruzados”, como na reprodução sexuada) na razão
pertinente às suas funções de adaptação (estados com maior resultado na função “cruzam” mais vezes). Isso resulta
em estados filhos, produzidos pela concatenação de trechos dos estados pais. Pode-se ainda adicionar uma pequena
probabilidade de mutação aleatória na cadeia de caracteres resultante.
Sistemas baseados em conhecimento
Objetivos

Humanos possuem conhecimentos sobre o mundo (e sobre áreas específicas), e resolvem problemas a partir desses
conhecimentos.

Nas aplicações de Sistemas baseados em conhecimento, o objetivo é imitar a capacidade dos humanos de possuir
conhecimento e resolver problemas a partir deles.

Assim, um primeiro passo é criar formas de tornar o computador capaz de armazenar e interpretar esse
conhecimento, e posteriormente desenvolver algoritmos capazes de usá-lo para resolver problemas.
Sistemas baseados em conhecimento
Lógica

Decisões são tomadas a partir de uma base de conhecimento, que contém sentenças. Sentenças são escritas em
uma linguagem de representação do conhecimento, e cada sentença representa uma asserção sobre o mundo que
pode ser verdadeira ou falsa. Devem haver métodos que permitem inserir sentenças na base de conhecimentos, e
métodos para consultar a validade de sentenças.

Base de conhecimento
Sentença Valor-verdade
Sentença Valor-verdade
Sentença Valor-verdade
Sentença Valor-verdade

Inserção Consulta
Sistemas baseados em conhecimento
Lógica

A consequência lógica indica que se uma sentença é verdadeira, a próxima sentença também é verdadeira. É
denotada por:
𝑎⊨𝑏
Assim, em qualquer situação na qual 𝑎 seja verdadeira, 𝑏 também será.

𝑥=0 Valor-verdade ⊨ 𝑥𝑦 = 0 Valor-verdade

Caso V, permite concluir que


Sistemas baseados em conhecimento
Lógica

Sentenças lógicas são então associadas a aspectos do mundo real e, através da semântica, criamos uma ponte
entre as operações que ocorrem na representação lógica e informações do mundo real.

Representação Sentenças Sentenças

Semântica
Semântica

Aspectos Aspectos
Mundo do mundo do mundo
real real
Sistemas baseados em conhecimento
Lógica proposicional

Na lógica proposicional, toda asserção sobre o mundo é avaliada como uma proposição, que pode ser verdadeira
ou falsa. A proposição é a menor unidade permitida, e ela é representada por um símbolo. Exemplos de
proposições podem ser:

O dia hoje está ensolarado. Valor-verdade 𝑎

Amanhã irá chover. Valor-verdade 𝑏

Hoje faz calor. Valor-verdade 𝑐

Hoje venta. Valor-verdade 𝑑

Amanhã estará ensolarado. Valor-verdade 𝑒

Amanhã fará calor. Valor-verdade 𝑓

Amanhã estará nublado. Valor-verdade 𝑔


Sistemas baseados em conhecimento
Lógica proposicional

Proposições podem ser combinadas para formar outras proposições ou para formar regras usando operadores.

Operador Símbolo Função


Negação ¬ Inverte o valor-verdade de uma proposição.
Devolverá verdadeiro se ambas as proposições forem
E ⋀
verdadeiras.
Devolverá verdadeiro se pelo menos uma das proposições for
Ou ⋁
verdadeira.
Indica que a proposição do lado direito do operador será
Implica →
verdadeira se a proposição do lado esquerdo for verdadeira.
Indica que a proposição do lado direito só pode ser
Se e somente se ↔ verdadeira caso a proposição do lado esquerdo seja
verdadeira (e vice-versa, por consequência).
Sistemas baseados em conhecimento
Lógica proposicional

Assim, transformarmos regras pertinentes ao mundo real em sentenças lógicas.

“Se o dia está ensolarado e hoje venta, então amanhã irá chover.”

𝑎⋀ 𝑑→𝑏

“Se amanhã irá chover, então amanhã estará nublado.”


𝑏→𝑔
Sistemas baseados em conhecimento
Lógica proposicional

Consideramos a seguinte situação:

“Se o time joga bem, ele ganha campeonato. Se o time não joga bem, o técnico é culpado. Se o time ganha o
campeonato, os torcedores ficam contentes. Os torcedores não estão contentes. O técnico é culpado?”

Podemos transformá-la em lógica Isso produz uma base de conhecimento com:


proposicional fazendo: 𝑅1 : 𝑝 → 𝑞
R 2 : ¬𝑝 → 𝑟
𝑝: o time joga bem. R3: 𝑞 → 𝑠
𝑞: ele ganha o campeonato. R 4 : ¬𝑠
𝑟: o técnico é culpado. E queremos checar se a seguinte cláusula é verdadeira:
𝑠: os torcedores ficam contentes. 𝑄1 : 𝑟
Sistemas baseados em conhecimento
Prova por tabela-verdade
p q r s
As regras de nossa base de conhecimento são
F F F F
verdadeiras e, portanto, elas têm valor-verdade 𝑉. F F F V

Evidentemente, a conjunção de todas as regras F F V F


F F V V
(𝑅1 ⋀ 𝑅2 ⋀ 𝑅3 ⋀ 𝑅4 ) também deve ser verdadeira. F V F F
F V F V
F V V F
Nossa base de conhecimento possui 4 literais e, F V V V
portanto, ela pode estar em 24 = 16 mundos V F F F
V F F V
diferentes, que cobrem cada possível combinação
V F V F
de valores-verdade para os literais. V F V V
V V F F
2 × 2 × 2 × 2 = 16 V V F V
V V V F
𝑝 𝑞 𝑟 𝑠 V V V V
Sistemas baseados em conhecimento
Prova por tabela-verdade
p q r s 𝒑→𝒒 ¬𝒑 → 𝒓 𝒒→𝒔 ¬𝒔 BC
Mas em quantos desses mundos a nossa base de
F F F F V F V V F
conhecimento é verdadeira? Para isso, nós fazemos a F F F V V F V F F

tabela-verdade para todos os mundos, e checamos F F V F V V V V V


F F V V V V V F F
em quais deles ela é verdadeira. F V F F V F F V F
F V F V V F V F F
F V V F V V F V F
Nesse caso, encontramos somente um. E, nele, 𝑟 vale F V V V V V V F F
V. Logo, 𝑄1 pode ser derivada a partir de nossa base V F F F F V V V F
V F F V F V V F F
de conhecimento, e o técnico é culpado.
V F V F F V V V F
V F V V F V V F F
V V F F V V F V F
Porém, esse é um processo muito pouco eficiente, já
V V F V V V V F F
que envolve checar todos os cenários possíveis, e isso V V V F V V F V F
cresce de forma exponencial com novos literais. V V V V V V V F F
Sistemas baseados em conhecimento
Prova por resolução

Sabemos que a base de conhecimento é verdadeira, e queremos


testar se uma sentença 𝑎 é verdadeira. Em outras palavras, se ela é
¬𝑝 ∨ 𝑞 𝑝∨𝑟 ¬𝑞 ∨ 𝑠 ¬𝑠 ¬𝑟
ou não compatível com a base de conhecimento ou seja, queremos
avaliar o resultado de:
𝐵𝐶 ⋀ ¬𝑎
Fazemos isso passando todas as fórmulas da base de dados para a
forma normal conjuntiva (FNC). Na FNC, toda sentença é escrita
como uma disjunção de conjunções, e as negações sempre ocorrem
em literais. Toda sentença pode ser passada para a FNC, e há
algoritmos para isso. Também negamos a sentença que queremos
testar.
Sistemas baseados em conhecimento
Prova por resolução

Então, unimos cada par de regras que contenha literais


complementares. Eliminamos os literais complementares da
¬𝑝 ∨ 𝑞 𝑝∨𝑟 ¬𝑞 ∨ 𝑠 ¬𝑠 ¬𝑟
sentença resultante e, caos ela não esteja na base de conhecimento,
a adicionamos.
𝑞∨𝑟

Repetimos esse processo até que uma das duas coisas ocorra:
𝑟∨𝑠
▪ Se encontrarmos uma cláusula vazia, então a sentença original
é compatível com a base de conhecimento. 𝑟 ∨ ¬𝑟

▪ Se não encontrarmos uma cláusula vazia e a regra não pode cláusula vazia
mais ser aplicada para derivar nossas cláusulas, então a
sentença original não é compatível com a base de conhecimento.
Sistemas baseados em conhecimento
Lógica de predicados

Visando combinar as propriedades da lógica proposicional e as facilidades de se trabalhar com uma linguagem
mais próxima da linguagem natural, a lógica de predicados usa outros elementos no lugar das proposições. Com a
lógica de predicados, temos que:

▪ Coisas são expressas como termos, e asserções sobre as coisas são expressas com predicados e funções.
▪ A mesma coisa (termos ou constantes) pode ser denotada pelo mesmo símbolo em todos os lugares.
▪ Coisas diferentes mas relacionadas podem ser referidas por variáveis.

Além disso, os quantificadores existencial (∃) e universal (∀) podem ser usados para indicar que determina
sentença vale para algum elemento, ou para todos.
Sistemas baseados em conhecimento
Lógica de predicados
Podemos representar as seguintes informações em lógica de João é um rei. João é rei de Portugal.
predicados, e usá-las para compor uma base de conhecimento. Rei(João) Reina(João, Portugal)

Todo rei ambicioso é perverso. Ricardo é um rei. João é rei da Espanha.


∀r Rei r ⋀ Ambicioso r → Perverso(r) Rei(Ricardo) Reina(João, Espanha)

Nações vizinhas são amigas. Portugal é uma nação. João não é perverso.
∀m, n, m ≠ n Nação m ⋀ Nação n ⋀ Vizinhas m, n → Nação(Portugal) ¬Perverso(João)
Amigas(m, n)
Espanha é uma nação. Ricardo é ambicioso.
Nação(Espanha) Ambicioso(Ricardo)
Todas as nações governadas por João são vizinhas.
∀m, n, m ≠ n Nação m ⋀ Nação n Reina João, m ⋀ Reina João, n → Vizinhas (m, n)
Sistemas baseados em conhecimento
Redução à inferência proposicional
Na nossa listagem, usamos diversos termos, tais como:
João
Ricardo
Portugal
Espanha
Qualquer frase que use quantificadores universais pode tê-los substituídos por esses termos. Assim, poderíamos
formar as seguintes combinações, sendo que todas obrigatoriamente possuem valor-verdade 𝑉.
Rei João ⋀ Ambicioso João → Perverso(João)
Rei Espanha ⋀ Ambicioso Espanha → Perverso(Espanha)
Rei Portugal ⋀ Ambicioso Portugal → Perverso(Portugal)
Rei Ricardo ⋀ Ambicioso Ricardo → Perverso(Ricardo)
Em primeiro lugar, note que todas essas frases possuem valor-verdade 𝑉, mesmo que elas levem para implicações
como 𝐹 → 𝐹, uma vez que isso é permitido na lógica proposicional.
Sistemas baseados em conhecimento
Redução à inferência proposicional

Em segundo lugar, note que podemos simplesmente substituir cada E, assim, poderíamos operar nesse sistema
predicado por uma proposição. Assim, teríamos algo como: com qualquer algoritmo usado na lógica
𝑎⋀𝑏 → 𝑐 proposicional. Por exemplo, para checar se
𝑑⋀𝑒 → 𝑓 João não é ambicioso, poderíamos fazer:
𝑔⋀ℎ → 𝑖
a b c 𝒂 ⋀𝒃 ¬𝒄 𝒂 ⋀𝒃 → 𝒄 KB
𝑗⋀𝑘 → 𝑙
F F F F V V F
F F V F F V F
Além dessas regras (à exaustão, feitas com cada possível F V F F V V F
F V V F F V F
combinação de termos), nossa base de conhecimento também teria: V F F F V V V
Rei João : 𝑎 V F V F F V F
V V F V V F F
¬Perverso João : ¬𝑐
V V V V F V F
Rei(Ricardo): j
Sistemas baseados em conhecimento
Unificação e substituição

Considere agora:
∀r Rei r ⋀ Ambicioso r → Perverso(r)
Rei(Ricardo)
Ambicioso(Ricardo)

A conclusão Perverso(Ricardo) parece óbvia para um ser humano. Um computador trabalha checando se
há alguma substituição 𝜃 que torne cada um dos conjuntos da premissa da implicação idêntica às
sentenças que já estão na base de conhecimento. Nesse caso, poderemos afirmar a conclusão da implicação
depois da aplicação de 𝜃 = {𝑟Τ𝑅𝑖𝑐𝑎𝑟𝑑𝑜}.

Substituições são soluções do que chamamos de problemas de unificação, e há algoritmos que verificam se existem
substituições que tornam a unificação possível.
Sistemas baseados em conhecimento
Encadeamento para frente
No encadeamento para frente, procuramos pelas regras até
encontrarmos uma cujo antecedente é verdadeiro. Nesse momento, ela Se antecedente então consequente
então conclui o consequente. Repetimos isso até que o objetivo seja
atingido. Amigas(Portugal, Espanha)

Aqui, testamos “Portugal e Espanha são inimigos?”.


Perverso(Ricardo) Vizinhas(Portugal, Espanha)

Nação(Espanha)

Rei(Ricardo) Rei(João) Nação(Portugal)

Ambicioso(Ricardo) Reina(João, Espanha) Reina(João, Portugal)


Sistemas baseados em conhecimento
Encadeamento para trás

No encadeamento para trás, procuramos por uma cláusula consequente


que satisfaça um objetivo que queremos verificar. Achando, verificamos Se antecedente então consequente
se suas premissas são satisfeitas pelo mesmo raciocínio.
Amigas(Portugal, Espanha)
Aqui, testamos “Portugal e Espanha são amigas?”.

Vizinhas(Portugal, Espanha)

... E tanto encadeamento para Nação(Espanha)


frente quanto para trás podem
Nação(Portugal)
ser usados em lógica
proposicional. Reina(João, Espanha) Reina(João, Portugal)
Sistemas baseados em conhecimento
Encadeamento para trás com retrocesso
Quando não ocorre unificação entre o objetivo sendo provado e o consequente das regras ou fatos, podemos
retroceder e aplicar uma regra diferente. Por exemplo, considere a base de conhecimento, na qual fazemos a consulta
Investimento(z):
ValorInadequado x → Investimento Poupança
GanhoAnual y ⋀ Maior(y, 36.000) ⋀ ValorAdequado x → Investimento Ações Investimento(z)
Quantia x ⋀ Maior x, 20.000 → ValorAdequado(x)
Quantia x ⋀ ¬Maior x, 20.000 → ValorInadequado(x) {zΤAções}
{zΤPoupança}
GanhoAnual 50.000
Quantia(22.000) Investimento(Ações)
Investimento(Poupança)
GanhoAnual(50.000)
Maior(50.000,20.000)
ValorInadequado(22.000)
ValorAdequado(22.000)
Falso! Retrocesso.
Quantia(22.000) Maior(22.000, 20.000)
Quantia(22.000) ¬Maior(22.000, 20.000)
Sistemas baseados em conhecimento
Prolog

Prolog (PROgramming in LOgic) é uma linguagem de programação baseada no cálculo de predicado de primeira
ordem, sendo apropriada à processamento simbólico e resolução de problemas que envolvam objetos e relação entre
objetos.

Um programa em Prolog consiste em


fatos, regras e consultas.

Há um exemplo em https://swish.swi-
prolog.org/p/Exemplo%20na%C3%A7
%C3%B5es.pl.
Sistemas baseados em conhecimento
Representação do conhecimento e engenharia ontológica

Até agora, mostramos técnicas de representação de conhecimento que funcionam bem para modelos em miniatura,
com poucos dados. Porém, o uso dessas técnicas para modelos grandes (como dirigir um carro no trânsito
movimentado) é um tanto problemático, e uma abordagem mais genérica é desejada.
Sistemas baseados em conhecimento
Categorias e objetos

Ao passo em que a interação com o mundo ocorre ao


nível de objetos individuais, grande parte do 1 Bola de basquete 1
Bolas de
raciocínio sobre ele ocorre no nível de categorias. basquete
2 Bola de basquete 2
Categorias e subcategorias servem para organizar e
Bolas
simplificar a base de conhecimento por herança, uma 3 Bola de basquete 3
vez que elementos pertencentes à categorias inferiores
herdam propriedades de categorias superiores. Bolas de baseball
1 2 3 4
Bolas de futebol
americano
1 2
Sistemas baseados em conhecimento
Categorias e objetos

Um objeto é um elemento de uma categoria.


1 Bola de basquete 1
BolaDeBasquete2 ∈ BolasDeBasquete Bolas de
basquete
2 Bola de basquete 2
Uma categoria é uma subclasse de outra categoria.
Bolas
BolasDeBasquete ⊂ Bolas 3 Bola de basquete 3

Bolas de baseball
Todos os elementos de uma categoria têm certas propriedades. 1 2 3 4
Bolas de futebol
x ∈ BolasDeBasquete → Esférica(x)
americano
1 2

Os elementos de uma categoria podem ser reconhecidos por algumas propriedades.


Laranja x ⋀ Redonda(x) ⋀ Diâmetro x = 23,5 cm ⋀ x ∈ Bolas → x ∈ BolasDeBasquete
Sistemas baseados em conhecimento
Categorias e objetos

Podemos ainda expressar relações entre categorias.

Categorias disjuntas indicam que um elemento não pode fazer


parte de mais de uma delas simultaneamente.
Disjuntos(Animais, Vegetais)

Aqui, um elemento nunca pode ser um animal e um vegetal ao


mesmo tempo. Porém, podem haver outras subcategorias, e Animais Vegetais
não há restrições sobre enquadrar mais de uma dessas outras
subcategorias.
Sistemas baseados em conhecimento
Categorias e objetos

Em uma decomposição exaustiva, cada elemento da categoria está presente em pelo menos uma das subclasses.
DecomposiçãoExaustiva( Estadunidenses, Mexicanos, Canadenses , NorteAmericanos)
NorteAmericanos

Aqui, todo membro do grupo deve possuir ao menos uma


dessas categorias, não podendo não estar nenhuma
categoria nem estar em alguma categoria que vá além
dessas.

Porém, nada impede que um membro esteja em mais de


uma categoria.
Sistemas baseados em conhecimento
Categorias e objetos

Em uma partição, cada elemento da categoria está presente em somente uma das subclasses.
Partição( Machos, Fêmeas , Animais)
Animais
Aqui, todo membro do grupo deve estar em uma e
somente uma das categorias listadas.

Nenhum membro pode estar em mais de uma categoria,


nenhum membro pode estar em nenhuma categoria, e
nenhum membro pode estar em outra categoria além das
listadas.
Machos Fêmeas
Sistemas baseados em conhecimento
Composição física

Objetos podem fazer parte de outros objetos, e para isso


podemos usar relações de composição física. Por
exemplo:

ParteDe AméricaDoSul, Terra


Parte de Parte de
ParteDe Brasil, AméricaDoSul

A relação é transitiva e reflexiva, ou seja:


Terra América Brasil
do Sul
ParteDe x, y ⋀ ParteDe(y, z) → ParteDe(x, z)
Sistemas baseados em conhecimento
Objetos compostos e grupos

Usando a relação ParteDe, podemos definir objetos compostos


por outros e restritos por relações.
Bípede
𝐵í𝑝𝑒𝑑𝑒 𝑎 → ∃ p1 , p2 , c Perna p1 ⋀ Perna(p2 )⋀ Corpo(c) ⋀

Parte de
ParteDe p1 , a ⋀ ParteDe(p2 a) ⋀ ParteDe(c, a) ⋀
Presa p2 , b , ⋀ Presa p2 , b ⋀
p1 ≠ p2 ⋀ [ ∀ p3 Perna p3 ⋀ ParteDe p3 , a → p3 = p1 ⋁ p3 = p2

Corpo
Podemos usar outra relação, GrupoDe, para GrupoDe
descrever agrupamentos de objetos.
GrupoDe({Maçã1 , Maçã2 , Maçã3 })
1 2 3

Perna Perna
Sistemas baseados em conhecimento
Medições

Objetos também possuem propriedades que são medições, como comprimento, peso ou
custo. Essas propriedades são representadas com:
Diâmetro BolaDeBasquete = Centímetros(23,5)

E conversão entre medidas pode ser feita com:


23,5 cm
Centímetros 2,54 × d = Polegadas(d)

Outras medições não são numéricas, mas podem ser descritas em termos de comparações.

e1 ∈ Exercícios ⋀ e2 ∈ Exercícios ⋀ Escreveu Guidorizzi, e1 ⋀ Escreveu Stewart, e2 →


Dificuldade e1 > Dificuldade(e2 )
Sistemas baseados em conhecimento
Materiais

Objetos que desafiam a individualização são chamados de materiais. Por exemplo, partir
uma manteiga ao meio retém as propriedades da manteiga, de forma que um pedaço de
manteiga (de qualquer tamanho) continua sendo uma manteiga, e não há um “número de
objetos manteiga” definido.
Manteiga

Há propriedades intrínsecas, que são mantidas após a divisão, tais como teor de gordura,
cor, ponto de fusão, densidade, etc. E há propriedades extrínsecas, como peso, que não são
mantidas na divisão. Uma categoria de objetos com apenas propriedades intrínsecas é um
material. Pacote de
manteiga
Sistemas baseados em conhecimento
Cálculo de eventos

O cálculo de eventos é um formalismo alternativo que visa permitir com que as asserções sobre o mundo possam
mudar de maneira temporal. Assim, definimos um fluente como uma condição de muda com o tempo, e cuja
mudança pode ser desencadeada por eventos. Usamos alguns predicados para indicar tais mudanças.

T(f,t) Fluente 𝑓 é verdadeiro no instante 𝑡.

Acontece(e,i) Evento 𝑒 acontece no intervalo de tempo 𝑖 .

Inicia(e,t,f) Evento 𝑒 faz com que o fluente 𝑓 passe a valer no tempo 𝑡.

Termina(e,f,t) Evento 𝑒 faz com que o fluente 𝑓 deixe de valer no tempo 𝑡.

Cortado (f,i) Fluente 𝑓 deixa de ser verdadeiro em algum ponto do intervalo 𝑖 .

Restaurado (f,i) Fluente 𝑓 torna-se verdadeiro em algum momento durante o intervalo 𝑖 .


Sistemas baseados em conhecimento
Redes semânticas

Redes semânticas oferecem recursos Pelo


gráficos para visualizar uma base de Mamífero
Sofá
conhecimento e algoritmos eficientes
para dedução de propriedades de um
Patas Animal
objeto, de acordo com sua pertinência a Gato 4
uma categoria.
Patê
Ave
Assim, pode-se fazer a consulta de Patas
3 Izzy
propriedades de objetos e de relações
Pássaro
entre objetos.

Marrom
Sistemas baseados em conhecimento
Conhecimento incerto

Nem todos os domínios possuem fatos que podem ser expressados na forma de implicações lógicas certas. Por
exemplo, em um sistema de diagnósticos médicos, uma implicação como:

𝐷𝑜𝑟𝐷𝑒𝐷𝑒𝑛𝑡𝑒 → 𝐶á𝑟𝑖𝑒

É falsa, uma vez que dor de dente pode ser causada por uma lista de condições quase ilimitada (gengivite,
abcessos, dente do siso, etc). Inverter a implicação, obtendo:

𝐶á𝑟𝑖𝑒 → 𝐷𝑜𝑟𝐷𝑒𝐷𝑒𝑛𝑡𝑒

Também produz uma asserção falsa, uma vez que nem toda cárie provoca dor de dente. Essas e outras situações
demonstram a necessidade de lidarmos com conhecimento incerto.
Sistemas baseados em conhecimento
Teoria da probabilidade

Isso é feito usando-se a teoria da probabilidade. Ao passo em que um agente lógico acredita que cada sentença seja
verdadeira, falsa ou não a conhece, um agente probabilístico tem um grau numérico entre 0 (sentenças falsas) e 1
(sentenças verdadeiras).

Um modelo de probabilidade totalmente 𝑃 1 = 1ൗ6

especificado associa uma probabilidade numérica


𝑃 2 = 1ൗ6
𝑃(𝜔) para cada mundo possível. A soma de
6 1
todos os mundos é 1. 𝑃 3 = 1ൗ6 𝑃 𝑑1 = 𝑑2 = 36 = 6

30 5
𝑃 4 = 1ൗ6 𝑃 𝑑1 ≠ 𝑑2 =
36
=
6
0 ≤ 𝑃 𝜔 ≤ 1, para cada 𝜔.
𝑃 5 = 1ൗ6
෍𝑃 𝜔 =1
𝜔∈Ω
𝑃 6 = 1ൗ6
Sistemas baseados em conhecimento
Teoria da probabilidade

Alguns eventos ocorrem de forma condicional, e por isso a probabilidade muda conforme as afirmações que
sabemos previamente.

5 1
𝑃 𝑠𝑜𝑚𝑎 = 6 = 𝑃 𝑠𝑜𝑚𝑎 = 6 | 𝑑1 = 1 =
36 6
1
31 5
𝑃 𝑠𝑜𝑚𝑎 ≠ 6 = 𝑃 𝑠𝑜𝑚𝑎 ≠ 6 | 𝑑1 = 1 =
36 6

Da mesma forma, afirmações como “a probabilidade de um paciente ter cárie sendo um adolescente e não tendo
dor de dente é de 10%” podem ser escritas da forma:

P Cárie ¬DorDeDente ⋀ Adolescente) = 0,1


Sistemas baseados em conhecimento
Regra de Bayes

A Regra de Bayes nos diz que:

𝑃 𝑎 𝑏) 𝑃 𝑏
𝑃 𝑏 𝑎) =
𝑃(𝑎)
Isso pode ser transformado em:

𝑃 𝑒𝑓𝑒𝑖𝑡𝑜 𝑐𝑎𝑢𝑠𝑎) 𝑃 𝑐𝑎𝑢𝑠𝑎


𝑃 𝑐𝑎𝑢𝑠𝑎 𝑒𝑓𝑒𝑖𝑡𝑜) =
𝑃(𝑒𝑓𝑒𝑖𝑡𝑜)

E isso é extremamente útil em inteligência artificial.


Sistemas baseados em conhecimento
Regra de Bayes

Por exemplo, considere que queremos saber a probabilidade de um paciente que se apresenta com rigidez no
pescoço ter meningite, e sabemos que:

Meningite causa rigidez no pescoço 70% do tempo.


1 em cada 50.000 pacientes tem meningite.
A probabilidade de um paciente qualquer ter rigidez no pescoço é de 1%.

Então fazemos:

𝑃 𝑠 𝑚) 𝑃 𝑚 0,7 × 0,00002
𝑃 𝑚 𝑠) = = = 0,0014 = 0,14%
𝑃(𝑠) 0,01
Portanto, apesar de dor no pescoço ser um sintoma muito comum em pacientes com meningite, há apenas uma
chance de 0,14% que o paciente que se apresentou com dor no pescoço possua meningite.
Sistemas baseados em conhecimento
Redes Bayesianas
Irrigador
Chuva
Chuva V F
Sim Não
F 0,4 0,6
0,2 0,8
V 0,01 0,99 Irrigador Chuva

Sabemos que há 20% de chance de estar chovendo em


um momento qualquer.

Grama molhada
A chuva impacta diretamente no funcionamento do Grama molhada
irrigador: este funciona 40% do tempo sem chuva, Irrigador Chuva V F
mas funciona em apenas 1% do tempo com chuva. F F 0 1
F V 0,8 0,2

Por sua vez, tanto a chuva quanto o irrigador V F 0,9 0,1


V V 0,99 0,01
implicam na chance da grama estar molhada.
Sistemas baseados em conhecimento
Inferência exata

Assim, podemos checar a probabilidade de eventos dada condições prévias. Por exemplo, a probabilidade de estar
chovendo uma vez que a grama está molhada é dada por:

𝑃 𝐺 = 𝑉, 𝑅 = 𝑉 σ𝑥∈{𝑉,𝐹} 𝑃(𝐺 = 𝑉, 𝑆 = 𝑥, 𝑅 = 𝑉)
𝑃 𝑅 = 𝑉 𝐺 = 𝑉) = =
𝑃(𝐺 = 𝑉) σ𝑥,𝑦∈{𝑇,𝐹} 𝑃(𝐺 = 𝑇, 𝑆 = 𝑥, 𝑅 = 𝑦)

𝑃𝑉𝑉𝑉 + 𝑃𝑉𝐹𝑉
𝑃 𝑅 = 𝑉, 𝐺 = 𝑉) =
𝑃𝑉𝑉𝑉 + 𝑃𝑉𝑉𝐹 + 𝑃𝑉𝐹𝑉 + 𝑃𝑇𝐹𝐹
Sistemas baseados em conhecimento
Inferência exata

E então calculamos cada probabilidade usando os valores da rede Bayesiana. Chuva


𝑃𝑉𝑉𝑉 = 0,2 × 0,01 × 0,99 = 0,00198 Sim Não
𝑃𝑉𝐹𝑉 = 0,2 × 0,99 × 0,8 = 0,1584 0,2 0,8

𝑃𝑉𝑉𝐹 = 0,8 × 0,4 × 0,9 = 0,288 Irrigador


𝑃𝐹𝐹𝐹 = 0,8 × 0,6 × 0 = 0 Chuva V F
F 0,4 0,6

E aplicamos na expressão obtida: V 0,01 0,99

𝑃𝑉𝑉𝑉 + 𝑃𝑉𝐹𝑉 0,00198 + 0,1584 Grama molhada


=
𝑃𝑉𝑉𝑉 + 𝑃𝑉𝑉𝐹 + 𝑃𝑉𝐹𝑉 + 𝑃𝑇𝐹𝐹 0,00198 + 0,288 + 0,1584 + 0 Irrigador Chuva V F

𝑃𝑉𝑉𝑉 + 𝑃𝑉𝐹𝑉 F F 0 1
≈ 0,3576 ≈ 35,76%
𝑃𝑉𝑉𝑉 + 𝑃𝑉𝑉𝐹 + 𝑃𝑉𝐹𝑉 + 𝑃𝑇𝐹𝐹 F V 0,8 0,2
V F 0,9 0,1
Porém, esse método é pouco eficiente para redes complexas.
V V 0,99 0,01
Sistemas baseados em conhecimento
Inferência aproximada

Ao passo em que existem formas de mitigar o problema da ineficiência dentro das soluções de inferência exata
(como eliminação de variáveis ou formação de agrupamentos), outra família de soluções envolve a inferência
aproximada.

Na forma mais simples, a amostragem direta, produzimos uma amostra de cada variável a partir da distribuição
conhecida. Ao produzir 𝑛 mundos possíveis, com 𝑛 suficientemente grande, espera-se que a fração de mundos nos
quais a sentença que queremos testar seja verdadeira se aproxime da probabilidade calculada.

Na amostragem de Gibbs, começamos com um estado arbitrário, e geramos estados próximos amostrando
aleatoriamente um valor para alguma das variáveis. Com isso, o algoritmo vagueia por estados gerados a partir de
outros estados.
Sistemas baseados em conhecimento
Modelos de Markov

Nosso objetivo agora é fazer inferência para processos 10%


dependentes do tempo. 50%

Nos modelos de Markov, assumimos que nosso sistema


Uvas 40%
muda de estado de forma discreta (cabe à definição do
problema definir o intervalo de tempo entre cada passo),
50% 40%
e que a escolha do próximo estado depende apenas do
estado atual. 50% Alface

Aqui, o comportamento de uma criatura se resume a 60%


comer apenas uma vez por dia, e o prato do dia seguinte
é dependente apenas do prato do dia anterior. Queijo
Sistemas baseados em conhecimento
Modelos ocultos de Markov
60% Início 40%
Um caso particular é aquele no qual uma variável
40%
é desconhecida.
70% 60%
Aqui, Bob decide se vai caminhar, fazer compras
Chuva 30% Sol
ou limpar a casa unicamente com base no clima do
dia, que por sua vez depende unicamente do clima
no dia anterior. Atividade Chuva Sol

Caminhar 10% 60%


Bob informa Alice de qual atividade escolheu.
Porém, Alice não tem qualquer informação sobre o Compras 40% 30%

clima do dia. Limpeza 50% 10%


Sistemas baseados em conhecimento
Filtragem

A filtragem consiste em calcular a distribuição posterior depois do estado 𝑛−3 𝑛−2 𝑛−1 𝑛
mais recente usando toda a evidência disponível. Nesse caso, um exemplo é
calcular a probabilidade de estar chovendo hoje, dado o que sabemos até o
momento.

Um algoritmo recursivo para frente é capaz de resolver esse tipo de


problema com bom desempenho.
Sistemas baseados em conhecimento
Previsão

A filtragem consiste em calcular a distribuição posterior sobre o


𝑛−3 𝑛−2 𝑛−1 𝑛 𝑛+1 𝑛+2
estado mais recente usando toda a evidência disponível. Nesse
caso, um exemplo é calcular a probabilidade de chover daqui 2 ? ?
dias, dado o que sabemos até o momento.
Sistemas baseados em conhecimento
Suavização

A suavização consiste em calcular a probabilidade sobre um estado passado


𝑛−3 𝑛−2 𝑛−1 𝑛
usando toda a evidência disponível. Nesse caso, um exemplo é calcular a
probabilidade de ter chovido 2 dias atrás, dado o que sabemos até o
momento.

O algoritmo para frente-para trás é capaz de resolver esse tipo de problema


com bom desempenho.
Sistemas baseados em conhecimento
Explicação mais provável

A explicação mais provável consiste em calcular a sequência de estados que


𝑛−3 𝑛−2 𝑛−1 𝑛
provavelmente gerou certas observações. Nesse caso, um exemplo é calcular
qual a combinação de eventos climáticos mais provável de ter produzido os
padrões que observamos.

O algoritmo de Viterbi é capaz de resolver esse tipo de problema com bom


desempenho.
Sistemas baseados em conhecimento
Tomadas de decisão

Verificamos como agentes lógicos podem tomar decisão a partir da certeza mediante predicados e proposições, porém
encontramos situações nas quais essa certeza é substituída pela probabilidade. Nessas situações, agentes lógicos não
possuem meios para decidir, umas um agente de teoria de decisão é capaz de fazê-lo.

Na teoria da decisão, visamos escolher entre ações com base na conveniência dos resultados esperados.

A função utilidade atribui um único número utilidade para expressar a conveniência de um estado, e a utilidade
esperada combina essa função com a probabilidade de que um estado ocorra, dado um conjunto de evidências.
Sistemas baseados em conhecimento
Tomadas de decisão

Nosso agente precisa escolher entre várias opções (ou loterias), e cada opção leva um estado dentre vários, cada
um com certa probabilidade. Esperamos que nosso agente tome decisões a partir de um critério definido, e que
esse critério seja consistente em todas as decisões tomadas. O resultado de uma decisão pode ser também outra
escolha de decisão.

Preciso Se eu tomar ... pode ocorrer cada ... e portanto a utilidade


escolher a decisão... estado 𝑆𝑖 com esperada da decisão é...
entre... probabilidade 𝑝𝑖 e função
de utilidade 𝐴𝑈𝑖 ...

𝑨𝑺𝟏 𝑨𝑺𝟐 … 𝑨𝑺𝒏


A 𝐴𝑝1 𝐴𝑝2 … 𝐴𝑝𝑛 𝐴𝑈𝐸 = 𝐴𝑈1 𝐴𝑝1 + 𝐴𝑈2 𝐴𝑝2 + ⋯ + 𝐴𝑈𝑛 𝐴𝑝𝑛
𝐴𝑈1 𝐴𝑈2 … 𝐴𝑈𝑛

B …
Sistemas baseados em conhecimento
Axiomas da teoria da utilidade

A consistência do agente é garantida por um conjunto de axiomas da teoria da utilidade, sendo eles:

▪ Ordenabilidade: apenas 𝐴 ≻ 𝐵, 𝐴 ~ 𝐵 e 𝐵 ≺ 𝐴 são possíveis.


▪ Transitividade: 𝐴 ≻ 𝐵 ⋀ 𝐵 ≻ 𝐶 → 𝐴 ≻ 𝐶.
▪ Continuidade: 𝐴 ≻ 𝐵 ≻ 𝐶 → ∃𝑝 𝑝, 𝐴; 1 − 𝑝, 𝐶 ~ 𝐵.
▪ Substitutibilidade: 𝐴 ~ 𝐵 → 𝑃, 𝐴; 1 − 𝑝, 𝐶 ~ [𝑝, 𝐵; 1 − 𝑝, 𝐶].
▪ Monotonicidade: 𝐴 ≻ 𝐵 → (𝑝 > 𝑞 ↔ [𝑝, 𝐴; 1 − 𝑝, 𝐵] ≻ [𝑞, 𝐴; 1 − 𝑞, 𝐵].
▪ Decomponibilidade: as loterias compostas podem ser reduzidas a loterias mais simples com o uso das leis da
probabilidade.

Cada axioma pode ser provado verificando que um agente que o ignore age de maneira irracional.
Sistemas baseados em conhecimento
Função utilidade

Assim, o agente deverá procurar pela loteria que tenha a maior utilidade esperada, que é uma função que mapeia
cada estado em números reais. Estritamente, isso é tudo que podemos dizer, afinal a função de utilidade escolhida
dependerá de quais são as preferências do agente.

Apesar da função utilidade geralmente maximizar ganhos e minimizar perdas, casos particulares podem envolver
regras diferentes que parecem irracionais no senso comum, mas que são racionais por não violarem nenhum dos
axiomas.

Se o agente preza mais por possuir um saldo que seja um milhar primo do que por possuir o maior valor, então
ele irá preferir ganhar R$ 17.0000 do que R$ 20.000.
Sistemas baseados em conhecimento
Função utilidade

Nem sempre a função utilidade funciona de forma linear.

Seu saldo bancário está zerado, então você prefere ganhar R$ 1.000.000 com 100% de chance do que ganhar R$
2.000.000 com 50% de chance. Porém, se você já tem R$ 50.000.000, então a segunda opção é preferível.

Por mais que atribuir valores numéricos para certos eventos (como mortes ou acidentes) pareça macabro e
insensível (afinal, uma vida não parece ter preço), isso é necessário.

Revisar o carro todos os dias reduz para próximo de zero a possibilidade um acidente fatal, mas tem um custo
imenso. Revisar o carro a cada dez anos tem um custo mínimo, mas aumenta muito a possibilidade de um
acidente fatal. Em algum lugar, há um limiar entre o quanto as pessoas estão dispostas a pagar para reduzir as
chances de um acidente fatal.
Sistemas baseados em conhecimento
Redes de decisão

Redes de decisão são uma forma de Clima


Chuva Sol
representar graficamente o processo
0,3 0,7
de funcionamento de um agente de
Clima
decisão.

Previsão Utilidade

Previsão Guarda
Clima Utilidade
chuva
Clima Ensolarado Nublado Chuvoso
Sol Levar 20
Chuva 0,15 0,25 0,6
Guarda-chuva Sol Deixar 100
Sol 0,7 0,2 0,1
Chuva Levar 70
Chuva Deixar 0
Aprendizagem
Motivação

Um agente aprende quando melhora seu desempenho nas tarefas desempenhadas no futuro através de observações
correntes sobre o mundo. Há três razões principais para empregarmos a aprendizagem (em oposição a
simplesmente programarmos o agente para funcionar):

▪ Nem sempre somos capazes de prever todas as situações que um agente pode enfrentar;
▪ Nem sempre somos capazes de antecipar todas as mudanças que a situação pode sofrer ao longo do tempo;
▪ Nem sempre somos capazes de programar uma solução diretamente.

Todos os conceitos que estudamos até agora podem ser melhorados através do aprendizado.
Aprendizagem
Aprendizado supervisionado e conjunto de treinamento/teste

Em diversas situações, agentes devem produzir um valor de saída a partir de um conjunto de valores de entrada
(tipicamente um vetor). Uma forma de criarmos agentes com esse comportamento é através do aprendizado
supervisionado.
Qual a função que melhor mapeia os dados de
Entrada entrada para os dados de saída? Saída

Aqui, os agentes recebem um conjunto de treinamento composto por valores de entrada e valores esperados de
saída, que é usado pelo agente para determinar a função, além de um conjunto de teste, que é usado para testar
a precisão do agente. Técnicas de aprendizado supervisionado são usadas em tarefas de regressão e classificação.

Conjunto de... A entrada serve para... E a saída para...


Treinamento Determinar a melhor função que prevê o comportamento observado.
Comparar com a saída real, e
Teste Produzir a saída com a função obtida.
determinar a precisão do agente.
Aprendizagem
Regressão

Em aprendizado de máquina, regressão é o processo de descobrir a regra (ou função 𝑓) que mapeia um conjunto
de atributos ou variáveis independentes (𝑥1 , 𝑥2 , … 𝑥𝑛 ) para uma variável dependente (𝑦), sendo 𝑦 contínua.

Conjunto de atributos De que forma esses atributos Variável dependente


impactam na variável dependente?
𝑥1 , 𝑥2 , … 𝑥𝑛 𝑦

É importante que a função produzida


funcione bem tanto para classificação
do conjunto de treinamento quanto
do conjunto de teste. Assim, uma
função que tem erros perto de zero
no conjunto de treinamento
provavelmente não é adequada.
Aprendizagem
Regressão

Um exemplo de uso de regressão pode ser para determinar como o preço de um carro (a variável independente, 𝑦)
é afetado por atributos como modelo, cor, quilometragem, potência, presença de câmbio automático, presença de
bancos de couro e número de lugares.

Conjunto de atributos De que forma esses atributos Variável dependente


impactam na variável dependente?
Modelo Preço
Cor
Quilometragem
Potência
Câmbio automático
Bancos de couro
Número de lugares
Aprendizagem
Regressão linear

Aqui, buscamos por uma reta que melhor descreva


o comportamento dos nossos dados. Isso significa,
portanto, que a função que procuramos será da
forma:

𝑦 = 𝑎1 𝑥1 + 𝑎2 𝑥2 + ⋯ + 𝑎𝑛 𝑥𝑛 + 𝑏

Há diversos métodos e algoritmos que minimizam o


erro e produzem uma função. A função obtida pode,
então, ser usada para prever o comportamento de
novos dados.
Aprendizagem
Regressão polinomial

Agora, buscamos por um polinômio de grau 𝑛 que


melhor descreva o comportamento dos dados que
temos. Assim, procuramos por uma função da
forma:

𝑦 = 𝑎1 𝑥 + 𝑎2 𝑥 2 + ⋯ 𝑎𝑛 𝑥 𝑛 + 𝑏
Aprendizagem
Splines de regressão adaptativa multivariada

Splines de regressão adaptativa multivariada (ou MARS) é uma


extensão dos modelos lineares, que automaticamente leva em conta
casos de não linearidades. Assim, a função procurada pode também
envolver trechos com definições especiais.
Aprendizagem
Método de suavização local

O método de suavização local (ou LOESS) procura eliminar o ruído de uma mostra.

Para cada valor de 𝑥, o valor de 𝑓(𝑥) é estimado usando os valores conhecidos em sua vizinhança. Isso é feito
realizando uma regressão linear no qual valores próximos possuem um peso muito maior que valores distantes.
Aprendizagem
Classificação

Classificação é o processo de identificar a qual categoria (dentro de um conjunto de categorias) uma observação
pertence, a partir de um conjunto de variáveis dependentes.

Conjunto de atributos De que forma esses atributos Variável dependente


impactam na variável dependente?
𝑥1 , 𝑥2 , … 𝑥𝑛 𝑦

Assim como na regressão, usamos


conjuntos de teste e treinamento, e
esperamos que a função funcione bem
em ambos os conjuntos.
Aprendizagem
Classificação

Um exemplo de uso de classificação pode ser para determinar se um carro foi ou não vendido nos primeiros 4
meses ao ser colocado à mostra (a variável independente, 𝑦 = {𝑣𝑒𝑛𝑑𝑖𝑑𝑜, 𝑛ã𝑜 𝑣𝑒𝑛𝑑𝑖𝑑𝑜}) é afetado por atributos
como modelo, cor, quilometragem, potência, presença de câmbio automático, presença de bancos de couro e
número de lugares.

Conjunto de atributos De que forma esses atributos Variável dependente


impactam na variável dependente?
Modelo Vendido / Não vendido
Cor
Quilometragem
Potência
Câmbio automático
Bancos de couro
Número de lugares
Aprendizagem
Classificação logística

O modelo logístico usa uma função para determinar como


a probabilidade de que uma observação pertença à uma
dada classe muda conforme as variáveis independentes.
Na forma mais simples, usamos a técnica com uma
variável depende binária (como morto/vivo,
falha/sucesso, vitória/derrota, etc.).

Aqui, a variável dependente pode ter apenas dois valores


(ninguém “morre pela metade”, por exemplo), e o objetivo
do algoritmo é determinar como a probabilidade de ter
cada resultado na variável dependente varia conforme a
variável independente.
Aprendizagem
K-ésimo vizinho mais próximo

Nessa técnica (também chamada de K-NN), a fase de


treinamento se resume em distribuir cada observação é
distribuída em um espaço, representando sua posição
na forma de um vetor de 𝑛 variáveis.

Quando surge uma observação a ser classificada, é


computada a categoria dos 𝑘 vizinhos mais próximos (a
distância entre a observação é cada vizinho é
computada usando uma métrica determinada) e a
classe mais frequente domina a previsão para a
categoria na qual a observação fornecida se encaixa.
Aprendizagem
Máquina de vetores de suporte

Nas máquinas de vetores de suporte (SVM), os


pontos são distribuídos em um espaço, e o
sistema deve traçar um hiperplano (uma linha
de separação) capaz de dividir os pontos em
duas categorias.

Esse hiperplano é então usado para futuras


classificações.
Aprendizagem
Classificador ótimo de Bayes

Imagine que recebemos como treinamento uma lista


de condições do ambiente em cada dia (situação do
céu, temperatura, umidade e vento) e se uma pessoa
jogou tênis naquele dia. O objetivo do algoritmo é
determinar se um novo dia, descrito por um conjunto
de condições, é adequado para jogar tênis. Assim,
pelo teorema de Bayes, teríamos:

𝑃 𝐶, 𝑇, 𝐻, 𝑉 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠) 𝑃(𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠)
𝑃 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠 𝐶, 𝑇, 𝐻, 𝑉) =
𝑃 𝐶, 𝑇, 𝐻, 𝑉

É possível determinar a probabilidade dessa forma, mas é extremamente ineficiente, uma vez que envolve iterar
por todas as combinações de variáveis para o vetor {𝐶, 𝑇, 𝐻, 𝑉}, que nesse caso são 3 × 3 × 2 × 2 = 72. Isso é
problemático porque esse valor cresce muito rápido em sistemas mais complexos.
Aprendizagem
Classificador Bayes ingênuo

Para tornar o processo mais eficiente, o classificador Bayes ingênuo (ou naive bayes) assume que as variáveis do
vetor {𝐶, 𝑇, 𝐻, 𝑉} são condicionalmente independentes.

Assim, a probabilidade de se observar o conjunto de atributos é somente o produto da probabilidade de se observar


cada um. Nesse caso:

𝑃 𝐶, 𝑇, 𝐻, 𝑉 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠) = 𝑃 𝐶 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠) × 𝑃 𝑇 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠) × 𝑃 𝐻 | 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠 × 𝑃 𝑉 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠)

Ou, de forma mais geral:

𝑃 𝑎1 , 𝑎2 , … , 𝑎𝑛 𝑐𝑗 ) = ෑ 𝑃 𝑎𝑘 𝑐𝑗 )
𝑘=1
Aprendizagem
Árvores de decisão

Nº País de origem Estrela Gênero Sucesso


Árvores de decisão para servem para
1 Estados Unidos Sim Ficção científica V
analisar as observações sobre um item
2 Estados Unidos Não Comédia F
e chegar a uma classificação
3 Estados Unidos Sim Comédia V
(representada pela folha). 4 Europeu Não Comédia V
5 Europeu Sim Ficção científica F
Aqui, o nosso objetivo é construir uma 6 Europeu Sim Romance F
árvore de decisão que classifique bem 7 Outros Sim Comédia F
o conjunto de treinamento, e também 8 Outros Não Ficção científica F

funcione com o conjunto de teste. 9 Europeu Sim Comédia V


10 Estados Unidos Sim Comédia V

Nesse caso, estamos interessados em construir uma árvore que permita prever se um filme fará sucesso ou não.
Aprendizagem
Entropia
Definimos a entropia de um conjunto 𝑆 como:
𝑒𝑛𝑡𝑟𝑜𝑝𝑖𝑎 𝑆 = − 𝑝1 log 2 𝑝1 − (𝑝0 log 2 𝑝0 )
Em que:

𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑜𝑠
𝑝1 = e 𝑝0 =
𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 + 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑜𝑠 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 + 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑜𝑠

Um valor próximo de 1 indica que o conjunto possui uma quantidade


𝑆
parecida de positivos e negativos. Um valor próximo de 0 indica que o
V F F V F V V
conjunto possui quase todos os elementos em uma só categoria (só
negativos ou só positivos).
𝑆
V F F V F V V
O ganho de informação é a redução de entropia com a escolha desse
atributo classificador.
Aprendizagem
Algoritmo ID3

O primeiro passo para o algoritmo ID3 é Filmes

calcular a entropia do conjunto original, em 1 2 3 4 5 6 7 8 9 10

que todas as instâncias estão agrupadas na 𝐸 𝐼𝑛𝑖𝑐𝑖𝑎𝑙 = 1


mesma categoria.
País de origem

Então, ele determina a raiz da árvore de


EUA Europeu Outros
decisão testando cada atributo, e verificando
1 3 10 4 9
qual deles produz uma divisão com maior
2 5 6 7 8
ganho de informação.
𝐸 𝐸𝑢𝑎 = 0,811 𝐸 𝐸𝑢𝑟𝑜𝑝𝑒𝑢 = 1 𝐸(𝑜𝑢𝑡𝑟𝑜𝑠) = 0
4 4 2
𝐸𝑅𝑒𝑠𝑡𝑎𝑛𝑡𝑒 𝑃𝑎í𝑠𝐷𝑒𝑂𝑟𝑖𝑔𝑒𝑚 = 0,811 + 1 + 0 = 0,724
10 10 10
𝐺𝑎𝑛ℎ𝑜(𝑃𝑎í𝑠𝐷𝑒𝑂𝑟𝑖𝑔𝑒𝑚) = 1 − 0,724 = 0,276
Aprendizagem
Algoritmo ID3
Estrela
O primeiro passo para o algoritmo ID3 é
calcular a entropia do conjunto original, em Sim Não
que todas as instâncias estão agrupadas na 1 3 10 9 5 6 7 2 4 8
mesma categoria.
𝐸 𝑆𝑖𝑚 = 0,985 𝐸 𝑁ã𝑜 = 0,918
7 3
Então, ele determina a raiz da árvore de 𝐸𝑅𝑒𝑠𝑡𝑎𝑛𝑡𝑒(𝐸𝑠𝑡𝑟𝑒𝑙𝑎) = 0,985 + 0,918 = 0,964
10 10
𝐺𝑎𝑛ℎ𝑜(𝐸𝑠𝑡𝑟𝑒𝑙𝑎) = 1 − 0,964 = 0,036
decisão testando cada atributo, e verificando
qual deles produz uma divisão com menor
entropia (e maior ganho de informação).
Aprendizagem
Algoritmo ID3
Gênero
O primeiro passo para o algoritmo ID3 é
calcular a entropia do conjunto original, em Comédia Romance Ficção Científica

que todas as instâncias estão agrupadas na 2 3 4 6 1 5 8

mesma categoria. 7 10 9

𝐸(𝐶𝑜𝑚é𝑑𝑖𝑎) = 0,918 𝐸 𝑅𝑜𝑚𝑎𝑛𝑐𝑒 = 0 𝐸 𝐹𝑖𝑐çã𝑜𝐶𝑖𝑒𝑛𝑡í𝑓𝑖𝑐𝑎


Então, ele determina a raiz da árvore de = 0,918
decisão testando cada atributo, e verificando
6 1 3
qual deles produz uma divisão com menor 𝐸𝑅𝑒𝑠𝑡𝑎𝑛𝑡𝑒 𝐺ê𝑛𝑒𝑟𝑜 = 0,918 + 0 + 0,918 = 0,826
10 10 10
𝐺𝑎𝑛ℎ𝑜(𝐺ê𝑛𝑒𝑟𝑜) = 1 − 0,826 = 0,035
entropia (e maior ganho de informação).
Aprendizagem
Algoritmo ID3

Assim, concluímos que o país de origem deve ser a País de origem

raiz da árvore. EUA Outros


Europeu
País de Origem Estrela Gênero ? ? ?
0,276 0,036 0,035

Agora, precisamos repetir o algoritmo para


descobrir quais são os galhos em cada ramificação.
Isso se repete até chegarmos nas folhas, que são
grupos que contém entropia 0.

Porém, esse método falha quando não utiliza poda,


o que pode levar ao super ajuste (overfitting).
Aprendizagem
Algoritmo ID3

Assim, concluímos que o país de origem deve ser a País de origem

raiz da árvore. EUA Outros


Europeu
País de Origem Estrela Gênero Estrela Gênero F
0,276 0,036 0,035
Sim Não
Agora, precisamos repetir o algoritmo para
descobrir quais são os galhos em cada ramificação. V F

Isso se repete até chegarmos nas folhas, que são Ficção


Comédia Romance científica
grupos que contém entropia 0.

V F F
Porém, esse método falha quando não utiliza poda,
o que pode levar ao super ajuste (overfitting).
Aprendizagem
Algoritmo C4.5

Inclui uma métrica para informação intrínseca, dada por:

𝑘
|𝑆𝑖 | |𝑆𝑖 |
𝐼𝑛𝑓𝑜𝐼𝑛𝑡 = ෍ − log 2
|𝑆| |𝑆|
𝑖=1
Em que 𝑘 itera para cada categoria dentro de um atributo, 𝑆 é o total de elementos e 𝑆𝑖 é o total de elementos na
categoria.

E uma para razão de ganho, dada por:

𝐺𝑎𝑛ℎ𝑜
𝑅𝑎𝑧ã𝑜𝐺𝑎𝑛ℎ𝑜 =
𝐼𝑛𝑓𝑜𝐼𝑛𝑡
Aprendizagem
Algoritmo C4.5

Assim, o algoritmo passa a testar e preferir a divisão com maior razão de ganho. Através do particionamento
(determinando um valor de corte, e criando duas categorias) pode-se lidar também com atributos contínuos.

O algoritmo C4.5 também permite que a árvore seja podada, evitando o super ajuste. Isso pode ser feito durante a
construção da árvore (o algoritmo simplesmente para de dividir o conjunto após certo momento) ou depois da
construção, em que um ramo é cortado e tudo que está abaixo desse ramo é transformado em uma folha com a
classe mais frequente (isso pode ser decidido verificando se diferença entre as taxas de erro com ou sem poda são
menores que um valor pré-determinado).

Esses algoritmos ainda podem ser adaptados para formar árvores de regressão, que contém funções matemáticas
nas folhas.
Aprendizagem
Aprendizado não-supervisionado

No aprendizado não supervisionado, o algoritmo não recebe nenhum tipo de rótulo pré-definido no conjunto de
treinamento, devendo o próprio primeiramente descobrir padrões nesse conjunto.
Aprendizagem
Agrupamento

O agrupamento é a tarefa de agregar objetos em grupos de forma que


os objetos de um grupo são mais similares entre si do que entre objetos
de outros grupos.

A principal diferença entre agrupamento e classificação é que os rótulos


são pré-determinados na classificação, ao passo que o agrupamento
parte de um conjunto de dados cujos melhores rótulos de grupos não
são conhecidos, e deve-se descobri-los.
Aprendizagem
Agrupamento hierárquico

Aqui, visamos construir uma hierarquia de


agrupamentos.

No agrupamento aglomerativo (uma abordagem de


baixo para cima), cada observação começa um
próprio agrupamento, e pares de agrupamentos são
unidos.

No agrupamento divisivo (uma abordagem de cima Os agrupamentos e divisões são feitos conforme uma

para baixo), cada observação começa inicialmente métrica de distância. Qualquer métrica de distância

no mesmo agrupamento, e esse agrupamento é válida pode ser usada. Há inúmeras implementações de

divisivo. código aberto ou comerciais desses algoritmos.


Aprendizagem
Agrupamento k-means

O objetivo do algoritmo pode ser resumido como “encontrar k


centroides de agrupamentos, e assinalar cada elemento para o
centroide mais próximo, de forma que os quadrados das
distâncias até os centroides são minimizados.

Aqui, começamos dividindo o conjunto de pontos de forma


arbitrária em 𝑘 vetores. Cada vetor produz um agrupamento, e
esse agrupamento produz um centroide. Em cada iteração,
todas as observações são atribuídas ao centroide mais próximo.
Em seguida, os centroides são recalculados. O algoritmo
converge quando os agrupamentos atribuídos deixam de mudar.
Aprendizagem
Agrupamento baseado em distribuição

Aqui, supomos que os dados são gerados por distribuições


aleatórias (normais ou gaussianas) pré-inicializadas.

Então agrupamos os dados com base na probabilidade de que


eles tenham sido gerados pela mesma distribuição.

O algoritmo converge para um máximo local, o que significa


que múltiplas execuções podem produzir resultados diferentes.
Aprendizagem
Agrupamento baseado em densidade

Aqui, um agrupamento é definido como uma área de maior


densidade que o resto do conjunto de dados. Objetos em
áreas esparsas são considerados ruído ou casos marginais.

O algoritmo também funciona assinalando grupos para


pontos de forma a minimizar a distância ao centro do
agrupamento. Alguns algoritmos apenas conectam pontos
que satisfazem a um critério de densidade.
Aprendizagem
Agrupamento baseado em grade

Primeiramente, dividimos o espaço de busca em uma grade,


com um número finito de células.

Então escolhemos uma célula aletoriamente, checamos se ela


possui uma densidade maior que um limite determinado e, se
sim, a determinamos como o centro de um agrupamento.
Fazemos a checagem para as células vizinhas do novo
agrupamento, e depois escolhemos outra célula
aleatoriamente.
Aprendizagem
Redução da dimensionalidade

A maldição da dimensionalidade diz respeito ao fato dos dados se tornarem mais dispersos quando as dimensões de
um espaço mudam. Isso ocorre porque o espaço a ser preenchido aumenta exponencialmente. Uma solução é
preencher com mais dados, mas nem sempre isso é possível. Outra é reduzir a dimensão dos dados.

Dados são gerados com uma única Uma nova dimensão é adicionada, junto com valores aleatórios para cada ponto
dimensão e valores aleatórios. nessa dimensão. Isso é repetido duas vezes
Aprendizagem
Redução da dimensionalidade

É evidente que costuma ser impossível reduzir a dimensionalidade sem qualquer prejuízo, porém as técnicas
aplicadas visam:
▪ Preservar o máximo possível da estrutura dos dados presente na representação com mais dimensões;
▪ Minimizar a perda de informação ao reduzir as dimensões;
▪ Aumentar o poder de interpretação dos dados em dimensões menores.
Aprendizagem
Análise de componente principal (PCA)

Aqui, procuramos por um vetor que possa ser usado para


projetar os dados, de forma a minimizar o quadro das distâncias
de cada ponto ao vetor.
Aprendizagem
Incorporação de vizinhos estocásticos com distribuição t (t-SNE)

Trata-se de uma técnica que permite a melhor visualização dos


dados em dimensões superiores ao assinalar uma localização
para cada ponto em um espaço de 2 ou 3 dimensões.

Primeiro, construímos uma distribuição de probabilidade sobre


pares de objetos em dimensões maiores, de forma que objetos
similares recebem maior probabilidade. Isso é traduzido como a
probabilidade de que um ponto tenha outro como vizinho.

Então, os pontos são distribuídos em um espaço de 2 ou 3


dimensões usando a distribuição que obtivemos e uma
distribuição t de Student.
Aprendizagem
Regras de associação

Regras de associação são relações entre variáveis em um banco de dados. Definimos uma regra de associação com
um conjunto de itens 𝐼 = {𝑖1 , 𝑖2 , … , 𝑖𝑚 } e um conjunto de transações 𝑇 = {𝑡1 , 𝑡2 , … , 𝑡𝑛 }. Uma regra de associação é
dada da forma:

Lado esquerdo Lado direito


Conjunto de itens Conjunto de itens

Se podemos formar a regra, Transações Itens comprados


então significa que os itens no 1 Calça, camiseta, tênis
lado direito frequentemente 2 Camiseta, tênis, calça, sandália
ocorrem quando os itens no 3 Bermuda, tênis
4 Calça, sandália
lado esquerdo também
5 Camiseta, calça, tênis, bermuda.
ocorrem.
Aprendizagem
Suporte e confiança

O suporte de uma regra 𝐿𝐻𝑆 → 𝑅𝐻𝑆 é proporcional


Dentre todas as regras, em quantas 𝐿𝐻𝑆 e 𝑅𝐻𝑆 ocorrem
ao número de transações na base de dados em que
juntos?
ocorre 𝐿𝐻𝑆 ∪ 𝑅𝐻𝑆.

A confiança de uma regra 𝐿𝐻𝑆 → 𝑅𝐻𝑆 é proporcional


ao número de transações nas quais 𝑅𝐻𝑆 está presente Dentre todas as regras nas quais 𝐿𝐻𝑆 ocorre, em quantas
𝑅𝐻𝑆 também ocorre?
uma vez que 𝐿𝐻𝑆 também estiver presente.
Aprendizagem
Algoritmo a priori

Primeiro, listamos conjuntos de 1 item que Conjunto (𝒌 = 1) Suporte Transação Itens


𝐼1 6 𝑇1 𝐼1 , 𝐼2 , 𝐼5
possuam um suporte mínimo. Os itens que não
𝐼2 7 𝑇2 𝐼2 , 𝐼4
satisfazem ao critério são podados.
𝐼3 6 𝑇3 𝐼2 , 𝐼3
𝐼4 2 𝑇4 𝐼1 , 𝐼2 , 𝐼4
Aqui, por exemplo, o suporte mínimo é 2, o que 𝐼5 2 𝑇5 𝐼1 , 𝐼3
significa que ninguém é podado. 𝑇6 𝐼2 , 𝐼3
𝑇7 𝐼1 , 𝐼3
𝑇8 𝐼1 , 𝐼2 , 𝐼3 . 𝐼5
𝑇9 𝐼1 , 𝐼2 , 𝐼3
Aprendizagem
Algoritmo a priori

Então, os itens remanescentes são combinados Conjunto (𝒌 = 𝟐) Suporte Transação Itens


𝐼1 , 𝐼2 4 𝑇1 𝐼1 , 𝐼2 , 𝐼5
com todos os demais, e procuramos por
𝐼1 , 𝐼3 4 𝑇2 𝐼2 , 𝐼4
conjuntos de 2 itens que possuam suporte
𝐼1 , 𝐼4 1 𝑇3 𝐼2 , 𝐼3
mínimo.
𝐼1 , 𝐼5 2 𝑇4 𝐼1 , 𝐼2 , 𝐼4
𝐼2 , 𝐼3 4 𝑇5 𝐼1 , 𝐼3
Mais uma vez, o suporte mínimo é 2, então 𝐼2 , 𝐼4 2 𝑇6 𝐼2 , 𝐼3
podamos alguns conjuntos. 𝐼2 , 𝐼5 2 𝑇7 𝐼1 , 𝐼3
𝐼3 , 𝐼4 0 𝑇8 𝐼1 , 𝐼2 , 𝐼3 . 𝐼5
𝐼3 , 𝐼5 1 𝑇9 𝐼1 , 𝐼2 , 𝐼3
𝐼4 , 𝐼5 0
Aprendizagem
Algoritmo a priori

Repetimos o processo para suporte mínimo 3, Conjunto (𝒌 = 𝟑) Suporte Transação Itens


𝐼1 , 𝐼2 , 𝐼3 2 𝑇1 𝐼1 , 𝐼2 , 𝐼5
e fazemos isso até chegarmos no valor
𝐼1 , 𝐼2 , 𝐼4 1 𝑇2 𝐼2 , 𝐼4
desejado, ou nenhuma nova satisfazer o
𝐼1 , 𝐼2 , 𝐼5 2 𝑇3 𝐼2 , 𝐼3
suporte mínimo.
𝐼1 , 𝐼3 , 𝐼4 𝑇4 𝐼1 , 𝐼2 , 𝐼4
𝐼1 , 𝐼3 , 𝐼5 𝑇5 𝐼1 , 𝐼3
Na poda, sempre lembramos que conjuntos de 𝐼1 , 𝐼5 , 𝐼4 𝑇6 𝐼2 , 𝐼3
ordem superior que contem conjuntos não- 𝐼2 , 𝐼3 , 𝐼4 𝑇7 𝐼1 , 𝐼3
frequentes de ordem inferior também não são 𝐼2 , 𝐼3 , 𝐼5 𝑇8 𝐼1 , 𝐼2 , 𝐼3 . 𝐼5

frequente. Isso nos libera de calcular o suporte 𝐼2 , 𝐼4 , 𝐼1 𝑇9 𝐼1 , 𝐼2 , 𝐼3

desses conjuntos. 𝐼2 , 𝐼4 , 𝐼3
𝐼2 , 𝐼4 , 𝐼5
𝐼2 , 𝐼5 , 𝐼3
Aprendizagem
Algoritmo a priori

Agora que temos os conjuntos, precisamos produzir as regras. Para cada conjunto Transação Itens
𝑇1 𝐼1 , 𝐼2 , 𝐼5
de itens, checamos a confiança de cada regra possível e eliminamos as que não
𝑇2 𝐼2 , 𝐼4
satisfazem a confiança mínimo. Abaixo, fazemos isso para apenas um dos
𝑇3 𝐼2 , 𝐼3
conjuntos.
𝑇4 𝐼1 , 𝐼2 , 𝐼4
𝐼1 , 𝐼2 → 𝐼3 = 2ൗ4 = 0,5 𝑇5 𝐼1 , 𝐼3
𝑇6 𝐼2 , 𝐼3
𝐼1 , 𝐼3 → 𝐼2 = 2ൗ4 = 0,5
𝑇7 𝐼1 , 𝐼3
𝐼2 , 𝐼3 → 𝐼3 = 2ൗ4 = 0,5 𝑇8 𝐼1 , 𝐼2 , 𝐼3 . 𝐼5
𝑇9 𝐼1 , 𝐼2 , 𝐼3
𝐼1 → 𝐼2 , 𝐼3 = 2ൗ6 = 0,33

𝐼2 → 𝐼1 , 𝐼3 = 2ൗ7 = 0,28 Conjunto (𝒌 = 𝟑) Sup.


𝐼1 , 𝐼2 , 𝐼3 2
𝐼3 → 𝐼1 , 𝐼2 = 2ൗ6 = 0,33
𝐼1 , 𝐼2 , 𝐼5 2
Aprendizagem
Aprendizado por reforço

Um agente de aprendizado reforçado trabalha com um conjunto de estados 𝑆 e um conjunto de ações 𝐴. Além
disso, o agente trabalha com:

▪ A probabilidade de que uma ação 𝑎 no tempo 𝑡 leve do estado 𝑠 para o estado 𝑠′.
▪ A recompensa imediata após a transição de 𝑠 para 𝑠′ com a ação 𝑎.

O agente visa maximizar a recompensa acumulada. Em outras palavras, ele não está interessado apenas na
recompensa imediata, mas sim na sequência de recompensas que uma política proporciona.
Aprendizagem
Processo de decisão de Markov
1
+100
1
Trabalho Trabalho Trabalho
0,8
+20 0,2
+40
+30

Cansado Dormir 0,8 Enérgico Academia 1 Saudável


-10

-10 0,2
0,5
Aqui, temos uma situação na qual o agente pode sair de cada
0,5 -10
Academia estado com uma ação. Essas ações levam para o mesmo ou para
outros estados com certa probabilidade, e algumas envolvem
recompensas ou penalidades.
Aprendizagem
Iteração no Q-valor

Determinamos um Q-valor para tomar cada ação em um estado. Fazemos isso percorrendo o espaço de estados, e
calculando com a fórmula:

𝑄𝑘+1 𝑠, 𝑎 ← ෍ 𝑃(𝑠, 𝑎, 𝑠 ′ ) 𝑅 𝑠, 𝑎, 𝑠 ′ + 𝛾 × max



𝑄𝑘 𝑠 ′ , 𝑎′
𝑎

Valor de 𝑄. Probabilidade Recompensa Taxa de desconto, Valor da ação


de que a ação caso a calculada ótima no estado 𝑠’
𝑎 leve ao transição recursivamente. É uma política
estado 𝑠′. ocorra. gulosa.
Para cada
resultado da ação.

O valor de 𝛾 é o que nos permite diferenciar recompensas presentes de futuras. Um valor próximo de 0 indica que
recompensas futuras tem pouquíssimo peso, ao passo em que um valor próximo de 1 indica que recompensas
futuras tem quase o mesmo peso que recompensas presentes. Assim, a recompensa acumulada tem a forma:
𝑅 = 𝑅𝑡 𝛾 0 + 𝑅𝑡+1 𝛾 1 + 𝑅𝑡+2 𝛾 2 + ⋯ + 𝑅𝑡+𝑛 𝛾 𝑛
Aprendizagem
Aprendizado Q

Começamos inicializando uma tabela com um ↓ Estados / Ações → Trabalho Dormir Academia

valor arbitrário, que relaciona estados com Cansado 0 0 0


Enérgico 0 0 0
ações que podem ser tomadas a partir de cada
Saudável 0 0 0
estado.

Começando em um estado arbitrário, a fase de aprendizado envolve preencher a tabela com o valor de Q calculado,
percorrendo os estados.

𝑄 𝑆𝑡 , 𝑎 ← 𝑄 𝑆𝑡 , 𝑎 + 𝛼 𝑅𝑡+1 + 𝛾 max 𝑄 𝑆𝑡+1 , 𝑎 − 𝑄 𝑆𝑡 , 𝑎


𝑎

Valor de 𝑄. Valor de 𝑄. Taxa de Recompensa Taxa de desconto, Valor da ação Valor de 𝑄.


aprendizado calculada ótima no estado
recursivamente. seguinte. É uma
política gulosa.
Aprendizagem
SARSA

No algoritmo SARSA (cujo nome é uma sigla para State–action–reward–state–action), a tabela é atualizada não com
o valor da ação ótima, mas com o valor da ação que se seguir. Assim, a política deixa de ser uma política gulosa, e
passa a ser uma política igual à adotada no comportamento.

𝑄 𝑆𝑡 , 𝑎 ← 𝑄 𝑆𝑡 , 𝑎 + 𝛼 𝑅𝑡+1 + 𝛾 𝑄 𝑆𝑡+1 , 𝑎 − 𝑄 𝑆𝑡 , 𝑎

Valor de 𝑄. Valor de 𝑄. Taxa de Recompensa Taxa de desconto, Valor da ação no Valor de 𝑄.


aprendizado calculada estado seguinte,
recursivamente. independente de
ser a ação ótima.
Aprendizagem
Método de Monte-Carlo

Os algoritmos de aprendizado reforçado que vimos até o momento funcionam bem quando conhecemos os 5
conjuntos: estados, ações, probabilidades de triplos estado-ação-estado’, recompensas de triplos estado-ação-estado’
e fatores de desconto. Porém, existem situações nas quais esses valores não são conhecidos.

A ideia do método de Monte-Carlo é percorrer o espaço de estados em várias iterações, coletando exemplos,
recompensas e assim avaliando a função. Dessa forma, o resultado final que irá para a tabela ao final do algoritmo
será muito próximo do resultado real, caso soubéssemos os valores das variáveis desconhecidas. Assim, cada visita
atualiza o valor de estado com a fórmula:
𝑉 𝑆𝑡 ← 𝑉 𝑆𝑡 + 𝛼 𝐺𝑡 − 𝑉 𝑆𝑡
Em que:
𝐺𝑡 = 𝑟𝑡 𝛾 0 + 𝑟𝑡+1 𝛾 1 + 𝑟𝑡+2 𝛾 2 + ⋯ + 𝑟𝑡+𝑛 𝛾 𝑛
O valor pode ser atualizado apenas na primeira visita ao estado, ou em todas as visitas.
Aprendizagem
Redes neurais artificias

Redes neurais artificiais são sistemas computacionais inspirados nas redes neurais biológicas que constituem os
cérebros na natureza.

Um cérebro real é constituído de um conjunto de neurônios interconectados. A maioria dos neurônios se conecta
a neurônios próximos, porém podem haver conexões distantes. Um cérebro real também é extremamente plástico,
podendo reforçar ou enfraquecer ligações com o tempo e com a experiência.
Aprendizagem
Neurônios

O primeiro passo é construir um modelo de neurônio que


possa ser construído em um circuito eletrônico, ou
programado em um computador.

Um neurônio real possui um corpo celular com o núcleo no


centro. Em uma extremidade, os dendritos estimulam o
neurônio com sinais oriundos de outros neurônios. Cada pulso
recebido muda o potencial elétrico da célula (aumentando-o
ou diminuindo-o). Caso este atinja um limite, o neurônio
dispara um sinal que percorre o axônio em direção aos seus
terminais sinápticos, que por sua vez excitam outros
neurônios.
Aprendizagem
Perceptron

Um modelo básico (chamado de perceptron)


transforma os dendritos em um conjunto de sinais 𝐷1 𝑊1
de entrada discretos 𝐷 = {𝐷1 , 𝐷2 , … , 𝐷𝑛 }, cada um
deles associado com um peso 𝑊 = {𝑊1 , 𝑊2 , … , 𝑊𝑛 }. O
𝐷2 𝑊2 output (1Τ0)
perceptron possui também um viés, dado por 𝑏. ෍
… …
Assim, o perceptron se comporta de forma:
𝐷𝑛 𝑊𝑛
0 se ෍ 𝐷𝑖 𝑊𝑖 + 𝑏 ≤ 0
output = 𝑏
1 se ෍ 𝐷𝑖 𝑊𝑖 + 𝑏 > 0
Aprendizagem
Tarefa de classificação

Um perceptron pode ser usado para tarefas simples de classificação, nas quais um conjunto de inputs deve
produzir uma saída.

Viés ?
𝑫𝟏 (clima ensolarado) 𝑾𝟏 𝑫𝟐 (temperatura agradável) 𝑾𝟐 𝑺 (andar de bicicleta)
0 0 0
0 1 ? 0
?
1 0 0
1 1 1

Certas tarefas podem requerer redes complexas de neurônios. Além disso, é interessante que sejamos capazes
de aprender com o conjunto de treinamento – assim como fizemos anteriormente.
Aprendizagem
Sigmoides

É interessante que nossa rede seja capaz de alterar


os pesos (e consequentemente as saídas produzidas) 𝐷1 𝑊1
conforme recebe dados, de forma a ser capaz de
aprender. Porém, a saída discreta dos perceptrons
𝐷2 𝑊2 output (0 até 1)
não é adequada para as alterações sutis que um 𝜎
sistema do tipo precisa fazer. … …

Um sigmoide recebe um conjunto de sinais de 𝐷𝑛 𝑊𝑛


entrada contínuos,
1 𝑏
output =
1 + 𝑒 (σ 𝐷𝑖𝑊𝑖−𝑏)
Aprendizagem
Funções

Assim, podemos representar as funções de saída de perceptrons e de sigmoides.


Aprendizagem
Arquitetura e aprendizado profundo

Além de neurônios capazes de realizar tarefas


com maior sutileza, tarefas complexas requerem
arquiteturas mais complexas. Por isso, é comum
que uma rede neural possua, além das camadas
de input e output, algumas camadas ocultas.

Redes podem ser unicamente para frente


(significando que a informação sempre corre do
input para o output), ou possuírem feedback
(significando que a informação de um neurônio Quando temos várias camadas na nossa arquitetura,
posterior pode voltar e alimentar um neurônio designamos o sistema como um sistema de aprendizado
anterior em outro momento). profundo.
Aprendizagem
Rede direta (FF) e rede direta profunda (DFF)

Aqui, a informação é sempre propagada para a frente. Uma rede direita


simples possui apenas uma camada oculta, ao passo que redes diretas
profundas possuem várias camadas ocultas.

Elas são comumente treinadas com o algoritmo de retropropagação de


erro.

Exemplos de redes neurais desse tipo podem ser vistos em


https://playground.tensorflow.org.
Aprendizagem
Rede neural recorrente (RNN)

Aqui, introduzimos as células recorrentes, que podem receber input de células mais para a frente, ou delas próprias.
Tais redes são geralmente usadas em situações nas quais o contexto é importante, e a informação vem separada
por momentos (como analisar o significado de uma palavra em um texto depende do texto que foi processado
anteriormente).

As células de memória podem ter diferentes configurações.


Aprendizagem
Autocodificador (AE)

Um autocodificador é uma rede neural na qual o número de


neurônios na camada oculta é menor que o número de células na
camada de input, e o total de células na camada de input é igual ao
de células na camada de output.

O aprendizado é feito construindo o input em uma distribuição


multivariável, e reconstruir da melhor forma essa distribuição no
output. Porém, a ideia é fazer isso preservando apenas os aspectos
mais importantes dos dados.

Essa estrutura funciona bem para situações de aprendizado não


supervisionado, incluindo redução da dimensionalidade.
Aprendizagem
Redes neurais convolucionais (CNN) e desconvolucionais (DN)

Nessas redes, o processamento acontece de forma fracionada. Elas são


úteis para reconhecimento de imagens em palavras. Por exemplo, para
uma imagem de 200 por 200 pixels, a rede analisa o primeiro quadrado
de 20 por 20 pixels com vértice em (0,0), e depois analisa um quadrado
do mesmo tamanho com vértice em (0,1).

A configuração inversa pode ser útil para


a tarefa contrária, a produção de imagens
a partir de palavras.
Percepção e ação
Linguagem formal vs linguagem natural

Em uma linguagem formal (como Java ou Python), sentenças são especificadas por um conjunto de regras
denominado gramática e têm seu significado definido por um conjunto de regras denominado semântica. Assim, é
fácil determinar se um programa é válido.

Porém, uma forma de abordar linguagens naturais é usar distribuições de probabilidade. Assim, nos perguntamos
qual a probabilidade de que uma sentença pertença à Língua Portuguesa, ou de que possua um certo significado.
Percepção e ação
Modelos de caracteres de 𝑛-grama

Um 𝑛-grama é uma sequência contínua de 𝑛


itens (caracteres, sílabas ou palavras) de um
dado texto. Podemos usar esse conceito para
prever a última de um conjunto de 𝑛 palavras,
dadas as 𝑛 − 1 palavras anteriores.
Percepção e ação
Classificação de texto

Corresponde à tarefa de, dado um texto, classifica-lo dentre um conjunto de possíveis classes. Isso pode envolver
extrair a emoção que um texto carrega, classifica-lo em um gênero literário ou discernir entre spam e ham (não-
spam).

Uma abordagem depende de definirmos características relevantes, e da escolha de um dos algoritmos de


aprendizado supervisionado que verificamos no vídeo anterior.

Outra envolve compressão de dados. Criamos classes para comprimir mensagens de spam e mensagens ham, e,
quando temos uma nova mensagem, anexamos às classes de spam e ham e comprimimos. A classe que produza
melhor compressão é assinalada à mensagem.
Percepção e ação
Recuperação de informação

Trata-se da tarefa de processar uma consulta e, dentro de um corpus de documentos, retornar um conjunto de
resultados relevante. Em resumo, é a tarefa realizada por motores de busca. Uma primeira abordagem envolve
checar pela mera presença de uma palavra ou conjunto de palavras, porém essa abordagem é pouco amigável e
superficial.

A função BM25 retorna uma pontuação para cada documento, que por sua vez é uma combinação linear de:

▪ Frequência com que uma palavra aparece no documento.


▪ A frequência inversa do documento com o termo, assim palavras comuns como “em” tem pouco peso.
▪ O comprimento do documento, já que um documento muito grande eventualmente vai ter muitas ocorrências
da palavra mesmo que seja pouco relevante.
Percepção e ação
Recuperação de informação

O PageRank, por outro lado, avalia cada página


também pela quantidade de outras páginas que
apontam para ela. Além de cada página poder
“votar” ao apontar para outra, o voto de páginas
importantes vale mais.
Percepção e ação
Perguntas e respostas

O objetivo aqui é responder a uma pergunta feita


em linguagem natural de forma curta, ao invés de
retornar uma lista de resultados complexos.

Uma possibilidade para realizar tal tarefa é simplesmente converter a pergunta em uma pesquisa (como “* foi
campeão da Libertadores 2020”, elencar os resultados e realizar uma busca por 𝑛-gramas mais frequentes dentre os
resultados. Porém, é também preciso ser capaz de filtrar resultados igualmente frequentes mas que não são respostas
para a pergunta realizada, como “libertadores”, “bicampeão”, “Breno Lopes” e “Santos”.
Percepção e ação
Extração de informação

A extração de informação é o processo de extrair conteúdo sistematizado a partir de textos. Em situações limitadas
esse processo pode ser feito com alta precisão, mas a tarefa se torna complexa para soluções de propósito geral.

Uma das formas mais simples é a extração por atributos, na qual consideramos que todo o texto diz respeito a um
mesmo objeto, e nosso objetivo é extrair atributos desse objeto por meio da identificação de padrões presentes no
próprio atributo e no texto ao redor.
Percepção e ação
Extração de informação

Uma etapa acima é a extração relacional, que lida com vários objetos e relações entre eles.

“A Bridgestone Sports Co. informou que sexta-feira estabeleceu uma joint venture em Taiwan com a firma local e
uma casa de comércio japonesa para produzir tacos de golfe para serem enviados ao Japão.”

Um deles, chamado FASTUS, cumpre a tarefa em cinco etapas.

▪ Na tokenização, o texto é dividido em tokens (palavras, números ou caracteres).

▪ Depois, reconhecemos palavras complexas através de regras. Por exemplo, o nome de uma companhia pode ser
reconhecido por
Percepção e ação
Extração de informação

▪ Separamos as palavras em grupos básicos, tais como grupo nominal, grupo verbal, preposição e conjunção.

▪ Usamos esses grupos nominais para criação de sentenças lógicas.


Percepção e ação
Gramática livre de contexto probabilística

Uma gramática é um conjunto de regras que define uma linguagem como um conjunto de
cadeias de palavras permitido.

“Livre de contexto” indica que, nas regras, o lado esquerdo é composto por um único símbolo não terminal. Assim,
o lado esquerdo indica pode ser substituído pelo lado direito em qualquer contexto.

“Probabilística” significa que a gramática atribui uma probabilidade a cada cadeia.

Abaixo há um exemplo de regra, na qual SN é sintagma nominal e SV é sintagma verbal. Ela diz que um sintagma
nominal é um verbo em 70% dos casos, e um sintagma verbal seguido de um sintagma nominal em 30% dos casos.

SV → Verbo 0,70 | SV SN [0,30]


Percepção e ação
Gramática livre de contexto probabilística

Precisamos definir também grupos terminais, que compõe o léxico, ou a lista de palavras permitidas. Essas são
listas abertas, uma vez que novas palavras podem ser adicionadas.
Percepção e ação
Gramática livre de contexto probabilística

Na próxima etapa, formulamos regras para nossa gramática.


Percepção e ação
Gramática livre de contexto probabilística

Esse conjunto de regras pode, através de substituições, ser usado para testar se uma sentença é ou não parte da
linguagem. Porém, ele superproduz (gera sentenças que não fazem parte de linguagem) e subproduz (rejeita
sentenças que fazem parte da linguagem).
Percepção e ação
Algoritmo CYK

O algoritmo verifica se, para uma sequência de palavras, 𝑆 → 𝑆𝑁 𝑆𝑉


𝑆𝑉 → 𝑆𝑉 𝑆𝑃
existe uma partição 𝑃 → 𝑄 𝑅 tal que 𝑄 coincide com a 𝑆𝑉 → 𝑉 𝑆𝑁
𝑆𝑉 → 𝑐𝑜𝑚𝑒
primeira parte, e 𝑅 com a segunda parte.
𝑆𝑃 → 𝑃 𝑆𝑁
𝑆𝑁 → 𝐴 𝑁
𝑆𝑁 → 𝑒𝑙𝑎
Se sim, a subsequência 𝑄 𝑅 é assinalada como 𝑃, e o processo 𝑉 → 𝑐𝑜𝑚𝑒
continua até que a sentença padrão 𝑆 seja obtida. 𝑃 → 𝑐𝑜𝑚
𝑁 → 𝑝𝑒𝑖𝑥𝑒
𝑁 → 𝑔𝑎𝑟𝑓𝑜
SN – Sintagma nominal
𝐴 → 𝑢𝑚
SV– Sintagma verbal
SP – Sintagma proposicional
V – Verbo
N – Substantivo
A – Artigo
P – Proposição
Percepção e ação
Gramática livre de contexto probabilística lexicalizada

As adições descritas agora permitem concluir que frases como “comer uma banana” são muito prováveis de serem
válidas, ao passo que frases como “comer uma bandana” são muito improváveis.

Definimos agora que um sintagma possui uma cabeça, a palavra mais importante na sentença. A gramática
aumentada é, então, descrita como:
𝑆𝑉 𝑣 → 𝑉𝑒𝑟𝑏𝑜(𝑣) 𝑆𝑁 𝑛
𝑆𝑉 𝑣 → 𝑉𝑒𝑟𝑏𝑜 𝑣
𝑆𝑁 𝑛 → 𝐴𝑟𝑡𝑖𝑔𝑜 𝑎 𝐴𝑑𝑗𝑠 𝑗 𝑆𝑢𝑏𝑠𝑡𝑎𝑛𝑡𝑖𝑣𝑜 𝑛
𝑆𝑢𝑏𝑠𝑡𝑎𝑛𝑡𝑖𝑣𝑜 𝑏𝑎𝑛𝑎𝑛𝑎 → 𝑏𝑎𝑛𝑎𝑛𝑎

Cada regra tem uma probabilidade associada. Na primeira, a probabilidade é alta para (𝑣, 𝑛) = 𝑐𝑜𝑚𝑒𝑟, 𝑏𝑎𝑛𝑎𝑛𝑎 ,
mas baixa para 𝑣, 𝑛 = (𝑐𝑜𝑚𝑒𝑟, 𝑏𝑎𝑛𝑑𝑎𝑛𝑎).
Percepção e ação
Tradução automática

Alguns sistemas tentam transformar o conhecimento transmitido pelo texto em uma representação de
conhecimento interlíngua, e geram sentenças na linguagem alvo a partir dessa representação. Porém, isso é difícil
porque envolve 3 problemas não resolvidos: a criação de uma representação do conhecimento geral, a análise dessa
representação e a geração de sentenças a partir dessa representação.

Outros usam um modelo de transferência, no


qual é mantida uma base de regras de
tradução de forma que sempre que as regras
combinam, ocorre a tradução direta. Ela pode
ocorrer no nível lexical, sintático ou semântico.
Percepção e ação
Tradução automática

Porém, os sistemas de tradução automática de maior sucesso são baseados em modelos probabilísticos. Nesses
sistemas, o objetivo (por exemplo, para traduzir uma sentença do inglês para o francês) é encontrar uma cadeia
de palavras 𝑓 ∗ que maximiza:

𝑓 ∗ = max 𝑃 𝑓 𝑒 = max 𝑃 𝑒 𝑓 × 𝑃(𝑓)


𝑓

Probabilidade Probabilidade Probabilidade


da sentença da sentença da sentença
em francês ser em inglês ser ser uma
tradução da tradução da sentença no
sentença em sentença em francês.
inglês. francês.

O sistema aprende a partir de um corpus composto por textos escritos nos dois idiomas.
Percepção e ação
Tradução automática

Em um corpus infinitamente grande, a tradução seria uma mera tarefa de pesquisa (afinal todas as sentenças
estariam presentes nele). Como esse não costuma ser o caso, é preciso separar o texto em sintagmas, encontrar
sintagmas correspondentes e permutar esses sintagmas correspondentes.
Percepção e ação
Reconhecimento de voz

Reconhecimento de voz traz alguns desafios adicionais, uma vez que a fala rápida nem sempre inclui pausas (que
em um texto escrito são representadas por espaços), que palavras diferentes podem possuir o mesmo som, e que
letras iguais podem ter sons diferentes em palavras diferentes.

Mais uma vez, modelos probabilísticos (como cadeias de Markov) e suas propriedades podem nos ajudar . Apesar
de soarem semelhantes, “vestir um tênis” tem muito maior probabilidade de ser uma sentença válida do que
“vestir um pênis” .

Assim, o primeiro passo é discretizar o sinal de áudio


recebido em diversos quadros de uma duração fixada.
Cada quadro é resumido por um vetor de
características,
Percepção e ação
Reconhecimento de voz

Para um idioma, podemos identificar e


listar os fonemas, as menores unidades
de som que tem significado distinto para
os falantes de uma
língua em particular.
Percepção e ação
Reconhecimento de voz

Dessa forma, as características podem ser usadas para identificar fonemas, e os fonemas são usados para
identificar palavras. Os modelos devem levar em conta variações de dialeto e articulação.
Percepção e ação
Formação de imagens

A maneira mais simples de formar uma imagem é


usar uma câmara escura, que possui um pequeno
orifício através do qual fótons passam e formam
uma imagem invertida no fundo da câmara. Um
orifício muito pequeno implica em uma imagem
escura, porém um orifício grande produz uma
imagem desfocada.
Percepção e ação
Formação de imagens

Olhos e câmeras contornam esse problema usando lentes. Eles possuem uma faixa de profundidade (dentro da
qual imagens podem ser focalizadas) limitada, mas lentes podem mudar de forma (no caso de olhos) ou podem
mudar de posição (no caso de câmeras).
Percepção e ação
Formação de imagens

Os sensores de imagem reúnem luz espalhada a partir de objetos em uma cena e criam uma imagem bidimensional.
Nas câmeras, a imagem é formada em um plano da imagem, que costuma ser uma grade retangular de alguns
milhões de pixels fotossensíveis.

Cada fóton que chega ao sensor produz um efeito cuja


força depende do comprimento de onda do fóton. A
saída do sensor é a soma de todos os efeitos, devido
aos fótons observados em alguma janela de tempo, o
que significa que os sensores de imagem relatam uma
média ponderada da intensidade da luz que chega ao
sensor.
Percepção e ação
Formação de imagens

A lei de Lampert prevê que os pixels da imagem brilhante vêm de trechos da superfície que confrontam a luz
diretamente, e pixels escuros vêm dos trechos que veem a luz apenas tangencialmente.

Por fim, o princípio da tricromacia afirma que, para qualquer densidade de energia espectral, não importa o quão
complicado, é possível construir outra densidade de energia espectral constituída por uma mistura de apenas três
cores — geralmente vermelho, verde e azul — de tal forma que um ser humano não possa dizer a diferença entre
os dois.

Assim, ue algoritmos de visão computacional podem trabalhar com três albedos diferentes para R/G/B.
Percepção e ação
Efeitos de perspectiva

Imagens distorcem a
aparência dos objetos
devido a uma série de
efeitos.

Levar em conta esses


efeitos através de
A lua parece do tamanho da mão.
modelos que os
preveem é essencial
para identificar
imagens.
Trilhos parecem se encontrar.
Percepção e ação
Detecção de arestas

Arestas são linhas retas ou curvas no


plano da imagem nas quais ocorre
uma mudança significativa de brilho.
Elas costumam ocorrer em partes
cruciais para a definição do contorno
de um objeto. Assim, uma imagem
mais compacta e abstrata pode ser
obtida. As arestas são identificadas
procurando-se por locais em que o
brilho sofre uma mudança brusca.
Percepção e ação
Fluxo óptico

Em sequências de imagens (vídeos), o campo vetorial de


fluxo óptico é calculado encontrando-se pontos
correspondentes em duas cenas, e calculando o
deslocamento sofrido por esses pontos. As
correspondências podem ser encontradas considerando que
a vizinhança imediata dos pontos tende a ser semelhante
nos dois quadros. Além de determinar as partes da
imagem que estão se movendo e o tipo de movimento, o
fluxo óptico também pode ser usado para estimativa de
distância, uma vez que uma câmera em movimento faz
com que objetos próximos tenham movimento aparente
mais rápido.
Percepção e ação
Segmentação

Na segmentação, separamos a imagem em


regiões de pixels semelhantes (em brilho, cor
ou textura). Formalmente, isso é feito
calculando a probabilidade de que exista
uma curva de contorno em cada pixel ao
longo de cada orientação com base na
vizinhança local. Outra possibilidade é
agrupar pixels em regiões com base em
brilho, cor e textura.
Percepção e ação
Detecção de objetos pela aparência

Alguns objetos, como bolas de


beisebol ou rostos de frente,
variam muito pouco a sua
aparência em qualquer
circunstância. Nesse caso,
podemos calcular um
conjunto de recursos
descrevendo cada classe de
imagens com probabilidade de
conter o objeto e, em seguida,
testá-lo com um classificador.
Percepção e ação
Detecção de objetos pela aparência

Para isso, passamos construímos uma janela que é passada sobre a imagem,
constrói atributos com base nos pixels englobados e entrega esses atributos a
um classificador.

Como o tamanho de janela escolhido dificilmente será o tamanho de janela


que aparece na foto, provavelmente registraremos várias janelas. O
classificador deve funcionar de forma a converter uma alta concentração de
classificações positivas em uma correspondência única.

Dados de treinamento são fáceis de serem obtidos, e podem ser modificados


(girados, invertidos ou tendo propriedades como brilho e contraste alteradas)
para cobrir outros casos.
Percepção e ação
Detecção de objetos pela aparência

Entretanto, outros objetos produzem padrões muito mais complexos porque diversos efeitos podem mudar sua
aparência.
Percepção e ação
Detecção de objetos pela aparência

Nesses casos, a pesquisa de localização e


escala ainda pode funcionar porque alguma
estrutura está presente nas imagens
produzidas pelo objeto. No caso, de um
carro, faróis, portas, rodas e janelas estão
presentes. Definimos esses elementos como
objetos padrão e, caso a maioria dos
objetos padrão esteja presente no lugar
certo da imagem, ela pode ser identificada.
Percepção e ação
Representação tridimensional

Um objeto tridimensional pode ser reconstruído


através de diversos quadros bidimensionais obtidos
movendo-se suavemente a câmera.

Para isso, é preciso identificar pontos


correspondentes em vários quadros (usando o
conceito de fluxo óptico) e triangular suas posições e
distância.
Percepção e ação
Representação tridimensional

Se partirmos da premissa de que uma textura é homogênea, podemos estimar distâncias e formas de objeto
usando variações em texturas.
Percepção e ação
Modelos deformáveis

Ao passo que janelas deslizantes permitem


identificar pessoas, saber o que tais pessoas estão
fazendo é mais complicado, uma vez que isso
requer saber onde estão seus braços e pernas, e
esses elementos são muito pequenos e muito
variáveis para que janelas deslizantes os
identifiquem com precisão.

Porém, isso pode ser contornado definindo-se um modelo de corpo humano (composto por partes fixas e móveis,
além de regras sobre esse movimento), e calculando-se a probabilidade de que uma região da imagem se encaixe
nesse modelo.
Percepção e ação
Anotação

Anotação é o processo
de inserir
correspondências entre
certos elementos da
imagem e palavras.

Essa tarefa pode ser


feita com aprendizado
de máquina, usando
um conjunto
corretamente anotado
para treinamento.
Percepção e ação
Geração e discriminação

Usando redes neurais, podemos gerar imagens através de palavras-chave combinando um conjunto de imagens
reais de entrada anotadas, que o gerador utiliza para compor imagens falsas a partir de anotações e um
discriminador, que recebe uma imagem real e uma falsa, e deve classificar corretamente qual é qual.

A tarefa é desenvolvida e
melhorada na medida em
que o gerador procura
enganar o discriminador.
Percepção e ação
Robótica

Robôs são agentes físicos que executam tarefas manipulando o mundo físico. Para isso, eles são equipados com
efetuadores (que exercem força sobre o ambiente) e com sensores (que lhes permitem perceber o ambiente).

Manipuladores (ou braços robóticos) são


fixamente ancorados ao seu local de
trabalho. Robôs móveis se deslocam pelo
ambiente com rodas, pernas ou
mecanismos semelhantes. Já robôs
humanoides têm estrutura que imita o
corpo humano e seus movimentos. Além
disso, essa área também engloba próteses,
ambientes inteligentes e enxames de robôs
cooperativos.
Percepção e ação
Sensores
Sensores permitem que robôs coletem informações sobre o mundo e sobre si mesmos.
Giroscópio
Sensor de som Sensor de pressão
Fotoresistor Sensor de
de líquido
tensão

Sensor de
proximidade a Sensor de
Sensor de Sensor de contato Sensor de
laser umidade
temperatura inclinação
Sensor de
proximidade
ultrassônico
Magnetômetro
GPS
Câmera de tempo de Sensor de
Sensor de proximidade
voo. Acelerômetro presença
infravermelho Tag UWB
Sensor de de gás
pressão de
gás

Bússola
digital
Percepção e ação
Energia e atuadores

Robôs podem receber energia elétrica de diversas formas. Os atuadores são responsáveis por converter energia
Pilha
descartável Bateria de elétrica, hidráulica ou pneumática em energia mecânica
Pilha
chumbo
recarregável (trabalho). Eles geram a potência mecânica que
permite o movimento.

Atuador
pneumático
Célula de Motor de servo Atuador
hidrogênio hidráulico

Painel Célula de
Motor DC Motor DC com
solar rádioisótopo
caixa de redução

Motor de passo
Percepção e ação
Graus de liberdade

Contamos um grau de liberdade para cada direção


que um robô ou seus efetuadores podem se mover.

Para o estado cinemático (ou pose), isso engloba 3


direções e 3 rotações. O estado dinâmico inclui uma
dimensão adicional para a taxa de mudança de cada
direção cinemática.
Percepção e ação
Graus de liberdade

Há uma distinção entre graus efetivos de liberdade (aqueles que


robô pode realizar) e graus controláveis de liberdade (aqueles
que podem ser controlados diretamente).

Um carro, por exemplo, pode estar em qualquer ponto de um


plano bidimensional, além de poder assumir qualquer ângulo no
eixo 𝑧. Entretanto, apenas dois desses graus de liberdade são
controláveis diretamente.

Robôs ou componentes que possuem o mesmo número de graus


efetivos e controláveis são chamados de holonômicos.
Percepção e ação
Transmissão de movimento

Diversos componentes de baixo nível podem ser usados para transmissão de movimento.
Correia
Cremalheira dentada
Engrenagem Engrenagem Engrenagem
reta cônica sem fim

Correia plana Correia circular


Percepção e ação
Movimento

Partes de robôs podem se mover graças às juntas. E robôs podem se mover graças a uma série de
Junta colinear Junta ortogonal aparatos.
Rodas
Esteira

Junta rotacional Junta de torsão


Pernas

Junta de revolução Hélice Propulsor


Percepção e ação
Localização de Monte Carlo

Para determinar a localização e a orientação do robô, o algoritmo funciona em cada iteração gerando estados
hipotéticos aleatórios, realizando uma observação (talvez acompanhada de um movimento), atualizando os estados
e dando um peso menor para os estados menos prováveis de terem gerado aquela observação.
Estados hipotéticos (partículas) são gerados
aleatoriamente.

O robô detecta uma porta, e atualiza o peso


das partículas com base na probabilidade de
que elas tenham produzido a observação.

Um novo conjunto de partículas é gerado,


agora com o novo estado de crença (o robô
está em uma das portas). Resta descobrir em
qual.
Percepção e ação
Localização de Monte Carlo

Para determinar a localização e a orientação do robô, o algoritmo funciona em cada iteração gerando estados
hipotéticos aleatórios, realizando uma observação (talvez acompanhada de um movimento), atualizando os estados
e dando um peso menor para os estados menos prováveis de terem gerado aquela observação.
O robô se move para a direita, e as partículas
também se movem junto.

O robô não detecta nenhuma porta, e os pesos


para as partículas são atualizados.

O robô gera um novo conjunto de partículas, a


maioria delas centrada nas partículas com
maior peso.
Percepção e ação
Localização de Monte Carlo

Para determinar a localização e a orientação do robô, o algoritmo funciona em cada iteração gerando estados
hipotéticos aleatórios, realizando uma observação (talvez acompanhada de um movimento), atualizando os estados
e dando um peso menor para os estados menos prováveis de terem gerado aquela observação.
O robô se move para a esquerda, e as
partículas também se movem junto.

O robô detecta uma porta, e os pesos para as


partículas são atualizados.

O robô gera um novo conjunto de partículas, a


maioria delas centrada nas partículas com
maior peso. Nesse ponto, o robô se localizou
com sucesso.
Percepção e ação
Decomposição em células

Nosso objetivo agora é movimentar o robô de forma a sair de um


estado inicial e chegar a um estado final, ou estado objetivo.

A abordagem da decomposição em células divide o espaço em


regiões conectadas (células), determina quais células são
adjacentes, quais contém o objetivo inicial e final e procura por um
caminho entre elas.

Porém, essa abordagem requer que a célula seja inteiramente livre ou contenha uma obstrução. Caso contrário,
podem haver colisões. Além disso, o robô teria dificuldade em operar em caminhos muito apertados nos quais essa
divisão não seja possível.
Percepção e ação
Esqueletização

Aqui, representamos o espaço de busca de forma mínima.

Podemos usar um grafo de visibilidade, que contém caminhos


unindo todos os pares de vértices que são visíveis entre si.

Já um diagrama de Voronoi
computa no eixo 𝑧 a distância de
cada ponto ao obstáculo mais
próximo, e traça linhas em pontos
que são equidistantes de dois ou
mais obstáculos. Diagramas do
tipo podem ser combinados com
vias que encurtam caminhos.
Percepção e ação
Planejamento de movimentos finos

Em algumas situações, nosso objetivo se torna O objetivo é entrar com o robô no buraco.
planejar movimentos pequenos e precisos, em O primeiro movimento garantido
é andar para frente com certa
escalas nas quais o ambiente não é inteiramente velocidade. Não sabemos em que
ponto do cone vamos terminar,
conhecido e o robô é incapaz de se movimentar
mas é garantido que terminamos
com precisão. colidindo com a parede à
esquerda do buraco.

Nessa situação, usamos movimentos garantidos,


O segundo movimento garantido
que são movimentos descritos por um comando e é deslizar ao longo da superfície
até encontrar o buraco. Não
uma condição final que sempre será obtida. A sabemos onde estamos no cone,
mas estar à esquerda do buraco
sequência de movimentos é garantida de terminar
nos garante que eventualmente o
no objetivo, apesar de haver incerteza quanto ao encontraremos.

caminho percorrido.
Percepção e ação
Controladores

Robôs em uma rota determinada podem desviar do caminho por uma série de fatores, como ruídos ou forças
inesperadas. Um controlador tem a tarefa de manter o robô no caminho correto. Uma forma simples de tentar
resolver o problema é exercer uma força em sentido contrário proporcional à força de erro. Controladores que
fazem isso são chamados de controladores P (de “proporcional”).

O problema dessa abordagem é que isso faz com que o


robô vibre de maneira bastante violenta, e o movimento
resultante fica longe do desejável.
Fator de ganho
proporcional

𝑎𝑡 = 𝐾𝑝 𝑦 𝑡 − 𝑥𝑡
Controle Diferença entre posição
esperada e posição real
Percepção e ação
Controladores

Por outro lado, um controlador é dito estável se pequenas perturbações levam a um erro limitado entre o robô e
o sinal de referência, e perfeitamente estável caso o robô possa retornar ao seu caminho de referência. O
controlador P não é perfeitamente estável, mas o chamado controlador PD (de “proporcional” e “derivada”) é.
Isso é feito adicionando um termo derivado que “amortece” o controle em certas situações.

Fator de ganho Fator de ganho


proporcional diferencial

𝜕(𝑦 𝑡 − 𝑥𝑡 )
𝑎𝑡 = 𝐾𝑝 𝑦 𝑡 − 𝑥𝑡 + 𝐾𝐷
𝜕𝑡
Controle Diferença entre posição
esperada e posição real Taxa de variação, em
relação ao tempo, da
diferença entre posição
esperada e posição real
Percepção e ação
Controle de campo potencial

Uma possibilidade que não requer planejamento prévio é


gerar um campo potencial da região em que o robô pode
percorrer. Esse campo tem como único mínimo global, e tem
como máximos locais os obstáculos.

Assim, a tarefa do robô se resume a uma tarefa de descida


de gradiente.

Em muitas situações, gerar esse campo é extremamente


simples. Porém, o robô pode ficar preso em mínimos locais.
Percepção e ação
Controle reativo

Em algumas situações, não temos precisão suficiente para criar


um modelo de ambiente, ou temos capacidade computacional
limitada para utilizar um modelo do tipo.

Nessas situações, regras de reação


podem ser úteis. Por exemplo, um robô
que anda sobre terreno acidentado
pode possuir uma regra para sair de
uma situação na qual ele fique
paralisado.
Percepção e ação
Aprendizado de máquina e ação

O aprendizado de máquina também


pode ser utilizado para melhorar a
ação dos robôs. Por exemplo, um
robô que procura por terreno
navegável pode aprender novos tipos
de terrenos e assim classifica-los
corretamente.

Já o aprendizado por reforço pode


ser usado para aprender políticas
mais eficientes a partir de
recompensas.
Percepção e ação
Chutar robôs

Recentemente, pessoas se sensibilizaram


com vídeos (reais) de empregados da Boston
Dynamics chutando robôs. Alguns
suspeitaram que tais robôs poderiam se
rebelar contra os humanos.

De um ponto de vista técnico, esses vídeos


mostram uma capacidade impressionante do
controlador de tais robôs. De um posto de
vista filosófico, tais “abusos” são justamente
o que permitiram que os controladores
chegassem a essa capacidade.
Percepção e ação
Arquitetura de pipeline

Já verificamos que robôs são estruturas


complexas, nas quais diversos sistemas e
processos devem funcionar em harmonia.
Restar combinarmos tudo isso em uma
unidade funcional.

A arquitetura em pipeline trabalha com


camadas em ordem, que entregam
resultados para as próximas camadas.
Percepção e ação
Protocolos de comunicação

Um sistema composto por diversos dispositivos requer que eles se comuniquem entre si usando um protocolo
definido, e existem inúmeros protocolos de comunicação que garantem que a interação entre os dispositivos seja
adequada para a tarefa a ser desempenhada. Um protocolo de comunicação precisa especificar:

▪ Formatos de dados, uma vez que cada dispositivo precisa ser capaz de diferenciar informações da mensagem do
conteúdo da mensagem em si.

▪ Endereçamento, uma vez que é preciso identificar tanto o emissor quanto o receptor de uma mensagem.

▪ Mapeamento, caso seja necessário converter entre tipos diferentes de endereços.

▪ Roteamento, já que a mensagem pode passar por dispositivos intermediários que devem encaminhá-la.
Percepção e ação
Protocolos de comunicação

▪ Detecção de erros, já que dados podem ser corrompidos durante a transmissão. Uma forma de checar se a
mensagem recebida é de fato a mensagem transmitida costuma ser necessária.

▪ Confirmação do recebimento correto de informação.

▪ Perda de informação, uma vez que dados ou mensagens podem se perder durante a transmissão. Pode ser
necessário retransmitir informação nesses casos.

▪ Direção da transmissão, uma vez que certos canais podem comportar fluxo de informação em apenas um
sentido, em apenas um sentido por vez, ou em dois sentidos.
Percepção e ação
Protocolos de comunicação

▪ Controle de sequência, já que a informação pode ser dividida em pacotes e esses pacotes podem chegar fora de
ordem.

▪ Controle de fluxo, já que a informação pode chegar mais rapidamente do que o receptor é capaz de processar.

▪ Filas, já que múltiplas mensagens podem acumular.


Percepção e ação
Protocolos de comunicação

Protocolos modernos costumam empregar uma organização


em camadas, que divide as tarefas em partes mais simples
de serem desenvolvidas e testadas, permitindo também que
cada camada produza e receba dados em um formato pré-
definido, mas tenha liberdade para operá-los em seu
interior.

Porém, esse assunto foge do escopo da inteligência artificial.


Tudo o que precisamos saber é que dispositivos de
inteligência artificial usam tais protocolos (e há uma
infinidade deles) para se comunicar entre si com sucesso.
Percepção e ação
Internet das coisas

O conceito de internet das coisas (IoT)


descreve objetos físicos equipados com
sensores, capacidade de processamento,
software e outras tecnologias que captam,
processam e enviam dados para outros objetos
e para a internet.

O barateamento do hardware necessário para


construção destes dispositivos os torna cada
vez mais comuns, e permite que cada vez mais
aspectos das nossas vidas envolvam
automação, robótica e inteligência artificial.
Aplicações
Objetivo

Nesse momento, nós sabemos o que diversos termos (que designam técnicas de inteligência artificial) significam, e
como essas técnicas funcionam.

Porém, a maioria das aplicações envolve um conjunto de técnicas. Esse vídeo é destinado a explicar como as
principais aplicações que conhecemos funcionam.

Alguns temas, apesar de serem abordados aqui, provavelmente merecem vídeos (na série Desmistificando)
dedicados a eles.

Os temas serão abordados em uma ordem que visa mesclar complexidade e aplicações relacionadas.
Aplicações
Jogos simples

Os algoritmos que estudamos servem


para resolução de desafios (como o
problema da travessia) ou para jogos
simples (como jogo da velha), porém
deixam de ser suficientes para jogos mais
complexos.
Aplicações
Xadrez

Deep Blue, um sistema desenvolvido pela IBM, Para isso, a rede neural recebe a organização do tabuleiro nas
funcionava pesquisando em árvores de busca a últimas jogadas, e decide quais movimentos tem maior
uma taxa de 2,5 milhões de posições por probabilidade de sucesso. Esses movimentos têm suas árvores
segundo. de busca pesquisadas. Ao longo do tempo, a precisão dessas
decisões melhora.
AlphaZero, uma rede neural, recebeu nenhum
tipo de informação prévia exceto pelas regras
do xadrez. Começando com movimentos
aleatórios, a inteligência artificial jogou contra
si mesma e, em duas horas, começou a ganhar
de jogadores humanos. Em quatro horas,
derrotou o melhor motor de xadrez até então.
Aplicações
Pôquer

De forma semelhante ao AlphaZero,


Pluribus, uma inteligência artificial, foi
capaz de vencer profissionais no pôquer
Texas Hold’em.

Usando aprendizado reforçado, a inteligência


artificial começa jogando de forma mais ou
menos aleatória, e reforça comportamentos
que rendem mais dinheiro. Após cada
partida, ela verifica também se teria
ganhado mais dinheiro com outras escolhas,
e usa essas informações para aprender.
Aplicações
Jogos de perguntas e respostas

O problema de exibir resultados curtos


para buscas pode ser simplificado em
responder a jogos de perguntas e
respostas.

Watson, um computador da IBM que


completou competições do tipo, é capaz
de retornar respostas a partir de
computação paralela e “mais de 100
diferentes técnicas de análise de
linguagem natural, identificação de fontes
e geração de hipóteses”.
Aplicações
Akinator

Akinator é um jogo que propõe, através de perguntas, “adivinhar” em quem o jogador está pensando – e ele acerta
desde pessoas públicas, relações do jogador (como “mãe” ou “pai”) até personagens ficcionais – passando por todos
os níveis de popularidade.
O código fonte do Akinator não é conhecido, porém sabemos que ele trabalha
com:
▪ Adivinhações erradas solicitam o envio do personagem e de sua foto, então essas
informações são incluídas. Advinhações certas reforçam o aprendizado.
▪ Responder cada pergunta altera a probabilidade de que cada resposta seja a
correta. Ele ainda pode acertar se você mentir algumas em perguntas.
▪ Informações demográficas ajudam alteram a probabilidade de que cada resposta
esteja correta.
▪ Termos comuns de pesquisa e palavras chave associadas a uma personalidade
ajudam o programa a formular perguntas importantes.
Aplicações
Identificação de sentimento

Definir o sentimento transmitido por um texto é uma tarefa de classificação. Tal tarefa é útil para que possamos
analisar de forma automática as reações do público perante certo evento, como um produto, uma atualização ou
o desempenho de um candidato em um debate.

Ao passo em que identificar o sentimento de frases nas quais palavras positivas são usadas em um contexto
positivo (ou vice-versa) é uma tarefa relativamente fácil, outras frases podem constituir um verdadeiro desafio.
Aplicações
Extração de palavras chave

Com processamento de linguagem natural, é


possível extrair informações relevantes de
um texto e classifica-las.

Certas ferramentas
(https://www.meaningcloud.com/demos/tex
t-analytics-demo) são capazes de identificar
os locais, pessoas, eventos e datas mais
importantes, além de classificar o texto no
tema mais provável.
Aplicações
Robôs de chat

O propósito de programas do tipo é simular uma conversa (por texto, ou usando um sintetizador de voz) que o
usuário teria com um humano real. Há uma imensa gama de robôs do tipo, desde programas usados para
atendimento automático ao consumidor até programas que se propõe a manter conversas com usuários. Diversas
técnicas podem ser usadas para produzir um robô (e a escolha destas dependerá do propósito do robô).

Combinações de padrão podem ser usadas


para responder a perguntas mais simples.
Aqui, o robô converte uma pergunta em
linguagem natural para uma sentença
padronizada com caracteres curinga, e
procura por resultados que satisfaçam a
esse padrão.
Aplicações
Robôs de chat

Através do entendimento de linguagem natural, pode-se converter uma sentença em linguagem natural em
intenções (uma ação ou requisição o usuário deseja realizar ou obter) e entidades (que complementam a intenção).

E através do processamento de linguagem natural (aliado ao uso de redes neurais), pode-se aprender com exemplos
de conversas válidas (e com notas dadas pelo usuário após uma interação) e produzir sentenças com alto grau de
probabilidade de (a) serem válidas na linguagem natural e (b) serem correspondentes ao que foi sugerido.
Aplicações
Robôs de chat

Com isso, diversas pessoas são capazes de produzir toda uma gama de robôs
(https://www.gearpatrol.com/tech/a353837/chatbots-loebner-prize-turing-test/) que conversam com o usuário de
forma natural e, mesmo que esses robôs ainda não consigam enganar a maior parte dos jurados em competições,
eles produzem conversas interessantes.
Aplicações
Robôs de chat

Robôs que aprendem com os usuários podem vir


também reproduzir comportamentos nocivos destes
usuários, especialmente se eles são introduzidos
deliberadamente e se não há quaisquer filtros para
evitar que isso ocorra.

Foi o que aconteceu com um robô introduzido pela


Microsoft no Twitter
(https://www.theverge.com/2016/3/24/11297050/tay-
microsoft-chatbot-racista), que começou a reproduzir
todo tipo de falas questionáveis em pouco tempo de
operação.
Aplicações
Assistentes virtuais

Um assistente virtual é um software (as vezes vinculado com um hardware


próprio, as vezes associado a outro software) que pode realizar tarefas a partir
de comandos do usuário. Tais programas não são destinados propriamente a
manter conversas, mas sim a converter um comando em linguagem natural para
a realização correta de uma tarefa.

Além disso, assistentes virtuais podem ser conectados a outros dispositivos


(como os controles de uma casa inteligente) para realizar ampliar a gama de
operações. Aprendizado de máquina (através do usuário) pode ser usado, e isso
levanta questões éticas a respeito de privacidade e coleta de dados. O conjunto
de treinamento pode requerer dados produzidos por microtrabalho, o que
levanta questionamentos sobre as condições de trabalho das pessoas envolvidas.
Aplicações
Google Maps

O Google Maps possui uma representação do terreno e das vias sobre ele
bastante completa, formada por uma combinação de dados de terceiros,
parcerias com instituições e sensoriamento próprio. De posse dessa
representação, encontrar o caminho mais curto de um ponto em direção a
outro é uma tarefa computacional relativamente simples de ser entendida, e
pode ser resolvida pelos algoritmos de busca que já estudamos.

Além disso, milhares de usuários colaboram diariamente (e sem perceber)


com informações sobre as vias percorridas e tempos de percurso, o que
permite ao aplicativo deduzir o movimento em dado momento, bem como
prever o movimento para determinado dia e horário. As informações de
usuários do Waze, adquirido pela Google, também têm um papel importante.
Aplicações
Tradução automática

A tradução automática do Google Tradutor usava parâmetros estatísticos, de forma que a tradução é feita
encontrando-se a cadeia de caracteres mais provável de ser a tradução da cadeia original. Desde 2016, um
sistema com redes neurais vem sendo usado para melhorar a tradução estatística, e tem obtido sucesso

A tradução estatística é frequentemente indireta: ao invés de fornecer 109 × 108 = 11772 modelos estatísticos
para traduzir cada uma das 109 linguagens disponíveis para outra, a tradução de 𝐴 para 𝐵 normalmente
acontece da forma:
𝐴 → 𝐼𝑁𝑇 → 𝐵
Em que 𝐼𝑁𝑇 é uma linguagem intermediária, geralmente inglês.
Aplicações
Tradução automática

O modelo é treinado com exemplos (textos escritos em duas linguagens),


e isso leva a alguns problemas. O primeiro deles é que a frequência de
exemplos muitas vezes reflete estigmas sociais, e esses estigmas são
reforçados nas traduções.

Por exemplo, se a maioria dos textos contém 𝑑𝑜𝑐𝑡𝑜𝑟 pareado com 𝑚é𝑑𝑖𝑐𝑜
e 𝑛𝑢𝑟𝑠𝑒 pareado com 𝑒𝑛𝑓𝑒𝑟𝑚𝑒𝑖𝑟𝑎, o tradutor irá provavelmente
apresentar essas traduções se o gênero do sujeito não puder se inferido no
resto da frase, por mais que 𝑚é𝑑𝑖𝑐𝑎 e 𝑒𝑛𝑓𝑒𝑟𝑚𝑒𝑖𝑟𝑜 também sejam
traduções igualmente válidas.
Aplicações
Tradução automática

Outro problema é que o tradutor não está treinado para traduzir textos que não fazem sentido (como texto em
outro idioma, com espaços em locais indevidos ou simplesmente sem nenhum nexo), então a entrada desses textos
produz resultados no mínimo curiosos, especialmente em linguagens pouco faladas.

Isso acontece porque essas linguagens possuem um corpo de


treinamento muito pequeno (geralmente composto ou de textos
religiosos ou de resoluções políticas internacionais). Portanto, ao
receber texto inesperado, o tradutor devolve algo que é comum
no idioma esperado para tradução (e que faça sentido, já que essa
probabilidade também é relevante). Como o conjunto de
treinamento compreende em sua maior parte textos de uma certa
categoria (por exemplo, religioso), então o resultado também
parecerá pertencer a essa categoria.
Aplicações
Reconhecimento óptico de caracteres

Essa tarefa corresponde a, partindo de uma fotografia de um texto, convertê-la em caracteres identificáveis por
um computador. Programas do gênero normalmente começam com uma fase de pré-processamento, que procura
aumentar as chances de uma detecção bem sucedida melhorando a qualidade da imagem, identificando a
organização textual e os tipos de caracteres empregados.

Então, os caracteres são identificados ou através da


comparação da imagem com símbolos armazenados de
forma pixel a pixel, ou pela extração de características
chave, que permitem produzir um vetor e compará-lo com
vetores de símbolos armazenados. Adicionalmente, uma
segunda análise pode usar as letras identificadas com maior
precisão para deduzir as letras ainda não identificadas.
Aplicações
Reconhecimento óptico de caracteres

Essa tarefa é aplicada em uma plenitude de


situações, como reconhecimento do texto nas
placas de veículos em radares de velocidade,
extração automatizada de informação presente
em documentos, digitalização e conversão de
acervos em documentos buscáveis.
Aplicações
Síntese de voz a partir de texto

Essa tarefa se resume em converter um texto para um


áudio falado. O primeiro passo é converter o texto
inserido em algo que o computador possa interpretar.
Isso parece fácil, mas certos casos merecem atenção
(tais como determinar se um número de 4 dígitos é
uma quantidade, um ano ou uma sequência numérica).

Em seguida, é preciso converter o texto a ser lido em fonemas – os blocos que compõe a linguagem falada. Ao
passo em que manter uma base de dados com gravações de fonemas é algo simples, fazer o mesmo para palavras
seria inviável para propósito geral. Porém, a segunda abordagem produz frases mais naturais, e funciona melhor
em contextos limitados.
Aplicações
Síntese de voz a partir de texto

Uma abordagem para produzir a voz é unir os fonemas, que podem ser obtidos a partir de uma base de dados de
textos lidos e transcrições correspondente, devendo o programa quebra-los e uni-los conforme necessário.

Porém, se considerarmos que a voz é apenas um


som que varia em amplitude e frequência, podemos
utilizar um computador para gerar sons de voz sem
nenhuma base predefinida.

A abordagem de concatenação produz vozes mais


naturais, mas fica limitada ao ator de voz presente
e talvez a um conjunto pequeno de palavras. Já a
abordagem de síntese cobre um escopo maior, mas
produz voz mais robotizada.
Aplicações
Corretor ortográfico e sugestões

O corretor ortográfico tem a função de sugerir mudanças para palavras escritas erroneamente, bem como sugerir a
próxima palavra de uma frase.

Uma primeira possibilidade é, para cada palavra, calcular a distância


entre ela e palavras de um dicionário. Caso seja encontrada alguma
com distância 0, a palavra está correta. Caso contrário, então retorna-
se a com menor distância.

Uma abordagem probabilística envolve um modelo de trigrama, no


qual contexto passa a ter importância.
Aplicações
Google Lens

O objetivo principal é identificar objetos em uma cena. Os objetos são feitos usando uma rede neural e
procurando comparar os objetos vistos com imagens conhecidas.

Além disso, textos e outros elementos nos objetos podem


permitir ao aplicativo levantar mais informações (como
a marca de um produto). O aplicativo também
acompanha um leitor de códigos de barra e QR.

Além disso, o aplicativo também realiza funções


cotidianas a partir de informação do ambiente, como
calcular a divisão de uma conta de restaurante ou
indicar os passos de uma receita.
Aplicações
Identificação de animais

Em pesquisas ou esforços de preservação, tecnologias parecidas


podem ser usadas para identificação e registro de animais, bem como
número de indivíduos, presença de filhotes e ações realizadas por eles
(https://www.pnas.org/content/115/25/E5716).

Diversos outros fatores tornam essa tarefa mais difícil.


Aplicações
Filtros de conteúdos impróprios

Diversas redes sociais possuem serviços que identificam imagens e vídeos com conteúdo inapropriado (como
pornografia) e os bloqueiam imediatamente (https://www.researchgate.net/figure/The-challenging-task-of-
pornography-detection-We-have-formed-our-database-both-to-be_fig7_220482250) . Ao passo em que alguns
sistemas envolvem um revisor humano, outros detectam conteúdo de forma automatizada, e enviam apelações
do usuário para um revisor humano.

Classificadores geralmente são treinados com


dados classificados, e extraem características
desses dados. Ao receber um novo item, o
classificador verifica essas características, e usa
pesos para classificar o conteúdo como próprio
ou impróprio.
Aplicações
Filtros de conteúdos impróprios

Ao passo em que distinguir entre pornografia e um vídeo de jogo


de futebol é uma tarefa trivial, outros casos de não pornografia
(como amamentação, lutas ou cenas com pessoas em roupa de
Imagens
banho) são muito mais desafiadores. pornográficas
aqui.

Eu
evidentemente
censurei esse
trecho do
artigo
original.
Aplicações
Filtros de SPAM e conteúdo enganoso

Tais filtros são usados em serviços de e-mail para detectar mensagens de SPAM e em navegadores para detectar
sites com phishing.

O primeiro tipo de filtro costuma envolver identificar quais são os termos que melhor caracterizam uma mensagem
de SPAM, além de analisar o remetente (uma mensagem suspeita vinda de um contato conhecido pode ser aceita,
mas a mesma mensagem vinda de um e-mail desconhecido não) e a presença de links suspeitos e anexos.

Um filtro de navegador pode chegar se o site em questão é um site conhecido e respeitado (comparando seu ranking
em um mecanismo de busca, ou estatística de navegação coletadas) e procurar pela presença de campos comumente
enganosos, como solicitando senha e e-mail. Sites muito semelhantes a sites conhecidos mas em links inesperados
podem servir de sinal de alerta.
Aplicações
Caracterização facial

Caracterização facial é o processo de,


a partir da imagem de um rosto,
deduzir informações como sexo, idade
e expressão facial. Redes neurais
podem ser usadas em duas
abordagens: para categorizar emoções
(portanto, partindo de uma
interpretação categórica) ou para
atribuir valores à diversos eixos, que
juntos definem o estado emocional do
indivíduo (portanto, partindo de uma
definição dimensional).
Aplicações
Reconhecimento facial

O objetivo agora é reconhecer não a presença


de um rosto (que é óbvia), mas verificar se um
rosto é ou não o mesmo de uma imagem de
referência. Tradicionalmente, isso é feito
elencando “marcos” no rosto de um indivíduo,
como distâncias relativas e tamanho dos olhos,
nariz, boca, mandíbula, etc.

Se sensores para 3 dimensões estão disponíveis,


então pode-se armazenar um modelo
tridimensional do rosto, que é menos suscetível
a mudanças de luminosidade e ângulos.
Aplicações
Fawkes

Fawkes é um programa (https://sandlab.cs.uchicago.edu/fawkes/) que permite “mascarar” imagens de forma a


torna-las irreconhecíveis por algoritmos de reconhecimento facial, ao passo em que, para humanos, a imagem
adulterada parece exatamente igual à imagem original.

O programa funciona introduzindo perturbações e ruídos


invisíveis para o olho humano, mas suficiente para confundir
programas treinados com as imagens originais.
Aplicações
Reconhecimento de íris

Outra forma de biometria, o reconhecimento de íris funciona


obtendo-se uma imagem da íris, que passa por diversas
operações até ser reduzida a um padrão de bits, que é
armazenado.

Esse padrão de bits tem a propriedade de conservar apenas


propriedades da íris, e ignorar resultados de mudança de
iluminação. Ele é armazenado em uma base de dados.

Uma identificação positiva pode ser atestada quando a


probabilidade de dois padrões semelhantes pertencerem à
pessoas diferentes for muito baixa.
Aplicações
Reconhecimento de digital

Assim como no reconhecimento de íris, os vales e cristas da digital são realçados e convertidos em uma
sequência de bits, e uma identificação positiva é atestada quando a probabilidade de dois padrões semelhantes
pertencerem à pessoas diferentes for muito baixa.

A digital pode ser


captada por um sensor
óptico, ou, como costuma
ser o caso nos
smartphones, por um
sistema de capacitores
que detecta a presença de
ar ou de pele.
Aplicações
Shazam

O aplicativo Shazam permite a identificação de uma música gravada pelo usuário. Funcionalidades parecidas são
usadas para identificar uso indevido de material protegido por direitos autorais pelo YouTube.

Assim como as demais formas de


reconhecimento, Shazam extrai uma
“impressão digital” do arquivo de áudio, que é
comparada com registros em uma base de
dados de milhares de músicas, corretamente
anotadas com título, ano, álbum e artista.

Essa “impressão digital” é um gráfico de


frequência e tempo, chamado espectrograma.
Aplicações
Motores de busca

▪ No rastreamento, começamos visitando os endereços em uma lista de URLs, e adicionando os hiperlinks


presentes nessas páginas na nossa lista. O rastreador também precisa de uma política para seleção (já que a
internet é grande), para revisitação (já que páginas podem mudar), uma política para não sobrecarregar os
sites visitados e uma política para rodar vários processos em paralelo.

▪ Após conhecer as páginas, deve-se analisa-las (em termos de texto, imagens, vídeos e arquivos) e armazenar
informações sobre o conteúdo de cada página em uma base de dados. Isso é chamado de indexação.

▪ Quando uma pesquisa é feita (e essa pesquisa geralmente vem em linguagem natural), o motor de busca deve
convertê-la em uma sentença de busca válida, e mostrar resultados em uma ordem relevante. Informações
sobre o usuário (como sua localização) podem ajudar a formar essa hierarquia.
Aplicações
Sistemas de recomendação

Frequentemente, nos deparamos com recomendações (de artigos, postagens, vídeos, músicas, vídeos, filmes ou séries,
produtos, serviços, pessoas, etc.) que parecem estranhamente relevantes para nós. Em primeiro lugar, isso só é
possível por que uma grande quantidade de dados sobre o comportamento dos usuários é coletada por esses serviços,
tanto de forma ativa quanto passiva.

▪ Solicitar que o usuário dê uma nota para um item; ▪ Observar quais itens um usuário lê, assiste, ouve ou visita;
▪ Solicitar que um usuário realize buscas; ▪ Analisar o tempo que o usuário passa lendo, assistindo,
▪ Solicitar que um usuário organize uma lista de itens do ouvindo ou visitando um item;
mais ao menos favorito; ▪ Manter uma liste de itens comprados;
▪ Solicitar que o usuário escolha entre dois itens; ▪ Manter uma lista de itens que um usuário lê, assiste, ouve
▪ Solicitar que o usuário crie uma lista de itens que gosta. ou visita no serviço ou no dispositivo;
▪ Analisar comportamentos do usuário no serviço (como
uma rede social).
Aplicações
Sistemas de recomendação

O filtro colaborativo funciona observando padrões no comportamento do usuário e


recomendando itens não conhecidos pelo usuário mas que estão presentes no
comportamento de outros usuários com os mesmos padrões.

Como vantagem, o filtro colaborativo não requer nenhum tipo de conhecimento


sobre os itens, e é útil em situações nas quais esse tipo de conhecimento não está
disponível ou não pode ser obtido facilmente.
Aplicações
Sistemas de recomendação

Já o filtro baseado em conteúdo mantém um vetor de atributos para cada item,


e atualiza um perfil de preferências para cada usuário baseado nos itens que ele
acessa. As recomendações então são feitas a partir de itens com atributos
semelhantes às preferências do usuário.

Além disso, ambos os tipos de sistemas podem trabalhar com aprendizado


reforçado, no qual itens recomendados rejeitados pelo usuário são punições, e
itens aceitos são recompensas.
Aplicações
Classificação de padrões demográficos

Redes neurais podem ser usadas para identificar a demografia de pessoas que realizam certas ações (como realizar
compras recorrentes), e os padrões identificados podem ser usados para realizar ações direcionadas (como oferecer
produtos para as pessoas que têm o perfil associado a compras recorrentes).

Técnicas semelhantes foram usadas para estimar o resultado de votações no poder legislativo americano
(https://www.sciencedirect.com/science/article/pii/S1877050916326308), ou para encontrar candidatos que
possuíam ideias em acordo com o perfil do eleitor (https://www.bbc.com/future/article/20191108-how-robots-are-
coming-for-your-vote). Isso não ocorreu nesse caso, mas sistemas do tipo podem ser usados no futuro para
direcionar propaganda eleitoral ao público mais propenso a votar em certo candidato.
Aplicações
GPT-3

GPT-3 é um modelo de linguagem que usa aprendizado profundo (e um conjunto de 175 bilhões de parâmetros)
para produzir texto, texto esse que tem uma semelhança assustadora com texto produzido por humanos. O modelo é
desenvolvido pela OpenAI que, apesar do nome, é extremamente fechada perante suas criações.

O modelo foi treinado com um corpus imenso e não anotado, o que eliminou a necessidade de supervisão humana e
de dispender tempo anotando dados.

A partir de GPT-3 – cuja API pode ser utilizada por pessoas mediante requisição – uma série de sistemas de
geração dos mais diversos tipos de conteúdo foram produzidos. Além disso, a inteligência artificial parece ser capaz
de recuperar detalhes de pessoas públicas, indicando que ela é treinada com texto da web.
Aplicações
Síntese de artigos

Um jornalista (https://arr.am/2020/07/09/gpt-3-an-ai-thats-eerily-good-at-writing-almost-anything/) usou GPT-3


para produzir diversas formas de texto, fornecendo apenas um prompt descrevendo o texto e o estilo desejado.

Aqui, um artigo sobre startups em


Marte foi gerado de forma
convincente usando GPT-3.
Aplicações
Síntese de artigos

Um jornalista (https://arr.am/2020/07/09/gpt-3-an-ai-thats-eerily-good-at-writing-almost-anything/) usou GPT-3


para produzir diversas formas de texto, fornecendo apenas um prompt descrevendo o texto e o estilo desejado.

Aqui, uma postagem em um blog foi gerada


usando GPT-3.
Aplicações
Síntese de notícias

Um jornalista (https://arr.am/2020/07/09/gpt-3-an-ai-thats-eerily-good-at-writing-almost-anything/) usou GPT-3


para produzir diversas formas de texto, fornecendo apenas um prompt descrevendo o texto e o estilo desejado.

Aqui, uma notícia sobre um


hipotético mandato de Kanye
West no qual ele muda a
capital para a Disneylândia foi
gerada, produzindo um texto
com tons humorísticos.
Aplicações
Síntese de manuais

Um jornalista (https://arr.am/2020/07/09/gpt-3-an-ai-thats-eerily-good-at-writing-almost-anything/) usou GPT-3


para produzir diversas formas de texto, fornecendo apenas um prompt descrevendo o texto e o estilo desejado.

Um manual de um capacitor de
fluxo também foi gerado.
Aplicações
Síntese de poesia

Um jornalista (https://arr.am/2020/07/09/gpt-3-an-ai-thats-eerily-good-at-writing-almost-anything/) usou GPT-3


para produzir diversas formas de texto, fornecendo apenas um prompt descrevendo o texto e o estilo desejado.

Letras de músicas
também foram geradas,
inspiradas no estilo de
artistas específicos.
Aplicações
Síntese de música

Da mesma forma que texto, pode-se


também usar redes neurais para compor
música audível (https://futurism.com/a-
new-ai-can-write-music-as-well-as-a-human-
composer). Diversos resultados estão
inclusive disponíveis no YouTube
(https://www.youtube.com/watch?v=gA03i
yI3yEA).
Aplicações
Síntese de código fonte

GPT-3 também foi usado para produzir código fonte em


HTML (https://analyticsindiamag.com/open-ai-gpt-3-code-
generator-app-building/) e, de forma experimental, aplicações
web (https://debuild.co).
Aplicações
Síntese de literatura

Um jornalista (https://arr.am/2020/07/09/gpt-3-an-ai-thats-eerily-good-at-writing-almost-anything/) usou GPT-3


para produzir diversas formas de texto, fornecendo apenas um prompt descrevendo o texto e o estilo desejado.

O mesmo vale para literatura a


partir do estilo de um autor em
particular.
Aplicações
Robô forçado a assistir 1000 horas de certa produção

Diversas postagens virais trazem roteiros produzidos por robôs


que foram forçados a assistir 1000 horas de determinada
produção (como uma série ou franquia de filmes). Postagens do
tipo começaram com um tweet do humorista Keaton Patti
(https://twitter.com/KeatonPatti/status/966421476223041537
), e provavelmente não envolve qualquer tipo de inteligência
artificial, uma vez que programas do tipo não seriam capazes
(atualmente) de devolver roteiros (já que isso envolveria
interpretar as falas, personagens e posições em um vídeo de
forma a produzir um roteiro coeso), e a maioria das produções
envolvidas sequer possuem 1000 horas. Game of Thrones, por
exemplo, possui apenas 63 horas.
Aplicações
Mestre de RPG (AI Dungeon)

Usando GPT-3, foi possível até mesmo criar um jogo interativo (batizado de AI Dungeon, e disponível em
https://play.aidungeon.io/) no qual o usuário interage com o um “mestre” controlado por inteligência artificial, que
gera o desenrolar da história a partir de ações.

Aqui, deve-se fornecer a correta


instrução para o gerador, que envolve
um conjunto de informações a
respeito do estado atual da história e
elementos relevantes. Isso é o que
permite ao programa guiar a história
de forma coesa.
Aplicações
This Meme Does Not Exist

O serviço (https://imgflip.com/ai-meme) usa uma rede neural para produzir memes a partir de um modelo popular
e (se inseridas) palavras de contexto. O programa aprende recebendo um conjunto de memes, o que permite
identificar quais tipos de emoções aparecem em quais partes do meme.
Aplicações
Síntese de imagens a partir de texto

Já sabemos como imagens podem ser


produzidas com inteligência artificial.
Algoritmos mais complexos (que envolvem não
só um gerador e um avaliador, mas sistemas
que processam linguagem natural e produzem
imagens de acordo com uma diretriz
especificada.

Os melhores sistemas funcionam em páginas do


Google Colab, como em
https://colab.research.google.com/github/levindabhi/CLIP-
Notebooks/blob/main/The_Big_Sleep_BigGANxCLIP.ipyn

b#scrollTo=etzxXVZ_r-Nf.
Aplicações
This Person Does Not Exist

Outra possibilidade é produzir rostos, como é realizado em


https://thispersondoesnotexist.com. Inicialmente os rostos
produzidos frequentemente continham falhas, mas eles
gradualmente se tornaram mais convincentes.

Esse site provavelmente foi usado para forjar documentos


da CYM Corporation (https://youtu.be/zMbBxyYnyQs),
uma suposta companhia de produção e extração de
adrenochrome.
Aplicações
Colorização

Um sistema que coloriza imagens automaticamente pode ser facilmente treinado com pares de imagens em cores
(originais) e em escala de cinza. Fazer isso é especialmente simples, uma vez que o conjunto de treinamento
pode ser gerado automaticamente.
Aplicações
Melhoria de imagens

Inteligência artificial também pode ser usada para melhorar a qualidade de fotografias. Programas do tipo são
treinados adicionando ruídos à uma imagem e em seguida recuperando-a. Técnicas semelhantes são usadas
também para ampliação de imagens.
Aplicações
Remoção de censuras

Técnicas de restauração de imagens também são usadas (as vezes de má fé) para remoção de trechos pixelizados
de imagens. Porém, é importante lembrar que essa técnica de restauração, em última instância, é uma técnica de
suposição de características. Não há quaisquer garantias que o resultado produzido seja fiel à imagem original,
uma vez que o algoritmo apenas supõe como a imagem se pareça. De forma bem humorada, isso pode ser checado
fornecendo desenhos em pixel art, que simplesmente não possuem uma versão original em alta resolução.
Aplicações
Deep Fakes

Deep Fakes são vídeos gerados com o auxílio de inteligência


artificial que podem mostrar qualquer pessoa dizendo (ou
fazendo) qualquer coisa, como celebridades dizendo frases
específicas, ou em situações constrangedoras (como
pornografia). Deep Fakes também são produzidos com um
gerador e um inspetor, que competem para, respectivamente,
enganar o inspetor e discernir resultados falsos de verdadeiros.

O processo começa fornecendo uma diretriz ou um modelo


feito manualmente (com qualidade ruim), e a inteligência
artificial é encarregada de melhorá-lo através do aprendizado
de máquina e de filmagens reais da pessoa.
Aplicações
Sintetização de personalidade

Já verificamos como inteligência artificial pode ser usada para sintetizar uma série de coisas: texto em certo estilo,
imagens, obras de arte, pessoas em poses e assim por diante. Fazer com que uma inteligência artificial deixe de
imitar qualquer pessoa e passe a imitar uma pessoa em particular é simples: basta alimentá-la com conteúdo
produzido por essa pessoa.

Ao passo que fazer isso com autores de literatura ou de música é simples (já que eles já produziram uma grande
quantidade de dados), fazer isso com qualquer pessoa tem se tornado também simples, uma vez que as redes sociais
estão repletas de registros do tipo. E a Microsoft recentemente registrou uma patente para criação de um robô de
chat que imita uma pessoa em particular (https://www.cnet.com/news/microsoft-patent-details-tech-that-could-
turn-dead-people-into-ai-chatbots/).
Aplicações
Personalidades virtuais

Usando redes neurais e parâmetros que os pesquisadores consideraram relevantes para descrever uma personalidade
(https://sci-hub.se/10.1207/s15327957pspr0604_10), um modelo de personalidade virtual foi construído, que deu
origem a diversas personalidades distintas com parâmetros diferentes.

Essas diversas personalidades virtuais se


mostraram capazes de responder a certos
estímulos de formas diferentes, de forma
semelhante a como pessoas diferentes reagem à
situações diferentes.
Aplicações
Influencers virtuais

Influencers virtuais, por outro lado, são perfis em redes sociais mantidos por personagens ficcionais virtuais,
normalmente produzidos com computador. Tais personagens são feitos como projetos artísticos, ou mantidos por
companhias como estratégias de marketing.

Esses influencers podem vir


equipados com alguma inteligência
artificial para interação com o
público, mas a maior parte do
trabalho costuma ser feito por
humanos. Além disso, as imagens
costumam ser produzidas por
humanos usando computação
gráfica.
Aplicações
Recriação de jogos

Usando uma rede neural que joga


um jogo original (como GTA V),
a NVIDIA foi capaz de recriar
funções dele sem usar qualquer
linha de código inerente do jogo
original, mas fazendo com que 12
robôs joguem o jogo original e
observem o efeito de cada ação.
Isso também requer meros 320
GB de RAM.
Aplicações
NPCs em jogos

NPCs são personagens não jogáveis, cujas ações contribuem com a experiência do jogador. Em nome da imersão,
esses personagens frequentemente são equipados com uma inteligência artificial que toma decisões que parecem
naturais.

Dentre as tarefas que NPCs costumam realizar,


podemos citar a navegação (encontrar o menor
caminho entre dois pontos de forma natural, ou
seja, sem colidir com uma casa ou cair em um
penhasco), ou combate, na qual um NPC precisa
caçar outro (ou o jogador) e decidir quais ações
(fugir, se curar, atacar) são melhores para sua
sobrevivência.
Aplicações
NPCs deixados sozinhos em jogos

As inteligências artificias de NPCs não costumam ser desnecessariamente complexas, e situações inesperadas
(como partidas muito longas, ou comportamentos não planejados do jogador) podem fazer com que eles se
comportem de maneira curiosa.

Isso aconteceu em uma partida de Tetris, na qual o robô (que é programado para não perder) pausa o jogo
quando não tem outra escolha
(https://www.reddit.com/r/todayilearned/comments/2yacqb/til_when_a_computer_program_was_about_to_l
ose_in/). Uma thread no 4chan relata que robôs de Quake III optaram pela paz após jogarem por 4 anos
(https://i.imgur.com/dx7sVXj.jpg), mas não há outras evidências que sustentem a história, o 4chan não é
exatamente o local em que histórias costumam ter credibilidade, e um artigo descrevendo o comportamento de
robôs em Quake III (http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf) parece
contraditório com essa alegação.
Aplicações
Previsão do sucesso de candidatos

Um artigo (https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3521915) detalha que robôs são usados para


fazer perguntas a candidatos de entrevistas de emprego, registrar respostas, responder elucidações e selecioná-los
conforme as respostas fornecidas para que humanos possam assumir novas fases do processo seletivo.
Aplicações
Previsões financeiras

Dados em grandes volumes, associados a redes neurais, vêm sendo usados para prever variações no mercado de
ações (https://neptune.ai/blog/predicting-stock-prices-using-machine-learning), commodities
(https://chaipredict.com) e criptomoedas (https://www.analyticsinsight.net/ai-is-helping-you-make-profits-by-
predicting-cryptocurrency-prices/).

Tais sistemas funcionam recebendo dados em grandes


volumes, que cobrem séries históricas tanto da cotação
desses ativos quanto de outros eventos relacionados a eles.
Isso permite então que os comportamentos futuros sejam
analisados com base em tendências do presente e do
passado recente.
Aplicações
Previsão do tempo

Da mesma forma, inteligência artificial é capaz de prever se irá ou não chover nas próximas horas
(https://www.technologyreview.com/2021/09/29/1036331/deepminds-ai-predicts-almost-exactly-when-and-
where-its-going-to-rain/), assim como volume de chuva, movimento e intensidade.

Isso é feito analisando padrões observados


nas últimas décadas e aplicando-os
quando esses padrões voltam a ocorrer.
Além disso, o sucesso ou não das
previsões pode ser usado para melhorar o
sistema.
Aplicações
Automação industrial

Na indústria, a inteligência artificial pode ser usada para


(https://www.zvei.org/fileadmin/user_upload/Presse_und
_Medien/Publikationen/2021/April/AI_in_Industrial_Au
tomation/AI-in-Industrial-Automation-White-Paper-
NEU.pdf) automatizar processos repetitivos, para tomar
decisões relativas ao estado de itens (como controle de
qualidade), para problemas de otimização (como desenho
de placas de circuito impresso) e no gerenciamento de
recursos e pessoal (como escalonamento de jornadas de
trabalho e organização de máquinas no chão de fábrica).
Aplicações
Agricultura inteligente

Inteligência artificial, aliada com a internet das coisas, pode otimizar e tornar o processo da agricultura mais
produtivo e eficiente, além de capacitar o produtor com informações mais precisas e atualizadas.

Isso envolve processamento de


dados para identificação de
umidade, temperatura e fertilização
ideias, detecção de pragas, uso de
previsões do tempo para tomada de
decisões, monitoramento de satélite,
gerenciamento de rebanho com
rastreadores e robôs capazes de
monitorar e realizar tarefas.
Aplicações
Cidades inteligentes

Dados e dispositivos também podem ser utilizados para tornar a vida urbana mais eficiente e harmônica. Isso
envolve diversos aspectos, e também requer discussões no campo de privacidade do cidadão.

▪ Uso de tecnologias de monitoramento urbano para


gerenciamento de tráfego, evitando congestionamentos;
▪ Registro adequado e em tempo real da situação de
recursos e ativos, o que permite que estes sejam
rapidamente direcionados para onde são necessários;
▪ Sistemas de transporte inteligente e de monitoramento;
▪ Canais que permitem ao cidadão requisitar serviços e
acessar informações relevantes;
Aplicações
Carros autônomos

Carros autônomos são capazes de perceber o ambiente e se deslocar nele com pouca ou nenhuma diretriz humana.
Diversos sistemas precisam funcionar em harmonia para que a direção autônoma funcione:

▪ Uma série de sensores deve ser capaz de captar o


máximo possível de informações sobre o ambiente ao
redor, e sobre a forma com que esse ambiente muda;

▪ Essas informações precisam ser traduzidas em


elementos que fazem parte da descrição do problema
(pedestres, placas, faixas, ruas, calçadas, etc.);

▪ Um navegador deve ser capaz de tomar as decisões


corretas a partir dos sensores.
Aplicações
Interfaces cérebro-computador

Outro uso de inteligência artificial são as interface cérebro-computador, que permitem comunicação direta entre o
cérebro de um usuário (seja de forma invasiva ou não) e um dispositivo computacional, que pode ser equipado com
uma inteligência artificial.

O assunto já foi abordado extensivamente em https://www.youtube.com/watch?v=wkq5hcpl3Tg.


Aplicações
Diagnóstico

Sistemas baseados em regras exatas foram uma das primeiras formas de diagnóstico, mas atualmente essas tarefas são
feitas utilizando redes neurais que aprendem a partir de um conjunto massivo de registros médicos eletrônicos.
Aplicações
Diagnóstico

Identificar condições através da análise de imagem (como raios x, ressonâncias magnéticas, tomografias, mamografias
e fotografias) é outro uso comum de inteligência artificial na medicina, com aplicações para identificação de AVC,
câncer de pele e câncer de mama.
Aplicações
Previsão de reincidência de condições

Na medicina, um dos usos da inteligência artificial é o de previsão de reincidência de doenças, como câncer de
mama (https://www.contemporaryobgyn.net/view/artificial-intelligence-can-predict-risk-of-recurrence-for-
women-with-common-breast-câncer) e AVC (https://www.healtheuropa.eu/potential-risk-of-stroke-recurrence-
predicted-with-artificial-intelligence/110697/).

Nesses casos, os modelos são treinados


com prontuários de pacientes, e aprendem
a identificar fatores associados com
reincidência das condições.
Aplicações
Forma de proteínas

Determinar a forma tridimensional de uma proteína a partir de sua cadeia de aminoácidos é um dos maiores desafios
da biologia molecular (https://www.nature.com/articles/d41586-020-03348-4). Porém, uma rede neural denominada
AlphaFold se mostrou melhor que humanos em prever a forma de proteínas, inclusive fazendo algumas previsões
indistinguíveis daquelas determinadas usando métodos laboratoriais.
Aplicações
Cirurgias robóticas

Em cirurgias robóticas, equipamentos robóticos extremamente delicados e precisos são inseridos em incisões
(quando isso é necessário) e controlados por um cirurgião que recebe imagens do corpo do paciente e cujos
movimentos controlam o equipamento. Nessa modalidade, um robô não toma decisões.

Porém, pesquisas trabalham também com sistemas


completamente automáticos ou de supervisão mínima
(https://spectrum.ieee.org/autonomous-robot-
surgeon-bests-human-surgeons-in-world-first e
https://www.nature.com/articles/d41586-019-02874-
0).
Aplicações
AgingAI

AgingAI é um serviço (http://www.aging.ai e


https://academic.oup.com/biomedgerontology/article/73/11/1482/4801287) que usa dados em grande escala para
identificar biomarcadores sanguíneos associados ao envelhecimento, e promete fornecer diretrizes para retardar esse
processo.
Aplicações
FaceApp

FaceApp é um aplicativo que oferece diversos filtros (programados na forma de transformações) que podem ser
aplicados a uma imagem. Esses filtros deixam o usuário mais velho, mais novo, com tatuagens, barba ou com outro
sexo.
O FaceApp também funciona com uma rede neural
adversária generativa, na qual duas redes neurais
trabalham em direções opostas, visando melhorar a
qualidade de cada transformação.

Uma das preocupações é que, por ser um aplicativo


viral, os responsáveis realizam coleta massiva de
dados dos usuários, que podem ser usados para fins
questionáveis.
Aplicações
Pessoas desaparecidas

Inteligência artificial também pode ser utilizada


para localizar pessoas desaparecidas. Além de
algoritmos que permitem reconhecimento facial
com fotografias separadas por anos (e que
funcionam procurando por marcos e modelando
como esses marcos mudariam ao longo do tempo,
https://openaccess.thecvf.com/content_cvpr_201
5/papers/Du_Cross-
Age_Face_Verification_2015_CVPR_paper.pdf)
, inteligência artificial também pode ser usada
para agregar e pesquisar informações recebidas
sobre o paradeiro dos desaparecidos.
Aplicações
Detecção de fraudes

Transações financeiras podem passar por


um modelo de aprendizado de máquina que
é treinado para identificar transações
fraudulentas.

Isso é feito através da classificação


(treinada com um grande conjunto de
transações corretamente anotadas) e da
previsão (na qual o comportamento de cada
usuário é previsto, e desvios desse
comportamento são marcados como
suspeitos).
Aplicações
Detecção de notas falsas

Redes neurais também podem ser treinadas para detectar notas falsas através de classificadores, como em
https://www.researchgate.net/publication/343804423_An_Artificial_Neural_Networks_Based_Fake_Currency_
Detection_System.
Aplicações
Quebra de senhas

Quebra de senhas costuma envolver abordagens de força bruta, análise de hashes e ataques de dicionário.

Porém, uma pesquisa recente (https://www.science.org/content/article/artificial-intelligence-just-made-


guessing-your-password-whole-lot-easier) implementou uma rede neural adversária generativa para gerar
possíveis novas senhas a partir de senhas já expostas, e obteve relativo sucesso.
Aplicações
Apostas esportivas

Inteligências artificiais também podem receber detalhes esportivos (como escalações, placares, desempenho
individual de atletas) e prever resultados (https://quarter4.io/).
Aplicações
Descobertas astronômicas

Morpheus é uma rede neural (que roda em um supercomputador, https://www.kdnuggets.com/2020/09/ai-


driving-innovation-astronomy.html) capaz de receber imagens do céu e, com uma abordagem pixel a pixel,
separá-las em camadas que permitem a identificação de corpos astronômicos como galáxias e estrelas, além de
realizar classificação morfológica.
Aplicações
WolframAlpha

WolframAlpha é um motor (https://www.wolframalpha.com/tour/) de respostas computacionais, baseado em uma


série de algoritmos que interpretam uma requisição em linguagem natural e fornecem uma resposta. Parte do
funcionamento do programa envolve recuperar dados computados, e outra parte envolve algoritmos que realizam
operações matemáticas (como integração).
Aplicações
Roomba

Roomba, um robô aspirador de pó, trabalha jogando a


poeira para baixo de si, onde ela é aspirada. Sensores a
distância permitem que o robô desacelere quando se
aproxima de um obstáculo, sensores de contato permitem
que ele pare quando o encontra, e um sensor piezoelétrico
detecta a presença de sujeira.

O robô se move com dois princípios: um aleatório, no qual


ele limpa até encontrar um obstáculo, e seguimento de
parede, no qual o trajeto de uma parede ou outro obstáculo
é percorrido.
Aplicações
Alfawise Magnetic

Alfawise Magnetic é um robô que – ao contrário do seu


nome – usa a pressão do ar para se afixar à janelas e limpá-
las. A distância aos pontos é calculada com sensores
ultrassônicos e de laser, e o robô certamente utiliza
acelerômetros e giroscópios para manter sua posição.
Aplicações
Worx Landroid

Trata-se de um robô capaz de aparar grama. O


robô também usa um algoritmo que envolve
padrões aleatórios, o que garante que toda a área
seja coberta.

Além disso, a propriedade é delimitada usando fios,


que permitem que um detector de frequência
equipado no robô respeite o perímetro estabelecido.

Um gerenciamento inteligente de bateria também


faz com que o robô pare na estação de carga nos
momentos corretos.
Aplicações
Budgee

Budgee é um robô destinado a auxiliar o usuário a carregar


itens. Ele funciona seguindo um transponder de rádio, que é
equipado no cinto do usuário
Aplicações
Ubtech Lynx

Lynx é um robô humanoide de uso doméstico


com propósito geral, capaz de realizar todas as
funções de uma Alexa, além de controlar
funções presentes em uma casa inteligente,
gravar vídeos, localizar pessoas em uma sala ou
dançar.
Aplicações
Sophia

Sophia é um robô humanoide capaz de projetar emoções faciais graças a


um conjunto de músculos artificiais que imitam o rosto humano.

Sua arquitetura inclui um sistema de chat, um framework que procura


conceder cognição, um sistema de tomada de decisões, um algoritmo de
tomada de decisão que funciona a partir de câmeras nos seus olhos, um
algoritmo de processamento de linguagem natural falada, além de
sistemas que permitem movimento.
Aplicações
Moley

Moley é um robô capaz de cozinhar


refeições, que funciona realizando
ações de cozinha, bem como
identificando ingredientes e
orientando um cozinheiro humano,
caso isso seja preferido.
Aplicações
Digit

Digit é um robô equipado com dois


braços e duas pernas (mas faltando
uma cabeça) capaz de percorrer
ambientes residenciais complexos,
bem como corre, subir escadas e
carregar objetos.
Aplicações
Spot

Produzido pela Boston Dynamics, Spot é um


robô cuja aparência lembra um cachorro
destinado para aplicações de exploração em
regiões apertadas e perigosas demais para
humanos, como minas e sítios de construção.
Aplicações
Atlas

Também da Boston Dynamics, Atlas é um robô cujos membros


possuem 28 graus de liberdade, sendo capaz de navegar terreno
irregular, pular e desviar de obstáculos, além de resistir a
impactos na perna.

Adicionalmente, a companhia já publicou vídeos que mostram


o robô dançando e realizando parkour.
Aplicações
Robô cobra de Stanford

Trata-se de um robô feito de material mole, que funciona como um tubo capaz
de dobrar para dentro e que pode penetrar aberturas e frestas apertadas para
exploração, que pode vir a ser útil em situações de resgate.
Aplicações
TOPIO

TOPIO é um robô humanoide


desenhado para jogar tênis de
mesa, sendo capaz de reconhecer
objetos em movimento e se mover
de forma rápida e precisa.
Aplicações
Futebol de robôs

Competições de futebol de robôs são frequentemente organizadas, e envolvem robôs em diversos graus de
complexidade.
Aplicações
Cimon

Cimon é um robô em formato de


cabeça flutuante que serve como um
“assistente virtual para astronautas”
na estação espacial, sendo capaz de
manter um inventário, procurar por
objetos, fotografar determinado
objeto, além de identificar emoções
dos astronautas.
Aplicações
Robôs em Marte

Controlar um robô em Marte pode parecer semelhante a controlar um robô na Terra, mas uma série de desafios
(como um terreno pouco conhecido, a ausência de certos sistemas de localização, a demora para envio e
recebimento de dados, o imenso custo de falhas, etc.) tornam essa tarefa muito mais complexa.

Com um conjunto de sensores, o robô em Marte é capaz de andar


pequenas distâncias, procurar por obstáculos e irregularidades e
então planejar a rota para mais uma pequena distância de forma
segura em direção a um ponto determinado pelos cientistas.
Imagens do terreno podem ser usadas para criação de mapas, que
auxiliam na navegação. Acelerômetros e giroscópios mantém o
robô na posição correta, e a posição do Sol serve para computar a
direção que o robô está encarando no momento.
Aplicações
Helicóptero em Marte

A Ingenuity se tornou o primeiro objeto feito


pelo homem a voar em Marte. O helicóptero
usa um processador de smartphones, que
permite que um sistema de voo autônomo
controle o dispositivo.
Aplicações
Reconhecimento de alvo

Tecnologias de reconhecimento de alvo


podem ser usadas em equipamentos
militares como mísseis teleguiados e
veículos autônomos, além de sistemas de
detecção de inimigos e amigos.

Assim, parâmetros podem ser usados


para detectar veículos aéreos e terrestres,
animais, humanos e vegetação.
Aplicações
Kargu

Kargu é um drone capaz de perseguir alvos móveis e aéreos


através do reconhecimento visual, usado pelas Forças
Armadas da Turquia e do Azerbaijão.

As especificações revelam que o drone é equipado com um


sistema de reconhecimento facial, e que vários equipamentos
iguais podem formar enxames.

Em 2020, um Kargu carregado com explosivos


provavelmente foi responsável por perseguir e matar um
humano de forma autônoma, sendo essa talvez a primeira
morte por causada por uma inteligência artificial.
Aplicações
Projeto Blue Brain

Trata-se de um projeto que visa produzir uma


reconstrução digital do cérebro de um rato
(https://www.epfl.ch/research/domains/bluebrai
n/).

Para isso, são feitas reconstruções em


supercomputadores dos mecanismos que
acreditamos estar por trás do cérebro dos
mamíferos.

Repetitivas simulações permitem melhorar e


analisar o modelo.
Fundamentos filosóficos
Máquina de Turing

Uma máquina de Turing é um modelo abstrato que manipula símbolos em uma fita infinita de acordo com um
conjunto de regras. Dado qualquer algoritmo, uma máquina de Turing é capaz de simular sua lógica.

Uma tabela finita de instruções que, dado o


estado 𝑞0 , comanda a cabeça para: O cabeçote pode ler um
1. Escrever ou apagar o símbolo; símbolo para seu estado
2. Mover a cabeça para a esquerda, direita ou 𝑞0 interno 𝑞0 , escrever um
não movê-la; símbolo na fita, mover uma
3. Assumir um novo estado ou manter o célula para a esquerda ou
estado atual. uma para a direita.

… x w y 1 2 k …

A fita é infinita, e cada célula pode possuir um símbolo ou estar em branco.


Fundamentos filosóficos
Turing-completude

Se um sistema de manipulação de dados pode


ser usado para construir qualquer máquina de
Turing (com a limitação da memória), ele é
chamado de Turing-completo.

A maioria das linguagens de programação são


Turing-completas, e alguns sistemas
(acidentalmente ou não) também.
Fundamentos filosóficos
Inteligência artificial restrita, fraca e forte

A inteligência artificial fraca compreende a possibilidade de computadores serem programados para agir como
se eles fossem inteligentes (ou seja, como se eles estivessem pensando). Uma inteligência artificial fraca é uma
ferramenta que nos auxilia a compreender o funcionamento do cérebro.

A inteligência artificial forte compreende a possibilidade de computadores serem programados para pensar (ou
seja, realmente pensar). Uma inteligência artificial forte é de fato um cérebro.

Há discussões sobre alguns sistemas, mas a maioria das aplicações que abordamos são inteligência artificial
restrita, no sentido de que se restringem à apenas alguns propósitos.
Fundamentos filosóficos
A inteligência artificial fraca é possível?

Afinal, máquinas podem simular pensamento?

Esse problema depende da definição correta de pensamento. Nós definimos voo tal qual aviões e pássaros podem
voar, e nado tal qual peixes podem nadar, mas submarinos podem nadar?
Fundamentos filosóficos
Teste de Turing

O teste de Turing (ou o jogo da imitação) é um teste que verifica a capacidade que uma máquina tem de
exibir comportamento inteligente indistinguível de um humano.

Como “pensar” é difícil de ser definido, Turing testa pela


aparência de um pensamento. Na interpretação tradicional, um
juiz humano conversa (por texto) com outro humano e com um
robô durante 5 minutos, e deve decidir qual é qual. O robô passa
no teste se enganar o juiz em mais de 30% do tempo.

Para passar no teste, uma máquina deve se limitar a


comportamentos humanos e soluções que um humano pode
apresentar, além de, talvez, cometer erros humanos.
Fundamentos filosóficos
Argumento da incapacidade

Turing cita uma série de coisas que uma máquina não pode ser realizar:

Ser amável, diligente, bonito, amigável, ter iniciativa, senso de humor, distinguir o certo do errado, cometer
enganos, apaixonar-se, gostar de morangos e creme, fazer alguém se apaixonar por ela, aprender a partir da
experiência, usar palavras corretamente, ser o sujeito de seu próprio pensamento, ter tanta diversidade de
comportamento quanto o homem, fazer algo realmente novo.

Gradualmente, partes desse argumento vêm sendo falseadas: computadores podem cometer erros; pessoas
eventualmente se apaixonam (e se casam) com objetos, incluindo robôs (https://www.buzzworthy.com/meet-men-
married-robots/); robôs podem produzir linguagem natural com taxas de erros semelhantes (ou melhores) às de
humanos; e robôs são capazes de tomar decisões com graus elevados de concordância perante humanos, semelhantes
aos graus que ocorrem entre dois humanos.
Fundamentos filosóficos
Argumento da informalidade

Esse argumento alega que o comportamento humano é complexo demais para ser resumido em um sistema de
regras, e isso é verdade: sistemas de lógica de primeira ordem não são suficientes para imitar o comportamento
humano. Porém, a inteligência artificial não se resume a lógica de primeira ordem, e sistemas de raciocínio
probabilístico são muito mais adequados à essa tarefa.

Além disso, sistemas atuais (como GPT-3) são treinados com corpus imensos, o que os permitem cobrir uma
grande quantidade de casos e situações.
Fundamentos filosóficos
A inteligência artificial forte é possível?

Se uma máquina passar no teste de Turing, talvez ela não esteja verdadeiramente pensando, mas apenas
simulando o pensamento.

Esse mais uma vez é um argumento complexo, uma vez que nós não possuímos uma distinção precisa entre como o
pensamento real funciona e como ele se difere de uma simulação de pensamento. Nós possuímos alguns exemplos
de coisas cuja versão artificial é idêntica à versão real, como ureia. Outras, como uma recriação de um Picasso,
jamais serão reais. Afinal, o pensamento se enquadra em qual categoria?

Isso é diretamente relacionado com a separação entre mente e matéria: processos mentais e corporais existem em
reinos separados, ou estados mentais são propriamente estados físicos?
Fundamentos filosóficos
Estados mentais e cérebro numa cuba

Se o fisicalismo está correto, então a descrição adequada do estado mental de uma pessoa é determinada pelo
estado do cérebro dessa pessoa. Resta, então, explicar como que os estados físicos (configurações moleculares e
processos eletroquímicos no cérebro) se traduzem em estados mentais.

A analogia de um cérebro numa cuba nos ajuda a entender essa situação. Consideramos dois cérebros, um deles
ligado a um corpo humano, e outro ligado (desde o nascimento) a um computador enquanto fica imerso em uma
cuba. O segundo cérebro recebe, através do computador, os mesmos sinais que o primeiro recebe.
Fundamentos filosóficos
Estados mentais e cérebro numa cuba

Este cérebro está ligado a um Este cérebro sempre esteve em


corpo, e recebe impulsos através uma cuba, e recebe estímulos
de sinais elétricos vindos dos através de sinais elétricos
órgãos de visão, tato, paladar e produzidos por um computador.
olfato. Porém os sinais são idênticos aos
que o cérebro da esquerda recebe.

A pessoa que possui o cérebro da esquerda está comendo um hambúrguer. O estado mental dela está associado à
ação de comer um hambúrguer. Já a pessoa da direita está recebendo uma simulação do ato de comer um
hambúrguer. Ainda assim, ambos têm o mesmo estado mental.

Isso é contraditório se supormos que o estado mental é dependente de uma visão ampla (e onisciente), mas
compatível se considerarmos que é dependente apenas de uma visão restrita. Os dois cérebros não distinguem a
diferença entre os estados amplos e, portanto, estão no mesmo estado mental.
Fundamentos filosóficos
Experimento da prótese cerebral

Já o funcionalismo afirma que, de dois sistemas isomórficos, existe um nível de abstração abaixo do qual abaixo do
qual a implementação específica não importa, e os estados mentais são os mesmos para os dois sistemas – mesmo
que a implementação abaixo desse nível seja diferente. Um experimento hipotético supõe que (a) sabemos
exatamente como o cérebro funciona em termos de entrada, saída e conexões, (b) temos dispositivos artificiais que
funcionam de forma idêntica aos neurônios e (c) conseguimos substituir cada neurônio natural por um neurônio
artificial. Se esse cérebro que funciona como uma máquina de Turing é consciente, então temos resultados um
tanto desconcertantes.
Nesse experimento, cada neurônio é retirado substituído por outro. Se o funcionalismo está
correto, então o paciente não percebe qualquer alteração na consciência. Mas o que exatamente
ocorreu?

1. Os mecanismos da consciência que provocam as saídas em cérebros normais ainda estão


presentes e a versão eletrônica é consciente.

2. Os eventos conscientes no cérebro normal não têm mais qualquer relação com os
comportamentos do cérebro eletrônico e essa versão, portanto, não é consciente.
Fundamentos filosóficos
Quarto chinês

Consideramos agora um agente presente em um quarto fechado, cujo único contato com o mundo exterior é o
recebimento de papéis impressos com ideogramas chineses.

O agente possui um livro de regras em inglês


que explica o que fazer com cada papel e em
que ordem devolvê-los para fora, mas não
entende chinês e, portanto, não tem ideia do
que está fazendo além de seguir as regras.

Porém, as pessoas do lado de fora concluem


que o agente é um falante fluente de chinês, já
que as regras produzem língua chinesa.
Fundamentos filosóficos
Quarto chinês

Uma objeção a esse argumento é que, ao passo em que nem a pessoa e nem os elementos do quarto (os papéis
ou o livro) possam entender chinês, o quarto como um todo entende – se perguntarmos ao quarto (em chinês)
se ele entende chinês, a resposta será afirmativa em chinês fluente.

Assim, não é preciso que uma propriedade do todo (do quarto) esteja em nenhuma das partes (pessoa, papéis,
livro, etc).
Fundamentos filosóficos
Viés algorítmico

Algoritmos podem atuar de forma desagradável e inesperada, muitas vezes reforçando vieses discriminatórios.
Isso pode ser evitado com melhor análise de casos de uso e com equipes de desenvolvimento mais diversas.
Fundamentos filosóficos
Viés algorítmico

Causas para viés algorítmico incluem:


▪ De origem nos próprios dados: o Google Tradutor aprendeu estereótipos de gênero porque eles estão
presentes nos textos usados, que foram produzidos por uma sociedade que os possui.
▪ De origem no desenvolvimento, que deixa de lado casos de uso considerados pouco relevantes, mas que são
importantes para que o público tenha uma experiência aceitável: desenvolvedores consideram que impedir
que um robô de chat aprenda termos ofensivos é pouco importante, mas alguns usuários ensinam esses
termos e o robô os reproduz.
▪ De origem técnica e não intencional: um algoritmo que lista voos em ordem alfabética favorece a American
Airlines perante a United Airlines.
▪ De origem em casos de uso não levados em conta: um algoritmo de gerenciamento de força policial coloca
mais policiais em regiões com maior denúncias de crime, mas as denúncias de crime aumentam quando a
população vê policiais presentes; portanto, o algoritmo designa ainda mais policiais no mesmo lugar.
Fundamentos filosóficos
Destruição de postos de trabalho

Trabalhadores podem ser substituídos por robôs, o que levanta questões relativas ao desemprego provocado pelo uso
de inteligência artificial para desempenhar funções humanas, tais como:

▪ Quais postos de trabalho devem ser substituídos por questões humanitárias, como insalubridade,
periculosidade, etc.?
▪ Quais postos de trabalho não devem ser substituídos por questões humanitárias, como envolverem
sensibilidade, empatia e cuidado com a vida?
▪ Estatísticas (https://builtin.com/artificial-intelligence/ai-workers-Jobs) mostram que empresas que adotam
inteligência artificial contratam mais pessoas do que demitem, mas o que dizer das qualificações dos
contratados e demitidos?
▪ A inteligência artificial de fato cria postos de trabalho mais interessantes, mas quem pode ocupar esses
postos?
Fundamentos filosóficos
Responsabilidade legal

Caso um equipamento controlado por inteligência artificial machuque ou mate outra pessoa (como um carro
autônomo), de quem deve ser responsabilidade?

No exemplo de um carro autônomo, a culpa pode recair sobre:

▪ O condutor;
▪ A companhia que produz o carro;
▪ A companhia que criou o sistema que falhou no acidente;
▪ O governo;
▪ A vítima, no caso de um acidente em que a vítima tem participação (por exemplo, um pedestre no meio da
rodovia);
▪ Nenhuma das partes.
Fundamentos filosóficos
Usos bélicos de inteligência artificial

Com robôs cada vez melhores em julgamento e tomada de decisão, usos bélicos de inteligência artificial tornam-se
cada vez uma realidade. E isso é especialmente preocupante com algoritmos opacos. Tópicos que envolvem essa
questão incluem:

▪ Devemos garantir que um humano sempre seja capaz de entender o que um algoritmo decidiu? Como fazer
isso?
▪ Robôs são capazes de decidir quem deve viver e quem deve morrer? Se são capazes, eles deveriam?
▪ O desenvolvimento de armas autônomas pode iniciar uma corrida armamentista? Se sim, quais os riscos
associados a isso?
Fundamentos filosóficos
Algoritmos opacos

O uso de redes neurais muitas vezes cria situações nas quais computadores tomam decisões que eles e os humanos
que os programaram não podem explicar. Isso leva a uma série de consequências:

▪ Fica difícil julgarmos se os resultados de um algoritmo são confiáveis ou razoáveis;


▪ Nós não conseguimos entender porque o algoritmo apresenta certo resultado;
▪ Nós não sabemos quais resultados o algoritmo não apresenta, e porque;
▪ Se torna mais difícil de saber se o algoritmo está se comportando de forma enviesada, e as vezes sabemos
isso tarde demais;
▪ Pessoas passam a ter motivos para não confiar nos resultados esses algoritmos;
Fundamentos filosóficos
Direitos para robôs

O eventual surgimento de robôs com consciência leva à questão: robôs devem receber direitos semelhantes aos
concedidos a seres humanos?

▪ Quando isso será necessário?


▪ O fato da robô Sophia ter recebido cidadania saudita é relevante, ou uma mera jogada de publicidade?
▪ A criação de robôs que requerem direitos humanos pode representar um fardo para a humanidade?
Fundamentos filosóficos
Três leis da robótica

Tratam-se de um conjunto de leis criadas por Isaac Asimov em 1942, que são:

1. Um robô não pode machucar um ser humano ou, por deixar de agir, permitir que um ser humano se
machuque.
2. Um robô deve obedecer às ordens dadas por um humano, exceto quando essas ordens entram em conflito
com a primeira lei.
3. Um robô deve proteger sua própria existência, desde que essa proteção não entre em conflito com a primeira
e segunda lei.
Fundamentos filosóficos
Três leis da robótica

Essas regras possuem algumas falhas:

▪ Um robô pode ser usado para machucar outro ser humano sem ele saber, por exemplo, colocando uma
substância na comida de uma pessoa sem saber que ela é um veneno;
▪ Vários robôs podem realizar várias pequenas tarefas que, em conjunto, levam à morte de um ser humano;
▪ Não há uma definição precisa do que um robô é, por exemplo, robôs moleculares se enquadram?
▪ Não há uma definição precisa do que dano é, por exemplo, uma pessoa ouça uma música emotiva gerada por
um robô pode sofrer psicológicos.
▪ Não há descrições de como um robô deve agir em situações conflitantes, por exemplo, matar um assassino
para evitar que ele faça uma vítima.

Ainda não temos máquinas capazes de seguir essas leis, mas elas certamente merecem entrar em discussão. Robôs
militares já são capazes de provocar danos à seres humanos.
Fundamentos filosóficos
Vale da estranheza

O vale da estranheza é o nome dado à


mudança da reação de humanos perante
coisas que lembram humanos com certa
precisão, mas que não são propriamente
humanas. Na robótica, isso significa que
pessoas tendem a possuir uma reação
negativa perante robôs que possuem certo
grau de realismo.

Isso costuma ser evitado apresentando


versões caricatas de robôs humanoides.
Fundamentos filosóficos
Riscos existenciais

Se a inteligência artificial conseguir superar a inteligência humana (e agora suporemos que isso é possível), então
ela pode fugir do nosso controle. Da mesma forma que o destino dos gorilas depende das nossas ações, o destino da
humanidade pode depender das ações de uma inteligência artificial.

▪ Não existem leis que proíbam a existência de configurações de partículas que realizam computações mais
complexas que as realizadas por cérebros humanos;

▪ Se uma máquina inteligente procura maximizar sua função utilidade, é difícil produzir funções utilidade que
reflitam os valores da humanidade.

▪ A princípio, qualquer máquina inteligente tem um objetivo de sobrevivência. Se ela recebe a instrução
“pegue café”, ela não pode pegar café se estiver desligada ou destruída.
Fundamentos filosóficos
Riscos existenciais

▪ Máquinas sobre-humanas em tarefas específicas já existem, e elas costumam começar com capacidades sub-
humanas, que evoluem para humanas e depois para sobre-humanas. Em um cenário hipotético, uma
máquina pode adquirir capacidade sobre-humana de produzir software, e usar essa capacidade para
melhorar seus algoritmos em outras áreas.

▪ É racional que uma máquina inteligente prefira estar em uma posição na qual ela não pode ser desligada ou
ter seu código modificado
.
▪ Uma máquina inteligente não tem razões para ajudar humanos que não possuem mais utilidade para ela, da
mesma forma que nós não temos desejo natural para ajudar sistemas de inteligência artificial que não
possuem uso para nós;
Fundamentos filosóficos
Riscos existenciais

▪ Uma vez no comando, máquinas superinteligentes não terão razões para deixar que humanos andem por aí
livremente e consumam recursos que elas podem utilizar.

▪ Para uma máquina superinteligente, nosso processo de pensamento é tão estranho quanto o pensamento de
baratas é para nós. Assim, não há garantias de que uma inteligência artificial do tipo irá se importar
conosco;
Fundamentos filosóficos
Riscos existenciais

Há debate a respeito do quanto as questões mencionadas nos slides anteriores merecem nossa atenção nesse
momento.
▪ Alguns consideram que essa questão merece muito mais atenção do que está recebendo, e que nossa atitude
perante esse tópico é equivalente a recebermos uma mensagem de que uma civilização alienígena chegará em
algumas décadas, e simplesmente decidíssemos esperar passivamente;

▪ Outros consideram que inteligência artificial geral é pouco provável a curto prazo, e que tais visões são
alarmistas, equiparando-as a nos preocuparmos com a superpopulação de Marte quando ainda nem
chegamos ao planeta. Dessa forma, há tópicos muito mais urgentes a serem discutidos nesse campo.

▪ Visões intermediárias consideram o debate importante, mas acreditam que novas pesquisas em inteligência
artificial são necessárias para torna-lo mais concreto.
FIM!

Você também pode gostar