Sie sind auf Seite 1von 7

23/03/2018 2017 – O Estudante independente

Introdução ao Perceptron passo


a passo
Hoje teremos o primeiro contato com Redes Neurais Artificiais, estudaremos o funcionamento do perceptron e
como treiná-lo.

Antes de mais nada é importante lembrar que existem várias maneiras de se treinar um perceptron. A mais
popular entre elas é a Delta Rule irei utilizá-la com alguns ajustes para se tornar mais fácil a interpretação de
cada passo envolvido no treinamento de um perceptron.

O Perceptron é um classificador linear isso que dizer que ele só ira lidar com problemas de classificação onde o
conjunto de dados seja linearmente separável.

Apesar dessa limitação ele não é um algoritmo fraco. Pois por mais que seja difícil achar um conjunto de dados
linearmente separável em aplicações reais, ele pode ser combinado com outros algoritmos para se aumentar a
precisão.

E claro podemos analisar a relação entre as dimensões de um conjunto de dados pois dependendo da forma em
que agrupamos as classes é possível que ele seja linearmente separável em uma combinação específica das
dimensões dadas.

Ele também pode ser usado para problemas de regressão nesse caso ele tem o mesmo efeito que uma regressão
linear como veremos em futuros posts.

Com algumas alterações também é possível aplicá-lo em problemas com mais de duas classes.

O Algoritmo

https://juliocprocha.wordpress.com/2017/ 1/7
23/03/2018 2017 – O Estudante independente

Antes de partirmos para o problema vamos analisar o algoritmo.

Acima temos o algoritmo representado de forma esquemática, onde e são os inputs e e são os
respectivos pesos de cada input.

E é uma combinação linear desses inputs ponderada pelos pesos, ela gera o output do node e é dada por:

Onde é output desse Node. Depois disso ele é avaliado por uma função de perda, para problemas de
classificação binária é muito comum o uso da 0-1 loss function:

Para uma melhor ideia de como o perceptron processa a informação vamos a um exemplo.

Suponha o seguinte:

Com isso teremos o seguinte esquema:

https://juliocprocha.wordpress.com/2017/ 2/7
23/03/2018 2017 – O Estudante independente

A ideia aqui é focar apenas no processamento da informação realizado pelo perceptron. Na figura entra os inputs
2 e 4, eles são multiplicados pelos seus respectivos pesos e depois somados, o output dessa operação então é
avaliado pela função de perda que da o output final.

A operação é bem simples. Mas a ideia é saber como o perceptron chega nos valores ideais de cada peso fazendo
assim com que cada instância seja classificada de forma correta.

Para isso vamos partir para um exemplo.

Classificação com duas classes.

Para o exemplo usarei um conjunto de quatro pontos no plano que são Linearmente separáveis e treinaremos o
perceptron para achar um discriminante que divida o conjunto em duas partes.

Veja o gráfico abaixo:

https://juliocprocha.wordpress.com/2017/ 3/7
23/03/2018 2017 – O Estudante independente

Temos um conjunto de quatro pontos no gráfico acima, usaremos o Perceptron para achar um discriminante que
divida o plano em duas áreas. Para assim podermos classificá-las de forma correta.

Para esse exemplo não usaremos bias, pois fica claro que a reta que divide os dois conjuntos de pontos passa na
origem, e também o intuito é te mostrar como funciona o processo de treinamento do perceptron passo a passo
mas falaremos sobre bias em futuros posts.

Para facilitar vamos representar o dataset em uma tabela:

Para nosso exemplo defini Azul igual 1 e Vermelho igual a 0.

O procedimento para se treinar uma perceptron para classes binárias não é complicado. Primeiro iremos definir
pesos aleatórios para os vetores e .

Logo teremos:
https://juliocprocha.wordpress.com/2017/ 4/7
23/03/2018 2017 – O Estudante independente

Feito isso temos que pensar em uma forma de atualizar os pesos. Mas antes disso vamos definir alguns
conceitos. O primeiro dele é a taxa de aprendizado(Learning rate ou alpha.) ela dita qual a proporção em que a
rede ira propagar o erro ou no nosso caso o “neurônio”.

Uma taxa de aprendizada alta acelera o treino porem pode fazer com a rede passe do ponto ótimo, uma taxa
baixa diminui a velocidade de treino mas aumenta a precisão da busca.

Representarei a taxa de aprendizado por e darei a ela o valor 0.5.

Logo temos:

Feito isso definiremos a regra de treino do perceptron.

Toda vez que ele gera um output ele compara com a classe esperada e computa o erro. Para nosso caso e devido
ha simplicidade do problema usaremos um limiar de -1 ou 1 para atualizar os pesos.

Logo o erro pode ser representado pela seguinte equação:

Onde é classe esperada e o output gerado pelo perceptron.

Uma vez medido o erro iremo atualizar cada peso utilizando a seguinte regra:

Onde é o elemento correspondente do vetor de input que gerou o erro. Se juntarmos tudo teremos o seguintes
modelo:

https://juliocprocha.wordpress.com/2017/ 5/7
23/03/2018 2017 – O Estudante independente

Antes de começar o treino vamos plotar o gráfico da equação inicial que divide o dataset, isso ira nos dar uma
ideia de como o perceptron funciona.

A reta ainda não se encontra no lugar ideal.

Usaremos o perceptron para encontrar esse lugar.

Vamos a nossa primeira iteração.

Os inputs são:

Os pesos atuais são:

Com isso calculemos o primeiro output:

https://juliocprocha.wordpress.com/2017/ 6/7
23/03/2018 2017 – O Estudante independente

Avaliamos com a função de perda:

Classificou de forma errada é necessário ajustar os pesos.

Medimos o erro:

E agora atualizamos os pesos:

foi atualizado para 0.95

foi atualizado para -0.15

Antes de partir para a próxima iteração vamos dar uma olhada em como fica o gráfico depois desse ajuste.

Repare que a reta começou a se deslocar para a posição ideal.

Vamos a nossa Segunda iteração.

https://juliocprocha.wordpress.com/2017/ 7/7

Das könnte Ihnen auch gefallen