Percept Ron
Percept Ron
Funcionamento do Perceptron
Onde:
z = f (x 1 , x 2 )
f (x 1 , x 2 ) = (x 1 ⋅ w 1 ) + (x 2 ⋅ w 2 )
Z = ∑ xi wi
i=1
Os pesos, no início do Perceptron, são definidos aleatoriamente
e, conforme o treinamento avança, vão se ajustando aos dados.
f (x 1 , x 2 ) = (1 ⋅ 0.1) + (0 ⋅ 0.2)
Z = 0.1
y = σ(w 1 x 1 + w 2 x 2 + ⋯ + w n x n )
y = σ (∑ w i x i )
i=1
1, se x ≥ 1
σ(x) = {
0, se x < 1
Wi é o peso atualizado
Wi é o peso a ser atualizado
η (eta) é a taxa de aprendizagem
Xi é o valor da entrada n
erro (diferença entre saída desejada e calculada) (d−y)
w 1 = 0 + (0.5 ⋅ 1 ⋅ 1)
w 1 = 0.5
w 1 = 0 + (0.5 ⋅ 1 ⋅ 1)
w 2 = 0.5
Limitação do Perceptron
O Perceptron até aqui aparentou ser um algoritmo muito poderoso,
mas a verdade é que ele por si só é capaz de resolver apenas
problemas linearmente separáveis (O que não são os casos de
problemas reais).
A imagem abaixo mostra a fronteira de decisão do perceptron que
treinamos para resolver uma tabela AND, repare que ele gera uma
linha reta para classificar os dados.
Sigmoid
A função sigmoid é responsável por introduzir não linearidade no
sistema. Ela transforma uma saída linear em valores entre 0 e 1, os
quais são comumente interpretados como probabilidades em tarefas
de classificação. Por exemplo, em uma rede neural treinada para
classificar uma radiografia e identificar se um osso está ou não
fraturado, um resultado de 0,82 pode ser interpretado como 82% de
chance de o osso realmente estar quebrado.
1
σ(x) =
−x
1 + e
1 1 1 1 1 1 1
e ≈ 1 + + + + + + + ...
1! 2! 3! 4! 5! 6! 7!
y = σ(1 ⋅ 0, 1 + 2 ⋅ 0.5)
y = σ(1.1)
y = 0.75
x1
⎡ ⎤
x2
→
x =
x3
⎣ ⎦
xn
E os pesos:
w1
⎡ ⎤
w2
→
w =
w3
⎣ ⎦
wn
w→ ⊤
= [w 1 w2 w3 ⋯ wn ]
z = w → x
→ ⊤
2
w→ ⊤
= [ 1,5 −0,5], →
x = [ ]
3
→ x
z = w → = (1,5 × 2) + (−0,5 × 3) = 3 − 1,5 = 1,5
⊤
2
w→ ⊤
= [ 1,5 −0,5], →
x = [ ]
3
→ x
z = w → = (1,5 × 2) + (−0,5 × 3) = 3 − 1,5 = 1,5
⊤
1 1 1
y
^ = σ(z) = ≈ ≈ ≈ 0,777
−1,5
1 + e 1 + 0,2231 1,2231