Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 1
3
Introduo
4
Redes Neurais Artificiais (RNA)
Robert Hecht-Nielsen, definiu rede neural como:
5
Inspirao biolgica
6
A unidade bsica do crebro o neurnio.
Aproximadamente 86 bilhes
Aproximadamente 1010 de sinapses.
7
8
9
Os dentritos: recebem os estmulos transmitidos pelos
outros neurnios;
O corpo de neurnio, tambm chamado de soma:
responsvel por coletar e combinar informaes vindas
de outros neurnios;
Axnio: constitudo de uma fibra tubular que pode
alcanar at alguns metros, e responsvel por
transmitir os estmulos para outras clulas. 10
Em mdia, cada neurnio forma
entre mil e dez mil sinapses.
11
Crebro humano
12
Quadro comparativo entre
crebro e o computador
Parmetro Crebro Computador
Material Orgnico Metal e plstico
Velocidade Milisegundos Nanosegundos
Tipo de Processamento Paralelo Seqencial
Armazenamento Adaptativo Esttico
Controle de Processos Distribudo Centralizado
Nmero de elementos
1011 1014 105 106
processados
15
Aproximador de funes
A caracterstica mais significante de redes
neurais est em sua habilidade de
aproximar qualquer funo contnua ou no
contnua com um grau de correo
desejado. Esta habilidade das redes neurais
as tem tornado til para modelar sistemas
no lineares.
16
Mapeamento Entrada-Sada
para Aproximao de Funes
17
Teorema da Projeo Linear
Objetivo da aproximao de funes: em uma rea compacta
S do espao de entrada descrever uma funo f(x), pela
combinao de funes i(x) mais simples:
N
f (x, w ) = wi i (x )
i =1
f (x ) f (x, w ) <
e pode ser arbitrariamente pequeno.
A funo f (x, w ) chamada de aproximante e as funes
{i(x)} so chamadas de funes elementares.
18
Redes Neurais Artificiais (RNA)
Devido sua estrutura, as Redes Neurais
Artificiais so bastante efetivas no
aprendizado de padres a partir de dados:
no-lineares,
incompletos,
com rudo e at
compostos de exemplos contraditrios.
19
Histrico
20
Histrico (1943)
O neurofisiologista McCulloch e matemtico
Walter Pitts (1943), cujo trabalho fazia uma
analogia entre clulas vivas e o processo
eletrnico, simulando o comportamento do
neurnio natural, onde o neurnio possua
apenas uma sada, que era uma funo do
valor de suas diversas entradas.
21
O neurnio de McCulloch e Pitts
Consiste basicamente de
um neurnio que executa
uma funo lgica.
Os ns produzem somente
resultados binrios e as
conexes transmitem
exclusivamente zeros e
uns.
As redes so compostas
de conexes sem peso, de
tipos excitatrios e
inibitrios.
Cada unidade
caracterizada por um certo
limiar (threshold).
22
Histrico (1949)
O psiclogo Donald Hebb, demostrou que a
capacidade da aprendizagem em redes neurais
biolgicas vem da alterao da eficincia sinptica,
isto , a conexo somente reforada se tanto as
clulas pr-sinpticas quanto as ps-sinpticas
estiverem excitadas;
24
Histrico (1958)
Rosemblatt (1958) mostrou em seu livro
(Principles of Neurodynamics) o modelo
dos "Perceptrons".
retina
conexes
locais conexes
aleatrias
26
associao
retina resposta
27
Histrico (1960)
Em 1960 surgiu a rede ADALINE
(ADAptative LInear NEtwork) e o MADALINE
(Many ADALINE), proposto por Widrow e
Hoff.
28
Histrico (1969)
Foi constatado por Minsky & Papert que um
neurnio do tipo Perceptron s capaz de
resolver problemas com dados de classes
linearmente separveis.
29
Histrico (1960-1970)
30
Histrico (1982)
31
Histrico (1986)
Rumelhart, Hinton e Williams introduziram
o poderoso mtodo de treinamento
denominado Backpropagation.
32
Histrico (1988)
Broomhead e Lowe descreveram um
procedimento para o projeto de uma rede
neural (feedforward) usando funes de
base radial (Rede de Base Radial RBF).
33
Neurnio artificial
34
Componentes do neurnio artificial
A juno somadora; e
A funo de ativao.
35
entrada fixa wk0=bk (bias)
x0=+1 wk0
x1 wk1
funo
de ativao
sinais uk yk
x2 wk2
de f(uk)
entrada
sada
juno
aditiva
xm wkm Funo
degrau
pesos
sinpticos 36
Princpio de funcionamento
A operao de um neurnio artificial se resume em:
Sinais so apresentados entrada (x1 xm);
Cada sinal multiplicado por um peso que indica sua
influncia na sada da unidade (wk);
feita a soma ponderada dos sinais que produz um nvel
de atividade (uk);
A funo de ativao f(uk) tem a funo de limitar a sada e
introduzir no-linearidade ao modelo.
O bias bk tem o papel de aumentar ou diminuir a influncia
do valor das entradas.
possvel considerar o bias como uma entrada de valor
constante 1, multiplicado por um peso igual a bk.
Expresso matemtica do neurnio
artificial
Matematicamente a sada pode ser expressa por:
m
yk = f (uk ) = f wkj x j + bk
j =1
ou considerando o bias como entrada de valor x0=1 e
peso wk0=bk,
m
y k = f (u k ) = f wkj x j
j =0
38
Funes de ativao
39
Funo de ativao tangente hiperblica
e puk e puk f
f (u k ) = tanh( pu k ) = puk = p (1 u k2 ) > 0
e + e puk u k
(a) (b)
Tangente hiperblica (a) e sua derivada (b). 40
Funo de ativao logstica (sigmide)
e puk 1 f
f (u k ) = puk = = pu k (1 u k ) > 0
e + 1 1 + e puk u k
(a) (b)
Sigmide (a) e sua derivada (b). 41
Funo de ativao semi-linear
1 se puk 1
f (uk ) = puk se 0 < puk < 1
0 puk 0
se
p constante e positivo
(a) (b)
Funo de ativao semi-linear (a) e sua derivada (b). 42
Resposta do neurnio (sada)
Considerando um neurnio artificial com duas
entradas (x1, x2) e funo de ativao sigmide:
43
Separao Linear
Sabe-se que se formarmos uma combinao linear de duas
variveis, e igual-la a um nmero, ento os pontos no espao
bidimensional podem ser divididos em trs categorias:
a) pontos pertencentes linha com coordenadas tais que
w1. x1 + w2 . x2 = q
b) pontos em um lado da linha tem coordenadas tais que
w1 . x1 + w2 . x2 < q
c) pontos no outro lado da linha tem coordenadas tais que
w1 . x1 + w2 . x2 > q .
y = f ( w1 x1 + w2 x 2 + w0 ), onde w0 = b
44
Exemplo x2
f(u)
u y
x1 w1
x2 w2
f (u ) = 1 se u 0
y = f ( w1 x1 + w2 x 2 + w0 ), sendo
f (u ) = 0 se u < 0
47
Funes linearmente separveis (a) e (b)
Treinamento do neurnio
48
Exemplo: um neurnio para a funo AND
de 2 entradas
49
x1
w1
= 0.5
pesos
x0
=1
entradas
x1 x2 u y
a sada 1 para os padres 01,
0 0 -0.3 0
10 e 11, enquanto desejamos que
0 1 0.3 1
1 0 0.2 1 a sada seja 1 somente para o
padro 11.
1 1 0.8 1
50
Seqncia de passos na aplicao do algoritmo
Inicio w1 = 0.5 w2 = 0.6 w0 = -0.3
Entrada 0 0 u = - 0.3 y = 0 correta
Entrada 0 1 u = 0.3 y = 1 incorreta
Correo dos pesos de 0.1 para baixo w1 = 0.5 w2 = 0.5 w0 = -0.4
Entrada 1 0 u = 0.1 y = 1 incorreta
Correo dos pesos de 0.1 para baixo w1 = 0.4 w2 = 0.5 w0 = -0.5
Entrada 1 1 u = 0.4 y = 1 correta
Entrada 0 0 u = - 0.5 y = 0 correta
Entrada 0 1 u= 0 y = 1 incorreta
Correo dos pesos de 0.1 para baixo w1 = 0.4 w2 = 0.4 w0 = -0.6
Entrada 1 0 u = - 0.2 y = 0 correta
Entrada 1 1 u = 0.2 y = 1 correta
Entrada 0 0 u = -0.6 y = 0 correta
Entrada 0 1 u = - 0.2 y = 0 correta
Entrada 1 0 u = - 0.2 y = 0 correta
Entrada 1 1 u = 0.2 y = 1 correta
Fim w1 = 0.4 w2 = 0.4 w0 = -0.6
51
Resultado do aprendizado
x1
w1
= 0.4
pesos
x0
=1
entradas
52
x2
1.5
0.5
0,0 1,0 x1
0.0 0.5 1.0 1.5
54
No caso do XOR, no existe uma nica reta que divide os
pontos (0,0) e (1,1) para um lado, e (0,1) e (1,0) do outro
lado. x2
(1,0) (1,1)
Funo xor:
(0,0) (1,0)
x1
y=0 y=1
X mxN
d 1 xN
56
57
Aprendizagem de Perceptrons
O algoritmo
58
Se os padres de entrada forem
linearmente separveis, o algoritmo de
treinamento possui convergncia
garantida, i., tem capacidade para
encontrar um conjunto de pesos que
classifica corretamente os dados.
59
Perceptrons de limiar
Algoritmo de aprendizagem simples:
60
Funo [w] = perceptron (max_it, E, , X,d)
inicializar w // para simplicidade, com zeros
inicializar b // para simplicidade, com zero
t1
while t < max_it & E > 0 do
for i from 1 to N do // para cada padro de entrada
yi f(w xi + b) // determinar a sada
ei di yi // determinar o erro
w w + ei xi // atualizar o vetor peso
b b + ei // atualizar o bias
end for
E sum (ei) //quantidade de erros
t t+1
end while
end procedure
61
62
Adaline
Na mesma poca em que Rosenblatt props o
Perceptron, Widrow e Hoff propuseram o algoritmo
dos mnimos quadrados (regra delta) para a rede
Adaline (Adaptive Linear Element), similar ao
Perceptron, porm com funo de ativao linear
ao invs de funo degrau.
63
A soma dos erros quadrticos para um determinado
padro dada por:
n n
E = e = ( d i yi )
2
i
2
i =1 i =1
65
66
67
Taxa de aprendizado baixa
Valor inicial: -4
Taxa de aprend.: 0,001
68
Valor inicial: -4
Taxa de aprend.: 0,005
69
Valor inicial: 4
Taxa de aprend.: 0,005
70
Taxa de aprendizado alta
Valor inicial: -4
Taxa de aprend.: 0,05
71
Qual o valor da
derivada quando a
funo passa por um
valor mximo ou
mnimo ?
Quando a funo
passa por um
mximo ou por um
mnimo a tangente
paralela ao eixo
X. 72
A derivada primeira informa sobre a
declividade do grfico da funo
73
Adaline (cont.)
E
wIJ = wIJ
wIJ
74
Como wIJ influencia apenas o neurnio I,
E n
=
wIJ wIJ
i =1
( d i y i
2
) =
w
( d I y I ) 2
IJ
Como
E y I
= 2(d I y I ) = 2(d I y I ) x J
wIJ wIJ
75
Regra delta
Portanto a regra delta para o Adaline resume-se em:
wIJ = wIJ + (d I y I ) x J
bI = bI + ( d I y I )
Em notao vetorial tem-se:
W = W + e i x i
T
b = b + e i
onde :
W oxm , x i mx1 , i = 1,..., N ,
ei ox1 , e b ox1 76
77
Nesse momento temos...
78
Nesse momento temos...
79
Nesse momento temos...
80
Nesse momento temos...
81
82
Implementao
83
Kit de sobrevivncia...
84
Kit de sobrevivncia...
85
8
6
Notebook
Um interface web iterative que combina cdigos,
equaes, textos e visualizaes
Suporta diversas linguagens: Python,
Haskell, Julia, R
http://www.jupyter.org
Um shell iterative aberto no browser
Conhecido como Jupyter Notebook ou IPython Notebook
In a browser
A Choice of
Kernels http://
http://
88
http://
Cdigo
89
http://
Cdigo
91
Invocando commandos para o shell do
SO
Comandos Shell
92
http://
e captura a sada 93
Comandos shell
http://
94
http://
http:// Imagens
95
Em um Browser Textos e
frmulas
Cdigo
http://
Comandos Shell
Imagens
http://
96
O que TensorFlow
Biblioteca Open source para computao
numrica usando data flow graphs
Originalmente desenvolvido pelo time
Google Brain Team para pesquisas de
machine learning e deep learning
Comparao de frameworks de
deep learning na Wikipedia
Escolha do TensorFlow
Python API
Google open source project no Github
Novembro de 2015
Ambientes heterogneos
Fcil execuo em mltiplas GPUs
Visualizao (TensorBoard)
Maior comunidade (> 10,000 commits)
Pq Tensorflow?
Gostamos pq Google?
Pq Tensorflow?
Dataflow Graph
TensorFlow usa grafo de fluxo de dados
unificado para representar a computao de
um algoritmo e os estados em que ele
opera
TensorFlow separa a definio de uma
estrutura de sua execuo
Dataflow Graph
Os ns no grafo representam operaes
matemticas, enquanto as arestas
representam vetores multidimensionais de
dados (tensors)
Dataflow Graph
import tensorflow as tf
a = tf.constant(2, name='a')
b = tf.constant(3, name='b')
A = tf.add(a, b, name =
'add')
A
Ns: operadores, variveis
e constantes
Arestas: tensors(vetores n-
d)
Dataflow Graph
Criar uma sesso,
avalia o grafo para
buscar o valor do n.
with tf.Session() as A
sess:
print sess.run(A)
Dataflow Graph
import tensorflow as tf
a = tf.placeholder("float")
b = tf.placeholder("float")
y = tf.mul(a, b)
sess = tf.Session()
print sess.run(
y, feed_dict={a: 3, b: 3})
106
Dataflow
tf.add sum
tf.sub substraction
tf.mul multiplication
tf.div division
tf.mod module
tf.abs return the absolute value
tf.neg return negative value
tf.sign return the sign
107
Dataflow
tf.inv returns the inverse
tf.square calculates the square
tf.round returns the nearest integer
tf.sqrt calculates the square root
tf.pow calculates the power
tf.exp calculates the exponential
tf.log calculates the logarithm
tf.maximum returns the maximum
tf.minimum returns the minimum 108
Dataflow
tf.minimum returns the minimum
tf.cos calculates the cosine
tf.sin calculates the sine
109
Dataflow
tf.diag returns a diagonal tensor with a
given diagonal values
tf.transpose returns the transposes of the
argument
tf.matmul returns a tensor product of
multiplying two tensors listed as arguments
110
Dataflow
tf.matrix_determinant returns the
determinant of the square matrix specified
as an argument
tf.matrix_inverse returns the inverse of the
square matrix specified as an argument
111
Dataflow Graph
Permite quebrar
grafos em vrios
pedaos e execut-
los paralelamente em
vrias CPUs, GPUs
ou dispositivos
Como comear?
Passo 1:
pip install tensorflow (para CPU)
pip install tensorflow-gpu (com GPU)
Nvidia GPUs
Nvidia GPUs
GTX 1080 lanada em Junho de 2016 usa a
arquitetura Pascal com suporte especfico
para processamento de redes neurais, 8 GB
de memria (320 GB/sec bandwidth) 8.9
TFlops.
Entre R$ 3000,00 a R$ 4000,00
Outros modelos para iniciantes
GTX 650 R$ 400,00 (GPU Capability 3.0)
Aguardem a lista de 87
exerccios....
116
Prxima aula:
Como treinar uma rede neural com vrios
neurnios (Fortes emoes).
117
Fim
www.deeplearningbrasil.com.br
118