Classificação com várias etiquetas

imagemOlá, habrozhiteli! Decidimos citar um trecho do livro de Andrei Burkov , Machine Learning Without Extra Words , dedicado à classificação.

Para descrever a imagem na figura, vários rótulos podem ser usados ​​simultaneamente: “floresta de coníferas”, “montanhas”, “estrada”. Se o número de valores possíveis para rótulos for grande, mas todos tiverem a mesma natureza que tags, cada amostra etiquetada poderá ser convertida em vários dados marcados, um para cada tag. Todos esses novos dados terão os mesmos vetores de recursos e apenas um rótulo. Como resultado, a tarefa se torna um problema de classificação em várias classes. Pode ser resolvido usando a estratégia “um contra todos”. A única diferença do problema usual de classificação multiclasse é a aparência de um novo hiperparâmetro: o limiar. Se a pontuação de similaridade para um rótulo estiver acima de um valor limite, esse rótulo será atribuído ao vetor de recurso de entrada. Nesse cenário, vários rótulos podem ser atribuídos a um vetor de característica.O valor limite é selecionado usando o conjunto de controle.

Para resolver o problema de classificação com muitos rótulos, pode-se aplicar algoritmos que são naturalmente transformados em multiclasses (árvores de decisão, regressão logística, redes neurais, etc.). Eles retornam uma estimativa para cada classe, para que possamos definir um limite e atribuir vários rótulos a um vetor de recurso para o qual a pontuação de proximidade excede esse limite.

As redes neurais podem naturalmente ser treinadas em classificações de vários rótulos usando a entropia cruzada binária como uma função de custo. A camada de saída da rede neural, neste caso, possui um nó por rótulo. Cada nó na camada de saída possui uma função de ativação sigmóide. Assim, cada rótulo l é binárioimagemonde l = 1, ..., L e i = 1, ..., N. A entropia cruzada binária determina a probabilidade de imagema amostra xi ter o rótulo l, é definida como o imagem

critério de Minimização - uma média simples de todos os membros da entropia cruzada binária em todas as amostras de treinamento e todas as suas tags.

Nos casos em que o número possível de valores de rótulo é pequeno, você pode tentar converter o problema de classificação com muitos rótulos em um problema de classificação em várias classes. Imagine o seguinte problema. Você precisa atribuir dois tipos de etiquetas às imagens. Os rótulos do primeiro tipo podem ter dois significados possíveis: { foto, pintura }; marcas do segundo tipo podem ter três significados possíveis: { retrato, paisagem, outros} Para cada combinação de duas classes de origem, você pode criar uma nova classe fictícia, por exemplo:

imagem

Agora temos os mesmos dados marcados, mas substituímos o conjunto de rótulos verdadeiros por um rótulo simulado com valores de 1 a 6. Na prática, essa abordagem fornece bons resultados quando não há muitas combinações possíveis de classes. Caso contrário, é necessário usar muito mais dados de treinamento para compensar o aumento no conjunto de classes.

A principal vantagem dessa última abordagem é que os rótulos permanecem correlacionados, diferentemente dos métodos descritos acima, que prevêem cada rótulo independentemente um do outro. Em muitas tarefas, a correlação entre rótulos pode ser um fator significativo. Por exemplo, imagine que você deseja classificar o email como spam e não spam, e ao mesmo tempo que ordinário e importante. Você provavelmente excluiria previsões como [ spam, importante ].

7.5 Treinamento do conjunto


Os algoritmos fundamentais que abordamos no capítulo 3 têm suas limitações. Devido à sua simplicidade, às vezes eles não podem criar um modelo que seja eficaz o suficiente para sua tarefa. Nesses casos, você pode tentar usar redes neurais profundas. No entanto, na prática, redes neurais profundas exigem uma quantidade significativa de dados rotulados, que você pode não ter. Outra maneira de aumentar a eficácia de algoritmos simples de aprendizado é usar o treinamento em conjunto .

O treinamento em conjunto é um paradigma de treinamento que se baseia no treinamento não apenas em um modelo super-correto, mas em um grande número de modelos com baixa precisão e combinando as previsões fornecidas por esses modelos fracos para obter um metamodelo mais correto .

Modelos com baixa precisão geralmente são treinados por algoritmos de aprendizado fracos que não são capazes de treinar modelos complexos e, portanto, mostram alta velocidade nos estágios de treinamento e previsão. Na maioria das vezes, o algoritmo de aprendizado da árvore de decisão é usado como o algoritmo fraco, que geralmente para de interromper o conjunto de treinamento após várias iterações. O resultado são árvores pequenas e não muito regulares, mas, como diz a idéia de treinar o conjunto, se as árvores não forem idênticas e cada árvore for pelo menos um pouco melhor do que a adivinhação aleatória, podemos obter alta precisão combinando um grande número dessas árvores.

