Perceptron é Definição do termo, características, aplicação

Índice:

Perceptron é Definição do termo, características, aplicação
Perceptron é Definição do termo, características, aplicação
Anonim

Em aprendizado de máquina, um perceptron é um algoritmo de aprendizado supervisionado para classificadores binários. Também é frequentemente chamado de perceptron. Um classificador binário é uma função que pode decidir se uma entrada, representada por um vetor de números, pertence a alguma classe particular. Este é um tipo de classificador linear, ou seja, um algoritmo de classificação que faz suas previsões com base em uma função de previsão linear que combina um conjunto de pesos com um vetor de recursos.

Fórmulas de Perceptron
Fórmulas de Perceptron

Nos últimos anos, as redes neurais artificiais ganharam atenção devido aos avanços no aprendizado profundo. Mas o que é uma rede neural artificial e em que consiste?

Conheça o Perceptron

Neste artigo, vamos dar uma olhada rápida nas redes neurais artificiais em geral, depois olhar para um único neurônio e, finalmente (esta é a parte de codificação) vamos pegar a versão mais básica de um neurônio artificial neurônio, o perceptron, e classificar seus pontos emavião.

Você já se perguntou por que existem tarefas que são tão fáceis para qualquer pessoa, mas incrivelmente difíceis para computadores? As Redes Neurais Artificiais (RNA para abreviar) foram inspiradas no sistema nervoso central humano. Como sua contraparte biológica, as RNAs são construídas em elementos simples de processamento de sinal que são combinados em uma grande grade.

As redes neurais devem aprender

Ao contrário dos algoritmos tradicionais, as redes neurais não podem ser "programadas" ou "sintonizadas" para funcionar como pretendido. Assim como o cérebro humano, eles devem aprender a completar a tarefa. Grosso modo, existem três estratégias de aprendizagem.

A maneira mais fácil pode ser usada se houver um caso de teste (grande o suficiente) com resultados conhecidos. Então o treinamento é assim: processe um conjunto de dados. Compare o resultado com o resultado conhecido. Configure a rede e tente novamente. Esta é a estratégia de aprendizado que usaremos aqui.

Aprendizado não supervisionado

Útil se não houver dados de teste disponíveis e se for possível derivar alguma função de custo do comportamento desejado. A função de custo informa à rede neural a que distância ela está do alvo. A rede pode então ajustar seus parâmetros rapidamente, trabalhando com dados reais.

Aprendizagem Reforçada

O método "cenoura e palito". Pode ser usado se a rede neural gerar uma ação contínua. Com o tempo, a rede aprende a preferir as ações certas e evitar as erradas.

Ok, agora sabemos um pouco sobrenatureza das redes neurais artificiais, mas do que exatamente elas são feitas? O que veremos se abrirmos a tampa e olharmos para dentro?

Os neurônios são os blocos de construção das redes neurais. O principal componente de qualquer rede neural artificial é um neurônio artificial. Eles não apenas recebem o nome de suas contrapartes biológicas, mas também são modelados de acordo com o comportamento dos neurônios em nossos cérebros.

Biologia vs tecnologia

Assim como um neurônio biológico possui dendritos para receber sinais, um corpo celular para processá-los e um axônio para enviar sinais a outros neurônios, um neurônio artificial possui múltiplos canais de entrada, um estágio de processamento e uma saída que pode ramificar para muitos outros neurônios artificiais.

Podemos fazer algo útil com um único perceptron? Há uma classe de problemas que um único perceptron pode resolver. Considere o vetor de entrada como coordenadas de ponto. Para um vetor com n-elementos, este ponto viverá no espaço n-dimensional. Para simplificar a vida (e o código abaixo), vamos supor que seja 2D. Como um pedaço de papel.

A seguir, imagine que desenhamos alguns pontos aleatórios neste plano e os dividimos em dois conjuntos desenhando uma linha reta no papel. Esta linha divide os pontos em dois conjuntos, um acima e outro abaixo da linha. Os dois conjuntos são então chamados linearmente separáveis.

Um perceptron, por mais simples que pareça, é capaz de saber onde está essa linha e, quando terminar de treinar, pode determinar se um determinado ponto está acima ou abaixo dessa linha.

