Conceito de regressão logística
A regressão logística é um algoritmo de classificação binária. É um algoritmo de tomada de decisão, o que significa que cria limites entre duas classes. Estende o problema de regressão linear que usa um função de ativação em suas saídas para limitá -lo entre 1 e 0. Como resultado, isso é usado para problemas de classificação binária. O gráfico da regressão logística parece a figura abaixo:
Podemos ver que o gráfico está restrito entre 0 e 1. A regressão linear normal pode fornecer o valor alvo como qualquer número real, mas esse não é o caso da regressão logística devido à função sigmóide. A regressão logística é baseada no conceito de estimativa de máxima verossimilhança (MLE). A máxima verossimilhança é simplesmente tirar uma distribuição de probabilidade com um determinado conjunto de parâmetros e perguntar: “Qual é a probabilidade de eu ver esses dados se meus dados fossem gerados a partir dessa distribuição de probabilidade?”Funciona calculando a probabilidade de cada ponto de dados individual e, em seguida, multiplicando todas essas probabilidades. Na prática, adicionamos os logaritmos das probabilidades.
Se precisarmos construir um modelo de aprendizado de máquina, cada ponto de dados da variável independente será x1 * w1 + x2 * w2… e assim por diante, produzindo um valor entre 0 e 1 quando passados pela função de ativação. Se tomarmos 0.50 como fator ou limiar decisivo. Então, qualquer resultado maior que 0.5 é considerado um 1, enquanto qualquer resultado menor que esse é considerado um 0.
Para mais de duas classes, usamos a abordagem de um-VS-All. One-vs-tudo, também conhecido como One-VS-REST, é um processo de classificação ML Multilabel e multiclasse. Funciona primeiro treinando um classificador binário para cada categoria e depois ajustando cada classificador a cada entrada para determinar qual classe a entrada pertence a. Se o seu problema tiver n classes, o One-VS-tudo converterá seu conjunto de dados de treinamento em problemas de classificação binária.
A função de perda associada à regressão logística é Entropia cruzada binária qual é o inverso do ganho de informação. Isso também é conhecido como o nome perda de log. A função de perda é dada pela equação:
O que é a função de perda?
Uma função de perda é uma métrica matemática que queremos reduzir. Queremos construir um modelo que possa prever com precisão o que queremos, e uma maneira de medir o desempenho do modelo é analisar a perda, pois sabemos o que o modelo sai e o que devemos estar recebendo. Podemos treinar e melhorar nosso modelo usando essa perda e ajustando os parâmetros do modelo de acordo. As funções de perda variam dependendo do tipo de algoritmo. Para regressão linear, erro ao quadrado médio e erro médio absoluto são funções de perda populares, enquanto a entropia cruzada é apropriada para problemas de classificação.
Qual é a função de ativação?
As funções de ativação são simplesmente funções matemáticas que modificam a variável de entrada para fornecer uma nova saída. Isso geralmente é feito no aprendizado de máquina para padronizar os dados ou restringir a entrada a um certo limite. As funções de ação populares são sigmóides, unidade linear retificada (relu), tan (h), etc.
O que é Pytorch?
Pytorch é uma alternativa popular de aprendizado profundo que funciona com a tocha. Foi criado pelo departamento de IA do Facebook, mas pode ser usado de maneira semelhante a outras opções. É usado para desenvolver uma variedade de modelos, mas é mais amplamente aplicado nos casos de uso de processamento de linguagem natural (PNL). O Pytorch é sempre uma ótima opção se você deseja construir modelos com muito poucos recursos e deseja uma biblioteca fácil de usar, fácil de usar e leve para seus modelos. Também parece natural, o que ajuda na conclusão do processo. Usaremos o Pytorch para a implementação de nossos modelos devido aos motivos mencionados. No entanto, o algoritmo permanece o mesmo com outras alternativas como o Tensorflow.
Implementando regressão logística em pytorch
Usaremos as etapas abaixo para implementar nosso modelo:
Estaremos classificando o Conjunto de dados mnist dígitos. Este é um problema popular de aprendizado profundo ensinado a iniciantes.
Vamos primeiro importar as bibliotecas e módulos necessários.
importação de tochaO próximo passo é importar o conjunto de dados.
trem = dSets.Mnist (root = './dados ', trem = true, transform = transforms.Totensor (), download = false)Use o carregador de dados para tornar seus dados iteráveis
TRAIN_LOADER = TOCH.útil.dados.Dataloader (DataSet = Train, Batch_size = Batch_size, Shuffle = true)Defina o modelo.
Modelo de classe (tocha.nn.Módulo):Especifique os hiperparâmetros, otimizador e perda.
lote = 50Treine o modelo finalmente.
itr = 0Conclusão
Passamos pela explicação da regressão logística e sua implementação usando Pytorch, que é uma biblioteca popular para o desenvolvimento de modelos de aprendizado profundo. Implementamos o problema de classificação do conjunto de dados do MNIST, onde reconhecemos os dígitos com base nos parâmetros de imagens.