Todo exemplo de rede neural para reconhecimento de imagem que eu já li produz uma resposta simples "sim" ou "não". Um nó de saída corresponde a "Sim, este é um rosto humano" e um corresponde a "Não, este não é um rosto humano".
Entendo que isso é provável pela simplicidade da explicação, mas estou me perguntando como uma rede neural poderia ser programada para fornecer uma saída mais específica. Por exemplo, digamos que eu estava classificando animais. Em vez de dizer "Animal" ou "Não é um animal", eu gostaria de respostas como "Cão", "Peixe", "Pássaro", "Cobra" etc., com um nó de saída final sendo "Não é um animal / I" não reconheça isso ".
Tenho certeza de que isso deve ser possível, mas estou tendo problemas para entender como. Parece que devido ao algoritmo de treinamento de retropropagação de erro, à medida que você treina um nó de saída (ou seja, "Este é um cachorro") e os pesos dos neurônios são alterados, o estado ideal para outro nó de saída que você anteriormente treinado (isto é, "Este é um pássaro") começará a se desviar e vice-versa. Portanto, treinar a rede para reconhecer uma categoria sabotaria qualquer treinamento realizado para outra categoria, limitando-nos a um design simples "Sim" ou "Não".
Isso impossibilita esse reconhecedor? Ou estou entendendo mal o algoritmo? As únicas duas coisas em que consigo pensar são:
Ou poderíamos treinar uma rede neural para cada coisa que queremos classificar e, de alguma forma, usá-las para construir uma super-rede maior (por exemplo, uma rede para "cachorro", uma rede para "pássaro" etc.), que de alguma forma adicione para criar a super-rede para "animais"); ou,
Crie algum tipo de metodologia de treinamento ridiculamente complicada, que exigiria matemática incrivelmente avançada e, de alguma forma, produziria um estado de peso-neurônio ideal para todas as saídas possíveis (em outras palavras
insert math magic here
).
(Nota lateral 1: Estou olhando especificamente para perceptrons multicamadas como um tipo de rede neural.)
(Nota lateral 2: para a primeira "solução possível com marcadores", ter cada rede neural específica e iterar através delas até recebermos uma resposta "Sim" não é suficiente. Eu sei que isso poderia ser feito com bastante facilidade, mas é funcional simples programação em vez de aprendizado de máquina. Quero saber se é possível ter uma rede neural para alimentar as informações e receber a resposta apropriada.)