Compreendendo A Inteligência Artificial - Fábrica de Noobs
Compreendendo A Inteligência Artificial - Fábrica de Noobs
Compreendendo A Inteligência Artificial - Fábrica de Noobs
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
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.
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
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
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
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:
Opcionalmente:
“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:
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
B
G
E
O
H
Resolução de problemas
Busca em largura
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.
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
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
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:
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
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
H I J K L M N O
2 3 5 9 0 1 7 5
Resolução de problemas
Poda alfa-beta
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
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
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ô.
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á.
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.
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:
Proposições podem ser combinadas para formar outras proposições ou para formar regras usando operadores.
“Se o dia está ensolarado e hoje venta, então amanhã irá chover.”
𝑎⋀ 𝑑→𝑏
“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?”
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)
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)
Nação(Espanha)
Vizinhas(Portugal, Espanha)
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.
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
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
Em uma decomposição exaustiva, cada elemento da categoria está presente em pelo menos uma das subclasses.
DecomposiçãoExaustiva( Estadunidenses, Mexicanos, Canadenses , NorteAmericanos)
NorteAmericanos
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.
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)
Outras medições não são numéricas, mas podem ser descritas em termos de comparações.
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.
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).
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:
𝑃 𝑎 𝑏) 𝑃 𝑏
𝑃 𝑏 𝑎) =
𝑃(𝑎)
Isso pode ser transformado em:
Por exemplo, considere que queremos saber a probabilidade de um paciente que se apresenta com rigidez no
pescoço ter meningite, e sabemos que:
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
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
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
𝑃𝑉𝑉𝑉 + 𝑃𝑉𝐹𝑉 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
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.
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.
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:
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
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
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.
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.
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.
𝑦 = 𝑎1 𝑥1 + 𝑎2 𝑥2 + ⋯ + 𝑎𝑛 𝑥𝑛 + 𝑏
𝑦 = 𝑎1 𝑥 + 𝑎2 𝑥 2 + ⋯ 𝑎𝑛 𝑥 𝑛 + 𝑏
Aprendizagem
Splines de regressão adaptativa multivariada
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.
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.
𝑃 𝐶, 𝑇, 𝐻, 𝑉 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠) 𝑃(𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠)
𝑃 𝐽𝑜𝑔𝑎𝑟𝑇ê𝑛𝑖𝑠 𝐶, 𝑇, 𝐻, 𝑉) =
𝑃 𝐶, 𝑇, 𝐻, 𝑉
É 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.
𝑃 𝑎1 , 𝑎2 , … , 𝑎𝑛 𝑐𝑗 ) = ෑ 𝑃 𝑎𝑘 𝑐𝑗 )
𝑘=1
Aprendizagem
Árvores de decisão
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 =
𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 + 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑜𝑠 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 + 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑜𝑠
mesma categoria. 7 10 9
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
𝑘
|𝑆𝑖 | |𝑆𝑖 |
𝐼𝑛𝑓𝑜𝐼𝑛𝑡 = − log 2
|𝑆| |𝑆|
𝑖=1
Em que 𝑘 itera para cada categoria dentro de um atributo, 𝑆 é o total de elementos e 𝑆𝑖 é o total de elementos na
categoria.
𝐺𝑎𝑛ℎ𝑜
𝑅𝑎𝑧ã𝑜𝐺𝑎𝑛ℎ𝑜 =
𝐼𝑛𝑓𝑜𝐼𝑛𝑡
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
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
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)
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:
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
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
-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:
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
Começando em um estado arbitrário, a fase de aprendizado envolve preencher a tabela com o valor de Q calculado,
percorrendo os estados.
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 , 𝑎 − 𝑄 𝑆𝑡 , 𝑎
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
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
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).
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
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).
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:
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.”
▪ 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.
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.
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.
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
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
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.
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:
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” .
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
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.
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.
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.
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
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
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.
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).
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
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
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
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.
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.
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.
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
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.
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”).
𝑎𝑡 = 𝐾𝑝 𝑦 𝑡 − 𝑥𝑡
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.
𝜕(𝑦 𝑡 − 𝑥𝑡 )
𝑎𝑡 = 𝐾𝑝 𝑦 𝑡 − 𝑥𝑡 + 𝐾𝐷
𝜕𝑡
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
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.
▪ 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.
▪ 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.
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
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
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
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ô).
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
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
▪ 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
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 manual de um capacitor de
fluxo também foi gerado.
Aplicações
Síntese de poesia
Letras de músicas
também foram geradas,
inspiradas no estilo de
artistas específicos.
Aplicações
Síntese de música
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.
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
b#scrollTo=etzxXVZ_r-Nf.
Aplicações
This Person Does Not Exist
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
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.
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.
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.
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
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/).
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.
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.
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.
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:
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.
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/).
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.
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.
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.
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
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
Competições de futebol de robôs são frequentemente organizadas, e envolvem robôs em diversos graus de
complexidade.
Aplicações
Cimon
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.
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.
… x w y 1 2 k …
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?
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.
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
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?
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.
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
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?
▪ 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:
O eventual surgimento de robôs com consciência leva à questão: robôs devem receber direitos semelhantes aos
concedidos a seres humanos?
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
▪ 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
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!