Existe uma maneira simples de calcular os pesos do perceptron com base em um gráfico de classificação?

8

Estou estudando para um exame de IA e procurando uma maneira melhor de resolver o seguinte problema:

O gráfico mostra um problema de classificação no quadrado da unidade , onde a classe A é indicada pela área cinza da figura (não incluindo os pontos nas linhas pontilhadas) e a classe B ocorre de outra forma.[0,1]2

O gráfico mostra um problema de classificação no quadrado da unidade [0,1] ^ 2

Para resolver esse problema, é necessário construir 2 perceptrons: ambos os perceptrons emitem 1 se a entrada estiver na área cinza e pelo menos um dos perceptrons gera 0 caso contrário.

Existem três maneiras de encontrar pesos apropriados para entradas e preconceitos:

  1. Tentativa e erro
  2. Algoritmo de aprendizado Perceptron (envolvendo pesos aleatórios, taxa de aprendizado, várias épocas)
  3. Maneira geométrica de encontrar os vetores de pesos (envolvendo encontrar uma linha ortogonal para a função de contorno)

Todos eles consomem bastante tempo quando você faz isso apenas com caneta e papel.

Existe uma maneira simples de calcular / encontrar pesos de perceptron com base em um gráfico de classificação?

BadgerBadger
fonte

Respostas:

2

pense que você pode estar interpretando mal o ponto da pergunta. a intenção da pergunta do exame parece ser "que bom peso de perceptron resultaria para esse problema de classificação". a razão para isso é que não é possível executar todas as etapas de um algoritmo de longa duração durante um exame ou mesmo uma lição de casa.

voltando à teoria do perceptron [que tem várias décadas], o ponto é que é um classificador baseado em funções linearmente separáveis , ou seja, desigualdades lineares . para o 2º caso, isso resulta em geometria algébrica simples. em outras palavras, o perceptron pode implementar um certo número de desigualdades lineares para tentar criar a classificação. aqui é dado como . então a questão provavelmente pretendida é "quais são as duas desigualdades lineares para as quais um bom algoritmo de perceptron convergiria para esse problema".n=2

parece reduzir para encontrar os coeficientes de:

y<m1x+b2

y>m2x+b2

use a álgebra geométrica básica para determinar os coeficientes que funcionam no diagrama acima. Com base no diagrama, não há uma solução perfeita, mas uma "boa". (observe também que as equações só precisam funcionar dentro de )m1,m2,b1,b2[0,1]2

intuitivamente, também está implícito nessa análise por que os perceptrons são tão limitados. porque é fácil, mesmo em 2D, desenhar problemas de classificação para os quais não há solução linearmente separável (formas côncavas, formas com furos, etc.) - alguma dica disso é vista ao se notar que a forma acima é levemente côncava). essa observação, desenvolvida de maneira mais sofisticada / formal / matemática / rigorosa em [1], causou muita controvérsia na época e foi um debate importante na história da IA, e até aparentemente desencorajou alguns cientistas de investigar mais sofisticadas simulou modelos de redes neurais por algum tempo, embora Minsky negou enfaticamente que essa era sua intenção e disse que seu trabalho foi mal interpretado.

[1] Perceptrons, de Minsky & Papert

vzn
fonte
ps esta técnica parece correspondem a ponto (3) acima, encontrar os pesos através de técnicas geométricas, mas não é realmente "demorado" a menos que seu um objeto complexo (por exemplo, a muitos lados do polígono etc)
vzn
em outras palavras, encontrar linhas de limite ortogonais geométricas é de fato basicamente "simples" no 2º caso, porque se reduz à geometria algébrica, mas não em dimensões mais altas.
vzn