Para obter a previsão final para a entrada x, as previsões de todos os modelos fracos são combinadas usando algum método de votação ponderada. A forma específica de ponderar os votos depende do algoritmo, mas a essência não depende dele: se, coletivamente, modelos fracos prevêem que o email é spam, atribuímos o rótulo de spam x à amostra . Os dois principais métodos de treinamento de conjuntos são reforço e ensacamento (agregação). As traduções dos termos reforço e ensacamento são imprecisas e não estão acostumadas.



7.5.1 Reforço e ensacamento


O método de reforço é usar os dados de treinamento iniciais e criar iterativamente vários modelos usando um algoritmo fraco.

Cada novo modelo difere dos anteriores porque, construindo-o, um algoritmo fraco tenta "consertar" os erros cometidos pelos modelos anteriores. O modelo final do conjunto é uma combinação desses muitos modelos fracos construídos iterativamente.

A essência do empacotamento é criar muitas "cópias" dos dados de treinamento (cada cópia é ligeiramente diferente das outras) e, em seguida, aplicar um algoritmo fraco a cada cópia para obter vários modelos fracos e combiná-los. Um algoritmo de aprendizado de máquina amplamente utilizado e eficiente, baseado na idéia de ensacamento, é uma floresta aleatória .

7.5.2 Floresta aleatória


O algoritmo de ensacamento “clássico” funciona da seguinte maneira. B amostras aleatórias são criadas a partir do conjunto de treinamento existente imagem(para cada b = 1, ..., B) e um imagemmodelo de imagemárvore de decisão é construído com base em cada amostra . Para obter uma amostra imagempara alguns b, é feita uma amostra com substituição . Ou seja, primeiro uma amostra vazia é criada e, em seguida, uma amostra aleatória é selecionada no conjunto de treinamento e sua cópia exata é colocada imagem, enquanto a própria amostra permanece no conjunto de treinamento original. A seleção dos dados continua até que a condição seja cumprida.Como imagem

resultado do treinamento, são obtidas árvores de decisão B. A previsão para a nova amostra x , no caso de regressão, é determinada como a média de B previsões

imagem

ou por maioria de votos em caso de classificação.

A floresta aleatória tem apenas uma diferença do ensacamento clássico. Ele usa um algoritmo de aprendizado em árvore modificado que, com cada divisão no processo de aprendizado, verifica um subconjunto aleatório de recursos. Isso é feito para eliminar a correlação entre árvores: se um ou mais recursos tiverem uma grande capacidade preditiva, muitas árvores os escolherão para dividir dados. Isso levará ao aparecimento na "floresta" de um grande número de árvores correlacionadas. A correlação de sinal com alta capacidade preditiva impede que a precisão da previsão aumente. A alta eficiência do conjunto de modelos é explicada pelo fato de que bons modelos provavelmente concordam com a mesma previsão, e modelos ruins provavelmente não concordam e fornecerão previsões diferentes. A correlação tornará os modelos ruins mais propensos a concordar,o que distorcerá o padrão de votação ou afetará a média.

Os hiperparâmetros mais importantes para o ajuste são o número de árvores B e o tamanho de um subconjunto aleatório de recursos que devem ser considerados para cada divisão.
A floresta aleatória é um dos algoritmos de aprendizado de conjunto mais usados. O que determina sua eficácia? O motivo é que, usando várias amostras do conjunto de dados original, reduzimos a variação do modelo final. Lembre-se de que baixa variação significa uma fraca predisposição para treinar novamente. A reciclagem ocorre quando o modelo tenta explicar pequenas variações no conjunto de dados porque o conjunto de dados é apenas uma pequena amostra de todos os possíveis exemplos do fenômeno que estamos tentando simular. No caso de uma abordagem malsucedida à formação do conjunto de treinamento, alguns artefatos indesejáveis ​​(mas inevitáveis) podem cair nele: ruído, dados anormais e dados excessivamente ou insuficientemente representativos. Ao criar várias amostras aleatórias com a substituição do conjunto de treinamento, reduzimos a influência desses artefatos.

7.5.3 Aumento de gradiente


Outro algoritmo de treinamento de conjunto eficaz baseado na idéia de aumento é o aumento de gradiente. Primeiro, considere o uso de aumento de gradiente na regressão. Começaremos a construir um modelo de regressão eficaz com um modelo constante imagem(como fizemos no ID3):
imagem

Em seguida, altere os rótulos em todas as amostras i = 1, ..., N no conjunto de treinamento:

imagem

onde imagemé chamado de restante e é o novo rótulo da amostra imagem

Agora, usamos o conjunto de treinamento modificado com os resíduos em vez dos rótulos originais para criar um novo modelo da árvore de imagemdecisão.O modelo de reforço agora é definido como imagemonde α é a velocidade de aprendizado (hiperparâmetro).