Históriainvenções

O algoritmo para este método foi inventado em 1957 no Laboratório de Aviação Cornell por Frank Rosenblatt (muitas vezes nomeado em sua homenagem), financiado pelo Escritório de Pesquisa Naval dos EUA. O perceptron foi concebido para ser uma máquina, não um programa e, embora sua primeira implementação tenha sido em software para o IBM 704, foi posteriormente implementado em hardware personalizado como o "Mark 1 Perceptron". Essa máquina foi projetada para reconhecimento de imagens: tinha um conjunto de 400 fotocélulas conectadas aleatoriamente a neurônios. Os pesos foram codificados em potenciômetros e a atualização dos pesos durante o treino foi feita por motores elétricos.

Em uma conferência de imprensa organizada pela Marinha dos EUA em 1958, Rosenblatt fez declarações sobre o perceptron que causou um debate acalorado entre a comunidade jovem de IA; com base nas alegações de Rosenblatt, o New York Times informou que o perceptron é "o computador eletrônico embrionário que a Marinha espera poder andar, falar, ver, escrever, reproduzir-se e estar ciente de sua existência".

Segmentos de Perceptron
Segmentos de Perceptron

Outros desenvolvimentos

Embora o perceptron inicialmente parecesse promissor, foi rapidamente provado que os perceptrons não podiam ser treinados para reconhecer muitas classes de padrões. Isso levou a uma estagnação no campo de pesquisa com redes neurais perceptron por muitos anos antes de ser reconhecido que uma rede neural feed-forward com duas ou mais camadas (também chamadamultilayer perceptron) tinha muito mais poder de processamento do que os perceptrons de camada única (também chamados de perceptrons de camada única). Um perceptron de camada única só é capaz de estudar estruturas linearmente separáveis. Em 1969, o famoso livro "Perceptrons" de Marvin Minsky e Seymour Papert mostrou que essas classes de redes não podiam aprender a função XOR. No entanto, isso não se aplica a funções de classificação não lineares que podem ser usadas em um perceptron de camada única.

Perceptron Rosenblatt
Perceptron Rosenblatt

O uso de tais funções estende as capacidades do perceptron, incluindo a implementação da função XOR. Muitas vezes é assumido (incorretamente) que eles também assumiram que um resultado semelhante seria válido para uma rede perceptron multicamada. No entanto, este não é o caso, pois tanto Minsky quanto Papert já sabiam que perceptrons multicamadas eram capazes de produzir uma função XOR. Três anos depois, Steven Grossberg publicou uma série de artigos apresentando redes capazes de modelar funções diferenciais, funções de aprimoramento de contraste e funções XOR.

Os trabalhos foram publicados em 1972 e 1973. No entanto, o texto Minsky/Papert muitas vezes esquecido causou um declínio significativo no interesse e financiamento de pesquisa com o perceptron de rede neural. Outros dez anos se passaram antes que a pesquisa de redes neurais fosse revivida na década de 1980.

Recursos

O Algoritmo do Kernel Perceptron foi introduzido em 1964 por Yzerman et al. Mori e Rostamizadeh (2013), que ampliam resultados anteriores e dão novos limites L1.

Perceptron é um modelo simplificado de um neurônio biológico. Embora a complexidade dos modelos neurais biológicos seja frequentemente necessária para entender completamente o comportamento neural, pesquisas mostram que um modelo linear do tipo perceptron pode induzir alguns dos comportamentos observados em neurônios reais.

O Perceptron é um classificador linear, portanto, nunca entrará em um estado com todos os vetores de entrada classificados corretamente se o conjunto de treinamento D não for linearmente separável, ou seja, se exemplos positivos não podem ser separados de exemplos negativos por um hiperplano. Nesse caso, nenhuma solução "aproximada" passará passo a passo pelo algoritmo de aprendizado padrão, em vez disso, o aprendizado falhará completamente. Portanto, se a separabilidade linear do conjunto de treinamento não for conhecida a priori, uma das opções de treinamento abaixo deve ser usada.

Relacionamentos Perceptron
Relacionamentos Perceptron

Algoritmo de Bolso

