Anteriormente, você encontrou classificação binária modelos que podem escolher entre uma das duas opções possíveis, por exemplo:
- Um determinado e-mail é ou não spam.
- Um determinado tumor é maligno ou benigno.
Nesta seção, vamos investigar classificação multiclasse que podem escolher entre várias possibilidades. Exemplo:
- Esse cachorro é um beagle, um basset hound ou um sangrento?
- Essa flor é uma íris siberiana, íris holandesa, íris com bandeira azul? ou íris barba anã?
- Esse avião é um Boeing 747, Airbus 320, Boeing 777 ou Embraer 190?
- É uma imagem de uma maçã, de um urso, de um doce, de um cachorro ou de um ovo?
Alguns problemas multiclasse do mundo real envolvem escolher entre milhões em classes separadas. Por exemplo, imagine um modelo de classificação multiclasse capaz de identificar a imagem de praticamente qualquer coisa.
Nesta seção, detalhamos as duas principais variantes da classificação multiclasse:
- um-contra-todos
- one-vs.-one, que normalmente é conhecido como softmax (link em inglês)
Um contra todos
Um contra todos fornece uma maneira de usar a classificação binária. para uma série de previsões de sim ou não em vários rótulos possíveis.
Dado um problema de classificação com N soluções possíveis, uma comparação solução consiste em N classificadores binários separados, um binário classificador para cada resultado possível. Durante o treinamento, o modelo é executado com uma sequência de classificadores binários, treinando cada um para responder uma pergunta de classificação.
Por exemplo, com a foto de um pedaço de fruta, quatro Reconhecedores diferentes podem ser treinados, cada um respondendo um sim/não diferente Pergunta:
- Esta imagem é de uma maçã?
- Esta imagem é laranja?
- A imagem é de uma banana?
- Esta imagem é de uma uva?
A imagem a seguir ilustra como isso funciona na prática.
![Figura 7. Uma imagem de uma pera sendo transmitida como entrada para quatro
modelos de classificador binário. O primeiro modelo prevê "maçã" ou "não"
apple", e a previsão é "not apple". O segundo modelo prevê
"laranja" ou "not laranja", e sua previsão é "não laranja". O
o terceiro modelo prevê "pera" ou "not pear", e sua previsão é
"pera". O quarto modelo prevê "uva", ou "not grape", e sua
previsão é "not grape".](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png?authuser=6&hl=pt)
Essa abordagem é bastante razoável quando o número total de classes é pequeno, mas se torna cada vez mais ineficiente à medida que o número de classes subir.
Podemos criar um modelo individual mais eficiente do que todos os outros com uma rede neural profunda em que cada nó de saída representa um . A imagem a seguir ilustra essa abordagem.
![Figura 8. Uma rede neural com a seguinte arquitetura: camada de entrada com
1 nó, camada escondida com 3 nós, camada escondida com 4 nós,
uma camada final com quatro nós. O nó de entrada recebe a imagem de uma pera.
Uma função de ativação sigmoide é aplicada à camada de saída. Cada
nó de saída representa a probabilidade de a imagem ser um
frutas. O nó de saída 1 representa "É uma maçã?". e tem valor de 0,34.
O nó de saída 2 representa "É laranja?" e tem valor de 0,18.
O nó de saída 3 representa "É pera?" e tem valor de 0,84.
O nó de saída 4 representa "Is grape?" e tem valor de 0,07.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=6&hl=pt)
Um contra um (softmax)
Você deve ter notado que os valores de probabilidade na camada final da Figura 8 não somam 1,0 (ou 100%). Na verdade, a soma total é 1,43. Em uma situação a probabilidade de cada conjunto binário de resultados é determinada independentemente de todos os outros conjuntos. Ou seja, estamos determinando a probabilidade de "maçã" x "not apple" sem considerar a probabilidade opções de frutas: "laranja", "pera" ou "uva".
E se quisermos prever as probabilidades de cada fruta em relação um ao outro? Nesse caso, em vez de prever "maçã", versus "não maçã", queremos prever "maçã" e "laranja" em vez de "pera" e "uva". Esse tipo de classificação multiclasse é chamado de classificação um por um.
É possível implementar uma classificação um contra um usando o mesmo tipo arquitetura de rede usada na classificação do tipo um contra todos, com uma mudança importante. Precisamos aplicar uma transformação diferente à camada de saída.
Para um contra todos, aplicamos a função de ativação sigmoide a cada saída de modo independente, o que resultou em um valor de saída entre 0 e 1 para cada mas não garantiu que esses valores somassem exatamente 1.
Para um ou um, podemos aplicar uma função chamada softmax, que atribui probabilidades decimais a cada classe em um problema multiclasse, de modo que todas as probabilidades somam 1,0. Essa restrição adicional ajuda o treinamento a convergir mais rapidamente do que de outra forma.
A imagem a seguir reimplementa nossa classificação multiclasse um contra todos. como uma tarefa individual. Para realizar a softmax, os elementos camada diretamente anterior à camada final (chamada de camada softmax) deve ter o mesmo número de nós da camada final.
![Figura 9. Uma rede neural com a seguinte arquitetura: entrada
camada escondida com 1 nó, camada escondida com 3 nós, camada escondida com 4 nós,
uma camada final com quatro nós. O nó de entrada recebe a imagem de uma pera.
Uma função de ativação softmax é aplicada à camada de saída. Cada
nó de saída representa a probabilidade de a imagem ser um
frutas. O nó de saída 1 representa "É uma maçã?". e tem valor de 0,19.
O nó de saída 2 representa "É laranja?" e tem valor de 0,12.
O nó de saída 3 representa "É pera?" e tem valor de 0,63.
O nó de saída 4 representa "Is grape?" e tem valor de 0,06.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=6&hl=pt)
Opções da Softmax
Considere as seguintes variantes de softmax:
softmax completa é a softmax que estamos discutindo. ou seja, a softmax calcula uma probabilidade para cada classe possível.
Amostragem de candidatos significa que a softmax calcula uma probabilidade para todos os rótulos positivos, mas apenas para uma amostra aleatória de rótulos negativos. Por exemplo, se quisermos determinar independentemente de a imagem de entrada ser um beagle ou um cão de caça, não precisamos fornecer probabilidades para todos os exemplos não caninos.
A softmax completa é bastante barata quando o número de classes é pequeno mas se torna incrivelmente cara quando o número de aulas aumenta. A amostragem de candidatos pode melhorar a eficiência em problemas com um número de classes.
Um rótulo versus vários rótulos
A Softmax pressupõe que cada exemplo é membro de exatamente uma classe. No entanto, alguns exemplos podem ser membros de várias classes ao mesmo tempo. Para esses exemplos:
- Não é possível usar softmax.
- Você precisa de várias regressões logísticas.
Por exemplo, o modelo um contra um na figura 9 acima pressupõe que cada entrada imagem mostrará exatamente um tipo de fruta: uma maçã, uma laranja, uma pera ou uma uva. No entanto, se uma imagem de entrada puder conter vários tipos de fruta, um tigela de maçãs e laranjas—você terá que usar várias estratégias regressões.