Beruflich Dokumente
Kultur Dokumente
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
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:
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 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.
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.
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.
Logo temos:
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.
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.
Os inputs são:
https://juliocprocha.wordpress.com/2017/ 6/7
23/03/2018 2017 – O Estudante independente
Medimos o erro:
Antes de partir para a próxima iteração vamos dar uma olhada em como fica o gráfico depois desse ajuste.
https://juliocprocha.wordpress.com/2017/ 7/7