O algoritmo de bolso de catraca resolve o problema de robustez de aprendizado do perceptron mantendo a melhor solução até agora encontrada "no bolso". O algoritmo de bolso então retorna a solução no bolso em vez da última solução. Também pode ser usado para conjuntos de dados não separáveis, onde o objetivo é encontrar um perceptron com poucas classificações incorretas. No entanto, essas soluções parecem estocásticas e, portanto, o algoritmo de bolso não as ajusta.gradualmente ao longo do treinamento e não é garantido que eles sejam detectados em um determinado número de etapas de treinamento.

Algoritmo Maxover

O algoritmo de Maxover é "robusto" no sentido de que irá convergir independentemente do conhecimento da separabilidade linear do conjunto de dados. No caso de uma divisão linear, isso resolverá o problema de aprendizado, opcionalmente mesmo com estabilidade ótima (margem máxima entre classes). Para conjuntos de dados não separáveis, será retornada uma solução com um pequeno número de classificações incorretas. Em todos os casos, o algoritmo aproxima-se gradualmente da solução durante o processo de aprendizado, sem lembrar estados anteriores e sem s altos aleatórios. A convergência está na otimização global para conjuntos de dados compartilhados e otimização local para conjuntos de dados não separáveis.

equação perceptron
equação perceptron

Voted Perceptron

O algoritmo Voted Perceptron é uma variante que usa múltiplos perceptrons ponderados. O algoritmo inicia um novo perceptron cada vez que um exemplo é classificado incorretamente, inicializando o vetor de pesos com os pesos finais do último perceptron. Cada perceptron também receberá um peso diferente correspondente a quantos exemplos eles classificam corretamente antes de classificar um erroneamente e, no final, a saída será um voto ponderado em todo o perceptron.

Aplicativo

Em problemas separáveis, o treinamento do perceptron também pode ter como objetivo encontrar o maior limite de separação entre as classes. ChamadoUm perceptron de estabilidade ideal pode ser determinado usando treinamento iterativo e esquemas de otimização, como o algoritmo Min-Over ou AdaTron. AdaTron explora o fato de que o problema de otimização quadrática correspondente é convexo. O perceptron de estabilidade ótima, junto com o truque do kernel, é a base conceitual da máquina de vetores de suporte.

Perceptron multicamadas
Perceptron multicamadas

Alternativa

Outra maneira de resolver problemas não lineares sem usar múltiplas camadas é usar redes de ordem superior (bloco sigma-pi). Nesse tipo de rede, cada elemento do vetor de entrada é expandido por cada combinação pareada de entradas multiplicadas (segunda ordem). Isso pode ser estendido para uma rede de ordem n. O Perceptron é uma coisa muito flexível.

No entanto, lembre-se de que o melhor classificador não é necessariamente aquele que classifica com precisão todos os dados de treinamento. De fato, se tivéssemos a restrição anterior de que os dados vêm de distribuições gaussianas de variantes iguais, uma divisão linear no espaço de entrada é ótima e uma solução não linear é substituída.

Outros algoritmos de classificação linear incluem Winnow, vetor de suporte e regressão logística. Perceptron é um conjunto universal de algoritmos.

tradução russa do esquema
tradução russa do esquema

Escopo principal para aprendizagem supervisionada

Aprendizado supervisionado é uma tarefa de aprendizado de máquina que aprende uma função que mapeia entrada para saídacom base em exemplos de pares de E/S. Eles inferem um recurso de dados de treinamento rotulados que consistem em um conjunto de exemplos. No aprendizado supervisionado, cada exemplo é um par que consiste em um objeto de entrada (geralmente um vetor) e um valor de saída desejado (também chamado de sinal de controle).

O algoritmo de aprendizado supervisionado analisa os dados de treinamento e produz uma função estimada que pode ser usada para exibir novos exemplos. O cenário ideal permitiria que o algoritmo determinasse corretamente os rótulos de classe para instâncias invisíveis. Isso requer que o algoritmo de aprendizado generalize os dados de aprendizado para situações não vistas de uma maneira "razoável".

A tarefa paralela na psicologia humana e animal é frequentemente chamada de aprendizado conceitual.

Recomendado: