Um perceptron pode esquecer?

16

Gostaria de criar um sistema online de aprendizado de máquina baseado na Web, no qual os usuários possam adicionar continuamente amostras classificadas e atualizar o modelo online. Eu gostaria de usar um perceptron ou um algoritmo de aprendizado on-line semelhante.

Mas, os usuários podem cometer erros e inserir exemplos irrelevantes. Nesse caso, eu gostaria de ter a opção de excluir um exemplo específico, sem treinar novamente o perceptron em todo o conjunto de exemplos (que pode ser muito grande).

Isso é possível?

Erel Segal-Halevi
fonte
ideia muito interessante. você fez um esforço para formalizar isso?
Strin 27/05
Dadas as especificidades do seu modelo perceptron e seu classificador, o que acontece quando você reinsere o exemplo com uma classificação corrigida? Isso não reduz o peso dos neurônios da camada interna incorretos e aumenta o peso dos neurônios da camada interna corretos?
Wandering Logic
1
Reinserir a amostra obviamente pode ajudar de alguma forma; no entanto, não tenho certeza de que as provas de correção e convergência do perceptron serão válidas nesse caso (ou seja, não tenho certeza de que os resultados serão idênticos à situação em que a amostra errônea não foi inserido em primeiro lugar).
Erel Segal-Halevi
Como uma solução ingênua, você pode manter um registro dos pesos do perceptron antes de cada nova amostra ser adicionada. Então, quando você deseja eliminar uma amostra, (re) defina os pesos do perceptron com seus valores antes que o exemplo "ruim" seja adicionado e treine novamente o perceptron com todos os exemplos válidos adicionados após o "ruim". Isso envolveria um novo treinamento, mas não em todo o conjunto de exemplos. Obviamente, você também precisará manter registros de exemplos e seus pesos associados.
Rphv

Respostas:

6

Pelo que entendi , alterar um perceptron sem reciclagem é impossível. Os ajustes de peso não são apenas relativos a esse exemplo específico, mas também a outros exemplos de treinamento anteriores. Identificar a instância classificada incorretamente e removê-la do conjunto de testes antes de treinar novamente o modelo parece ser a maneira mais eficaz de corrigir os pesos.

Acho que vale ressaltar que, em comparação com outros algoritmos de aprendizado de máquina, os perceptrons são relativamente resistentes ao ruído e a instâncias classificadas incorretamente no conjunto de treinamento . Se você encontrar um grande número de instâncias classificadas incorretamente, seria mais prudente ter uma validação melhor no momento em que você ingere os dados antes do treinamento do que encontrar uma maneira de corrigir instâncias classificadas incorretamente após o treinamento do perceptron. Se isso não for possível e você conseguir identificar as instâncias classificadas incorretamente como tal, removê-las e reciclar parece a única maneira de remover efetivamente o impacto das instâncias classificadas incorretamente.

Richard D
fonte