Introdução ao
Machine Learning
Prof. Dr. Diego Bruno
Education Tech Lead na DIO
Doutor em Robótica e Machine Learning pelo ICMC-USP
[1]
Machine Learning Machine Learning
Prof. Dr. Diego Bruno
[2]
Máquinas que pensam como
humanos
Máquinas que pensam...
• Treinamento de sistemas de
Inteligência Artificial;
• Tomada de decisão com
suporte de base de regras
bem definidas;
• Não toma decisão com base na
emoção;
• Automação para correção e
suporte de falhas humanas. 3
Como a IA é vista hoje?
IA Geral
IA Restrita
Aprendizado de Máquina
Steven Spielberg
Ficção Científica
Ex Machina
Um humano escolhido para o teste de Turing com uma máquina com IA:
➢ Baseado no jogo da imitação
Ex Machina
Um humano escolhido aplicando o teste de Turing em uma máquina:
O Teste de Turing testa a
capacidade de uma máquina
exibir comportamento
inteligente equivalente a um
ser humano, ou indistinguível
deste.
Primeiro Robô a ter cidadania
Interação humano-robô
➢ Capaz de reproduzir 62 expressões faciais
➢ Objetivo é conseguir uma maior aceitação da robótica
no mesmo ambiente humano
➢ Ainda não consegue passar no teste de Turing
Mas qual a
relação entre ML e
IA?
[9]
Mas qual a Relação entre ML e IA?
Aprendizado de(ou
Por meio do ML obtemos Máquina
não) uma IA restrista.
Aprendizado de
Máquina
(Treinamento)
Inteligência Artificial
10
Mas o que é Machine Learning?
Aprendizado de de
Dependente de uma base Máquina
conhecimento...
O objetivo do aprendizado de
máquina (ou "machine learning")
é programar computadores para
aprender um determinado
comportamento ou padrão
automaticamente a partir de
exemplos ou observações.
DATASETS
11
Inteligência
Artificial Restrita
[12]
Exemplo de Aprendizado
Aprendizado de Máquina
13
Inteligência Artificial Restrita
Baseadas em RNAs
14
Aplicações em
Veículos Autônomos
[15]
Pesquisa em Veículos - ADAS
Trabalho de doutorado:
Diego Renan Bruno
16
Serviço
●
17
Trabalhos Realizados
CARINA 1 CARINA 2
18
Trabalhos Realizados
19
Trabalhos Realizados
20
Trabalhos Realizados
21
Trabalhos Realizados
22
Trabalhos na agricultura
23
Trabalhos Realizados
24
Trabalhos Realizados
25
Cão-guia Robótico V2
• Hardware
• Controle
• Visão Computacional
26
Dataset
Transfer Learning: Dataset de treinamento para o sistema
150 imagens 100 imagens 300 imagens
27
Sensoriamento: Dados gerados
Fusão de Sensores para Visão Computacional:
➢ Câmera estéreo 3D:
Imagem 3D – (para detecção)
Imagem 2D – (para reconhecimento)
➢ LIDAR - Velodyne HDL- 32E:
Nuvem de pontos 3D – (para detecção)
Fator de refletância dos objetos placas
28
Sensoriamento 2D Data
Fusão de Sensores para Visão Computacional:
3D Data
29
Deep Learning - TensorFlow
Extração de features 2D:
➢ CNN: Aprendem automaticamente a extrair features em imagens 2D
Figura 2: DCNN – [TensorFlow]
30
Bibliotecas de ML
31
Bibliotecas de ML
32
Vamos ver algo na prática?
COLAB: Ferramenta online de Machine Learning
33
Contextualização e motivação
Detecção de placas e semáforos de trânsito
34
Redes de Detecção
Transfer Learning
YOLO - VGG + Inception V3
Figura 2: Transfer Learning
35
Arquitetura de um Carro Autônomo
Diagrama de blocos do sistema
Figura 3: Diagrama de blocos
36
Seguidores de linha (GPS)
Planejamento de rotas - GPS
37
Problemas... O mapeamento dos sinais de
trânsito não seria eficiente neste
Detecção de placas móveis – (rotas não mapeadas): tipo de situação
➢ Atenção Visual: Desvios, trechos em obras, perigo na pista;
Desvios: Rota auxiliar Trecho em obras: Velocidade reduzida
38
Planejamento de rotas
39
Atenção visual
Análise do ambiente de navegação com regras de trânsito
em conjunto com o comportamento do condutor
40
Funcionamento do Sistema
Percepção externa + percepção interna
ADAS proposto:
41
ADAS Máquina de Estados + RNA
Classificação dos problemas de desrespeito as leis de trânsito
➢ Suporte ao controle autônomo ou semi-autônomo;
➢ Neuro-FSM: Suporte a detecção e correção de falhas.
Figura 28: Mapa utilizado Figura 29: Neuro-FSM
42
ADAS para correção de falhas humanas
Rotinas automáticas para suporte a tomada de decisão:
➢ Detecção de falhas humanas;
➢ Detecção de falhas de controle autônomo.
43
Resultados obtidos
Artigo para o LARS (Latin American Robotics Symposium) - 2017
44
Resultados Obtidos
Algoritmo de Slide Window
• Poder do Deep Learning X Modelos de detecção 3D
Figure 5: Slide window algorithm execution [4]
45
Resultados Obtidos
Resultados para oclusão de imagens
Figure 6: Severe problem of occlusion of traffic signs [6] (a) 80km (b)
70km
and (c) problem of occlusion [4]
46
Resultados Obtidos
Gráfico 3: Comparação dos testes de classificação
47
Visão 2D – CNN Segnet
• Detecção em dados (imagens) 2D – Estado da arte em visão 2D
48
Deep Learning - YOLO
49
Intelligent Robotic
Applications
2D Computer Vision + ML /
DL
[Link]
ws/news_releases/[Link]?i
d=1883
[Link]
50
[Link]
MASK-RCNN Deep Learning
51
DeepLAB - Deep Learning
Detecção + Segmentação de objetos
52
O mundo é visto de
forma 2D ou 3D?
[53]
Problemas em Visão 2D
[Link]
sensors/ But also… Researchers hack a self-driving car by putting stickers on street signs
54
Problemas em Visão 2D
Veículo Autônomo:
“Pare” para sempre...
Fotos de pessoas,
Semáforos, Placas de Trânsito,
etc.
55
Problemas de visão 2D
56
Problemas em Visão 2D
Smartphones
Face
Unlock
Fail
[Link]
[Link]
57
Analysis and fusion of 2D and 3D images applied for detection
and recognition of traffic signs using a new method of features
extraction in conjunction with Deep Learning
Diego Renan Bruno and Fernando Santos Osório
Our knowledge base is
Metodologia formed by a set of objects
Visual attention and recognition
➢ Computer vision system and artificial intelligence
Visual attention 2D recognition – Artificial Intelligence
Metodologia
2D 3D
2 classes of
objects
Object
detected
2D and 3D data fusion Extraction of 3D + ANN features
(notion of depth and colors /
textures)
Metodologia
We apply Deep Learning to classify the bounding boxes that represent
the vertical traffic signals
Detection representation in 2D (x, y) Traffic sign detected
Deep Learning and recognized
Imagem 2D (Inception V3)
(RGB)
As leis de trânsito são obedecidas?
Ética para Sistemas
Inteligentes
[63]
64
Eu, robô - Asimov
As três leis de Asimov funcionam?
Tomada de decisão sem
sentimentos
Proteger o seu dono
ou a criança...?
66
Tomada de atitude sem sentimentos
Um carro autônomo deve matar o bebê ou a avó?
Depende de onde você é.
Proteger o idoso ou a
criança?
67
Aplicações de ML
e IA
[68]
Suporte para medicina
69
Suporte para medicina
70
Suporte para medicina
●
71
Revolução Industrial
Industria 4.0
4 Revolução
Industrial
C
2012 Sistemas Ciber-
Físicos O
M
3 Revolução P
Industrial L
1969 Primeiro Controlador Lógico
E
Programável (PLC), Modicon 084 X
2 Revolução I
Industrial D
A
1 Revolução 1870 Primeira linha de
Industrial D
produção (abatedouros de
Cincinnati) E
1784 Primeiro tear
mecânico
72
Fonte: adaptado de ACATECH, 2013
Revolução Industrial
73
Revolução Industrial
Robótica Industrial
Robôs de produção
Controle do homem morto
74
Robôs colaborativos
75
Robôs colaborativos
76
Problemas de IA
Reconhecer o tipo da carne
Grandes valores
77
Problemas de IA
Algo parecido já é feito...
78
BIG data
Análise de grandes volumes de dados...
Lavoura Bancos
79
Sistemas de Recomendação
Como vender produtos relacionados...
80
Sistemas de Recomendação
Como vender produtos relacionados...
81
Suporte para a Medicina
Dar suporte para um médico...
82
Alguém gostaria de vida eterna?
Um avatar semelhante a um holograma
Um avatar com um cérebro artificial no qual uma personalidade
humana é transferida no final da vida
Um avatar em que um cérebro humano é transplantado no
final da vida
uma cópia robótica de um corpo humano controlada
remotamente via BCI
Transhumanismo
Melhoramento cerebral e corporal
Máquina que pensam como humanos
85
Máquina que pensam...
86
Máquinas que pensam...
Neurocientista brasileiro Miguel Nicolelis
87
Máquinas que pensam como seres humanos
Aplicações de reabilitação humana – sistemas cognitivos
88
Máquinas que pensam...
Obrigado! Machine Learning
Prof. Dr. Diego Bruno
[90]
Métodos de Machine Learning
Bioinspirados
Prof. Dr. Diego Bruno
Education Tech Lead na DIO
Doutor em Robótica e Machine Learning pelo ICMC-USP
[91]
Algoritmos
Bioinspirados Machine Learning
Prof. Dr. Diego Bruno
[92]
De onde veio a idéia de ensinar
uma máquina?
Baseadas (Machine Learning)
em RNAs
Machine Learning
93
Buscando inspiração
naBaseadas
Naturezaem RNAs
94
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
• Inspirados no Comportamento de Seres vivos em
convivência social;
• Conhecimento Colaborativo/compartilhado;
• Métodos Heurísticos (não determinísticos);
• Buscam a melhor solução global;
95
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
Colônia de Formigas
96
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
Colônia de Abelhas
97
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
Redes Neurais
98
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
Genética
99
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
Fuzzy: Qual taça tem bastante vinho?
100
O que são Algoritmos
Bioinspirados?
Baseadas em RNAs
Fuzzy: Qual o tamanho de uma pessoa alta?
101
Algoritmos heurísticos x
Determinísticos
[102]
Qual a Diferença entre valores
Determinísticos e Heuristícos?
Baseadas em RNAs
Determinístico Heurístico
Qual o valor? O mais bonito?
103
Qual a Diferença entre valores
Determinísticos e Heuristícos?
Baseadas em RNAs
Determinístico Heurístico
104
Qual a Diferença entre valores
Determinísticos e Heuristícos?
Baseadas em RNAs
Valores Fuzzy:
105
Redes Neurais Artificiais
[106]
O que mais usamos: RNA
Baseadas em RNAs
107
Aplicações em Sistemas
[108]
Algoritmos de roteamento
Robótica
Baseadas em RNAs
Destino
109
Algoritmos de roteamento
Redes
Baseadas em RNAs
110
Obrigado! Machine Learning
Prof. Dr. Diego Bruno
[111]
Redes Neurais Artificiais
Teoria e Prática
Prof. Dr. Diego Bruno
Education Tech Lead na DIO
Doutor em Robótica e Machine Learning pelo ICMC-USP
[112]
Redes Neurais
Prof. Dr. Diego Bruno
[113]
O que são Redes Neurais?
Redes Neurais
Baseadas em RNAs
114
Qual a estrutura de uma RNA?
Baseadas em RNAs
115
Redes Biológicas x Arficiais
Baseadas em RNAs
116
Neurônio Artificial
Baseadas em RNAs
117
Dados de entrada e
saída
[118]
Redes Neurais Biológicas x
Arficiais
Baseadas em RNAs
Dados
interpretados na
saída
Entrada Processo
119
Relação de entrada e saída
Baseadas em RNAs
120
Análise de
Características
(Features)
[121]
Redes Neurais Artificiais
Baseadas em RNAs
122
Dados a serem interpretados
Baseadas em RNAs
123
Análise de características (features)
Baseadas em RNAs
124
Caixa preta gerada no treino
Baseadas em RNAs
Caixa preta
125
Mas como são as
Features?
[126]
Como são as features?
Outros Objetos
Baseadas em RNAs
127
Classificação
[128]
Classificação de objetos
Baseadas em RNAs
Aqui temos duas
classes
129
Dados a serem interpretados
Baseadas em RNAs
130
Dados a serem interpretados
Baseadas em RNAs
Entrada Rótulo Classificação
131
Classificação de objetos
Mnist Dataset
Baseadas em RNAs
Aqui temos 9 classes
132
DATASET – Base de treino
Baseadas em RNAs
Classe “gatos”
133
Mas o que gera um
Treinamento?
[134]
Dados de aprendizado
Baseadas
Pesos em
gerados no RNAs
treinamento
135
Dados de aprendizado
Baseadas
Arquivos em
de pesos RNAs
136
Modelo de treinamento
Baseadas
Arquivos em
de pesos RNAs
137
Modelo de treinamento
Baseadas
Pesos emuma
gerados em RNAs
rede
138
Algoritmo
[139]
Modelo de treinamento
Baseadas
Relação em
dos pesos RNAs
140
Algoritmo
Baseadas
Treinamento em RNAs
da RNA
141
Importando Modelos de RNA
Baseadas em RNAs
142
Exemplo de RNA no COLAB
Baseadas em RNAs
[Link]
dados/blob/master/notebooks/Aula_18_a_Redes_Neurais_com_TensorFlow.ip
ynb#scrollTo=6zmMUxg8pfqE 143
Exemplo de RNA no COLAB
Baseadas em RNAs
[Link]
cial/mask_rcnn/mask_rcnn_demo.ipynb#scrollTo=X8rPd4MyrDsn
144
Obrigado!
Prof. Dr. Diego Bruno
[145]
Algoritmos Genéticos
Teoria e Prática
Prof. Dr. Diego Bruno
Education Tech Lead na DIO
Doutor em Robótica e Machine Learning pelo ICMC-USP
[146]
Algoritmos Genéticos
Prof. Dr. Diego Bruno
[147]
O que são Algoritmos Genéticos?
Algoritmo genético (AG)
Baseadas em RNAs A base do AG é dada pela
evolução de amostras
148
Etapas do AG
Prof. Dr. Diego Bruno
[149]
O que são Algoritmos Genéticos?
Algoritmos baseados na genética biológica
Baseadas em RNAs
150
O que são Algoritmos Genéticos?
Algoritmos baseados na genética biológica
Baseadas em RNAs
Soluções
Heurísticas e não
determinísticas
Gerar o melhor valor
possível: ótimo
global
151
AG são heurísticos
Prof. Dr. Diego Bruno
[152]
Aplicações de AG
Onde aplicamos AG? Exemplo: encontrar um funcionário
Baseadas em RNAs
Trabalhamos com regiões de
busca
Soluções Heurísticas e não
determinísticas
153
Definição para AG
Prof. Dr. Diego Bruno
[154]
Definições
Onde aplicamos AG?
Baseadas em RNAs
Um Algoritmo Genético (AG) é uma técnica de busca
utilizada na ciência da computação para achar soluções
aproximadas em problemas de otimização e busca.
155
Aplicações de AG
Prof. Dr. Diego Bruno
[156]
Aplicações de AG
Onde aplicamos AG?
Baseadas em RNAs
• Navegação robótica
• Inteligência Artificial
• Geração de novos dados
• Jogos digitais
157
Aplicações de AG
Exemplo: Aplicações em ensino e chatbots
Baseadas em RNAs
Gerar combinações de
respostas para o usuário
Gerar combinações de
perguntas
Deixar o sistema mais
próximo de uma interação
humana
158
Aplicações de AG
Exemplo: Planejamento de rotas em robôs móveis
Baseadas em RNAs
159
Métodos para AG
Prof. Dr. Diego Bruno
[160]
Como implementar um AG?
Passo 0: Gera população inicial
Baseadas em RNAs
Gera população de forma
aleatória
Define a população dentro
de uma região de busca
161
Como implementar um AG?
Passo 1: Seleção dos melhores indivíduos iniciais
Baseadas em RNAs
Método de seleção por
roleta
Seleciona os melhores
indivíduos dada sua
probabilidade
162
Como implementar um AG?
Passo 2: Recombinação de indivíduos
Baseadas em RNAs
A recombinação vai
recombinar os dois
melhores indivíduos
A meta e gerar um indivíduo
melhor do que seus pais
163
Como implementar um AG?
Passo 3: Seleção dos melhores indivíduos iniciais
Baseadas em RNAs
Selecionar um ponto do
cromossomo e gerar
mutação
Evita a convergência
prematura do AG
164
Funcionamento
Prof. Dr. Diego Bruno
[165]
Funcionamento na prática...
Gerar soluções para o comportamento dos personagens
em Baseadas
um game em RNAs
Evitar comportamentos
repetidos entre os agentes
do game
Gerar comportamentos
novos para cada agente
166
Funcionamento na prática...
Ensinar um agente em seu funcionamento desde o ponto
Baseadas em RNAs
“zero”.
Ensinar o comportamento
do agente do “zero”
Aprendizado por tentativa e
erro
167
Funcionamento na prática...
Vamos ver algo mais simples...
Baseadas em RNAs
[Link] 168
Funcionamento na prática...
Vamos ver algo mais simples...
Baseadas em RNAs
Ensinar o comportamento
do agente do “zero”
Aprendizado por tentativa e
erro
Fonte:
[Link]
slAk 169
Implementação
Prof. Dr. Diego Bruno
[170]
Funcionamento na prática...
Implementação do algoritmo no Colab
Baseadas em RNAs
Fonte: [Link]
[Link]#scrollTo=TSrmSBdE7r0q 171
Funcionamento na prática...
Implementação do algoritmo no Colab
Baseadas em RNAs
Problema NP-Completo
Fonte:[Link]
[Link]#scrollTo=LpqGIGoa48vn 172
Obrigado!
Prof. Dr. Diego Bruno
[173]
Máquina de Vetores de Suporte
Teoria e Prática
Prof. Dr. Diego Bruno
Education Tech Lead na DIO
Doutor em Robótica e Machine Learning pelo ICMC-USP
[174]
Máquina de Vetores de
Suporte (SVM)
Prof. Dr. Diego Bruno
[175]
O que são SVMs?
Máquina de Vetores de Suporte
Baseadas em RNAs
176
Tipos de aprendizado
Não supervisionado
Baseadas em RNAs
[Link]
177
supervisionado
Tipos de aprendizado
Supervisionado
Baseadas em RNAs
Fonte: [Link] 178
Tipos de aprendizado
Supervisionado
Baseadas em RNAs Os algoritmos de
aprendizagem supervisionada relacionam
uma saída com uma entrada com base em
dados rotulados. Neste caso, o usuário
alimenta ao algoritmo pares de entradas e
saídas conhecidos.
Fonte: [Link] 179
Diferenças entre RNA e SVM?
Supervisionado
Baseadas em RNAs Na prática não há muita
diferença... O principal
fator é o modo de
estabelecer o
hiperplano.
SVM buscando a
otimização das margens
e a RNA buscando o
mínimo global
SVM RNA
Fonte: [Link] 180
Resultado esperado de uma SVM
Supervisionado SVM buscando a
Baseadas em RNAs otimização das margens
e a RNA buscando o
mínimo global
SVM RNA
[Link] 181
Por que “Máquina de Vetores”?
Os “Vetores de suporte” são simplesmente as coordenadas da observação
Baseadas em RNAs individual. Uma SVM é uma fronteira que melhor realiza as duas
classes (hiperplano / linha).
[Link] 182
Desenvolvendo a hipótese
Desenvolvendo a hipótese: Aqui, temos três hiperplanos (A, B e C). Mas qual o
Baseadas em RNAs
hiperplano certo para classificar estrela e círculo?
[Link] 183
Desenvolvendo a hipótese
Aqui, temos três hiperplanos (A, B e C) e todos estão dividindo bem as classes.
Baseadas em RNAs
Agora, como podemos identificar o hiperplano certo?
[Link] 184
Desenvolvendo a hipótese
Maximizar as distâncias entre o ponto de dados mais próximo (de qualquer
Baseadas em RNAs
classe) e o hiperplano nos ajudará a decidir o hiperplano correto
[Link] 185
Implementação
Prof. Dr. Diego Bruno
[186]
Obrigado!
Prof. Dr. Diego Bruno
[187]
DATASETs
Teoria e Prática
Prof. Dr. Diego Bruno
Education Tech Lead na DIO
Doutor em Robótica e Machine Learning pelo ICMC-USP
[188]
O que é um Dataset?
[189]
Dataset
os
Baseadas em RNAs
Fonte: [Link]
piyush-pareek/?trk=public_profile_article_view 190
Dataset
Como devem ser minhas amostras?
Baseadas em RNAs
Fonte: [Link]
piyush-pareek/?trk=public_profile_article_view 191
Dataset
Como devem ser minhas amostras?
Baseadas em RNAs
Fonte: [Link]
piyush-pareek/?trk=public_profile_article_view 192
Como criar um Dataset?
Como gerar uma base de dados...
Baseadas em RNAs
193
Serviços de DATASETs?
Bases de dados disponíveis
Baseadas em RNAs
194
O que são SVMs?
Máquina de Vetores de Suporte
Baseadas em RNAs
195
Tipos de aprendizado
[196]
Tipos de aprendizado
Não supervisionado
Baseadas em RNAs
[Link]
197
supervisionado
Tipos de aprendizado
Supervisionado
Baseadas em RNAs
Fonte: [Link] 198
Tipos de aprendizado
Supervisionado
Baseadas em RNAs Os algoritmos de
aprendizagem supervisionada relacionam
uma saída com uma entrada com base em
dados rotulados. Neste caso, o usuário
alimenta ao algoritmo pares de entradas e
saídas conhecidos.
Fonte: [Link] 199
Diferença entre RNA e
SVM
[200]
Diferenças entre RNA e SVM?
Supervisionado
Baseadas em RNAs Na prática não há muita
diferença... O principal
fator é o modo de
estabelecer o
hiperplano.
SVM buscando a
otimização das margens
e a RNA buscando o
mínimo global
SVM RNA
Fonte: [Link] 201
Resultado esperado de uma SVM
Supervisionado SVM buscando a
Baseadas em RNAs otimização das margens
e a RNA buscando o
mínimo global
SVM RNA
[Link] 202
Por que “Vetores”?
[203]
Por que “Máquina de Vetores”?
Os “Vetores de suporte” são simplesmente as coordenadas da observação
Baseadas em RNAs individual. Uma SVM é uma fronteira que melhor realiza as duas
classes (hiperplano / linha).
[Link] 204
Desenvolvimento
[205]
Desenvolvendo a hipótese
Desenvolvendo a hipótese: Aqui, temos três hiperplanos (A, B e C). Mas qual o
Baseadas em RNAs
hiperplano certo para classificar estrela e círculo?
[Link] 206
Desenvolvendo a hipótese
Aqui, temos três hiperplanos (A, B e C) e todos estão dividindo bem as classes.
Baseadas em RNAs
Agora, como podemos identificar o hiperplano certo?
[Link] 207
Desenvolvendo a hipótese
Maximizar as distâncias entre o ponto de dados mais próximo (de qualquer
Baseadas em RNAs
classe) e o hiperplano nos ajudará a decidir o hiperplano correto.
[Link] 208
Desenvolvendo a hipótese
Neste caso, o melhor hiperplano é o B ( já que ele tem uma margem maior em
Baseadas em RNAs
comparação a A)?
[Link] 209
Desenvolvendo a hipótese
Existem caso onde não é possivel separar as duas classes usando uma linha reta,
Baseadas em RNAs
pois uma das classes está no território de outra (outlier).
O SVM tem recursos
para ignorar valores
discrepantes
SVM é robusto para
outliers
[Link] 210
Algoritmos
[211]
Obrigado!
Prof. Dr. Diego Bruno
[212]