Em seguida, recalculamos os resíduos usando a Equação 7.2, substituímos os rótulos nos dados de treinamento novamente, ensinamos um novo modelo da árvore de decisão, imagemredefinimos o modelo de reforço à medida imagemque repetimos o processo, até combinarmos o número máximo predeterminado M de árvores.

Vamos entender intuitivamente o que está acontecendo aqui. Ao calcular os resíduos, determinamos quão bem (ou mal) o objetivo de cada amostra de treinamento é previsto pelo modelo atual f. Em seguida, treinamos outra árvore para corrigir os erros do modelo atual (é por isso que usamos sobras em vez de rótulos reais) e adicionamos uma nova árvore ao modelo existente com algum peso α. Como resultado, cada nova árvore adicionada ao modelo corrige parcialmente os erros cometidos pelas árvores anteriores. O processo continua até que o número máximo M (outro hiperparâmetro) das árvores seja combinado.

Agora, vamos tentar responder à pergunta por que esse algoritmo é chamado de aumento de gradiente. No aumento do gradiente, não calculamos o gradiente, diferentemente do que fizemos no capítulo 4, resolvendo o problema de regressão linear. Para ver as semelhanças entre aumento de gradiente e descida de gradiente, lembre-se do motivo pelo qual calculamos o gradiente em regressão linear: para descobrir a direção dos valores dos parâmetros para minimizar a função de custo do MSE. O gradiente mostra a direção, mas não mostra até onde ir nessa direção; portanto, em cada iteração, demos um pequeno passo e depois determinamos novamente a direção. O mesmo ocorre no aumento do gradiente, mas, em vez de calcular diretamente o gradiente, usamos sua estimativa na forma de resíduos: eles mostram como o modelo deve ser ajustado para reduzir o erro (residual).

No aumento de gradiente, três hiperparâmetros principais estão disponíveis para ajuste: o número de árvores, a velocidade do aprendizado e a profundidade das árvores. Todos os três afetam a precisão do modelo. A profundidade das árvores também afeta a velocidade de aprendizado e previsão: quanto menor a profundidade, mais rápido.

Pode-se mostrar que o aprendizado por resíduos otimiza o modelo geral f para o padrão de erro padrão. Aqui você pode ver a diferença do ensacamento: aumentar reduz o viés (ou falta de educação) em vez da variação. Como resultado, o aumento está sujeito a reciclagem. No entanto, ajustando a profundidade e o número de árvores, a reciclagem pode ser amplamente evitada.

O aumento de gradiente é semelhante para tarefas de classificação, mas as etapas são ligeiramente diferentes. Considere o caso da classificação binária. Suponha que haja M árvores de decisão de regressão. Por analogia com a regressão logística, a previsão do conjunto de árvores de decisão é modelada usando a função sigmóide:

imagem

Onde imagemestá a árvore de regressão.

E, novamente, como na regressão logística, ao tentar encontrar um modelo para maximizar imagem, o princípio da máxima verossimilhança é aplicado. Da mesma forma, para evitar o excesso numérico, maximizamos a soma dos logaritmos de probabilidade, em vez do produto da probabilidade.

O algoritmo começa com o modelo de constante inicial em imagemque imagem(Pode ser mostrado que essa inicialização é ideal para a função sigmóide.) Em seguida, a cada iteração m, uma nova árvore fm é adicionada ao modelo. Para encontrar a melhor árvore imagemPara encontrar a melhor árvore imagem, a derivada parcial do imagemmodelo atual é primeiro calculada para cada i = 1, ..., N:
imagem

onde f é o modelo do classificador de conjunto construído na iteração anterior m - 1. Para calcular imagem, precisamos encontrar as derivadas de em imagemrelação a f para todo i. Observe que a imagemderivada em relação a f do termo correto na equação anterior é
imagem

Em seguida, o conjunto de treinamento é transformado substituindo o rótulo original da imagemderivada parcial correspondente imageme uma nova árvore é criada com base no conjunto de treinamento convertido.A imagemseguir, a etapa ideal de atualização é determinada imagemcomo:
imagem

No final da iteração m, atualizamos o modelo de conjunto imagemadicionando uma nova árvoreimagem
imagem

As iterações continuam até que a condição m = M seja cumprida, após o qual o treinamento para e o modelo de conjunto f é obtido.

O aumento de gradiente é um dos mais poderosos algoritmos de aprendizado de máquina. Não apenas porque cria modelos muito precisos, mas também porque é capaz de processar enormes conjuntos de dados com milhões de dados e recursos. Como regra, é superior em precisão a uma floresta aleatória, mas devido à natureza consistente, pode aprender muito mais lentamente.

All Articles