A regressão logística é estocástica como uma rede neural?
Observei que os modelos de rede neural (usando Keras TensorFlow) podem ser muito instáveis (quando meu tamanho de amostra é pequeno) no sentido de que, se eu treinasse 999 modelos NN, poderia haver apenas 99 com boa precisão de treinamento. Imagino que isso se deva à natureza estocástica da iniciação dos pesos no NN; portanto, apenas alguma iniciação foi capaz de levar a mínimos locais. No entanto, quando eu uso a regressão logística (especificamente o statsmodelspacote em python), o modelo treinado é razoavelmente estável no sentido de que não importa quantas vezes eu o treine, a precisão e recall etc. são razoavelmente constantes.
Minha pergunta é - isso é uma consequência da diferença de natureza entre regressão logística e NN (por exemplo, poderia ser porque a regressão logística não precisa de iniciação aleatória de pesos?) Ou isso é meramente uma consequência dos pacotes que estou usando? (por exemplo, talvez statsmodelstenha definido um estado inicial constante?)
Meu entendimento é que uma regressão logística também pode ser vista como um único nó NN, então estou me perguntando por que deveria ser diferente.
Respostas
Até agora, nenhuma resposta abordou a diferença conceitual central entre regressão logística e redes neurais.
A regressão logística é um problema de otimização convexa .
- O que está acontecendo aqui, quando eu uso a perda quadrada na configuração de regressão logística?
- A função de custo da regressão logística é convexa ou não?
Quando a matriz de design é de classificação completa e os dados não exibem separação, a regressão logística é fortemente convexa com um minimizador finito exclusivo. Isso significa que um método de otimização adequado será capaz de recuperar o mesmo minimizador em execuções repetidas, porque há apenas um mínimo. Esses tópicos desenvolvem este tópico com mais detalhes.
- Como lidar com a separação perfeita na regressão logística?
- A regressão logística em R resultou em separação perfeita (fenômeno de Hauck-Donner). O que agora?
- Existe alguma explicação intuitiva de por que a regressão logística não funcionará para o caso de separação perfeita? E por que adicionar regularização resolverá isso?
Em geral, as redes neurais não são um problema de minimização convexa. Uma característica central de um problema não convexo é que ele tem mais de um mínimo, possivelmente até vários mínimos globais . Múltiplos mínimos implicam que um esquema de minimização é suscetível a encontrar diferentes soluções em diferentes execuções, especialmente quando há um componente aleatório (inicialização aleatória, treinamento em minibatch) para o procedimento de otimização. Esses tópicos desenvolvem este tópico com mais detalhes.
- A função de custo da rede neural não é convexa?
- Por que a função de custo das redes neurais não é convexa?
- Podemos usar o MLE para estimar os pesos da rede neural?
Exemplos de redes neurais fortemente convexas surgem de casos especiais. O exemplo mais simples de uma rede neural fortemente convexa é a rede neural sem camadas ocultas e uma ativação monotônica para a saída da camada de saída linear única. Essas redes são modelos lineares generalizados de forma idêntica (regressão logística, OLS, etc.). Em particular, a regressão logística é um modelo linear generalizado ( glm ) no sentido de que o logit da resposta de probabilidade estimada é uma função linear dos parâmetros. Veja: Por que a regressão logística é um modelo linear?
Existe uma diferença fundamental entre regressão logística e redes neurais. As redes neurais têm vários mínimos locais e, portanto, é inerentemente sensato iniciar sua descida gradiente várias vezes a partir de inicializações diferentes, bem como usar a descida gradiente estocástica. Você esperaria acabar em lugares diferentes, dependendo de onde você começou.
A função de custo de regressão logística, entretanto, pode ser mostrada como convexa e, portanto, mesmo se você chutar sua descida gradiente de inicializações diferentes, você deve sempre terminar no mesmo lugar, dar ou receber efeitos numéricos associados com (S) GD.
É verdade que a regressão logística é uma rede neural de camada única, mas em termos um tanto agitados, o termo que passa pela função logística é linear em todos os parâmetros do modelo (o limite de decisão é linear em todos os parâmetros do modelo). Assim que você adiciona outra camada, o termo que passa pela função logística é uma função não linear de alguns dos parâmetros do modelo. Isso é o que começa a tornar a função de custo não convexa (afirmo vagamente sem prova), e é por isso que mesmo uma rede neural de duas camadas terminará em lugares diferentes se você inicializar de forma diferente e a regressão logística for o caso especial
Meu entendimento é que uma regressão logística também pode ser vista como um único nó NN, então estou me perguntando por que deveria ser diferente
Digamos que você queira fazer uma regressão logística com 4 saídas e 16 entradas usando uma rede neural no TensorFlow. Pode ser algo assim:
import tensorflow as tf
tf.random.set_seed(1)
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(4, input_shape=(16,)))
model.add(tf.keras.layers.Softmax())
Agora respondendo à sua questão:
A regressão logística é estocástica como uma rede neural?
Tudo isso depende do método de otimização usado para treinar seu classificador de regressão logística ou rede neural. Não usei o statsmodelspacote, mas no TensorFlow você precisa escolher seu otimizador. Existem vários otimizadores integrados que você pode escolher.
Além disso, se você está se perguntando por que cada vez que treina sua rede neural, obtém um resultado diferente, geralmente é uma boa prática manter a semente aleatória fixa durante seus experimentos. Isso pode ser feito facilmente configurando tf.random.set_seed(1)ou qualquer outro número fixo. Isso deve retornar o mesmo resultado sempre que você treinar seu modelo (supondo que todos os outros hiperparâmetros foram mantidos os mesmos).
Se desejarmos modelar a distribuição de uma variável aleatória binária (bernoulli-distribuída), condicionada a um vetor aleatório ${\bf x}_n\in\mathbb{R}^M$, podemos assumir que
$$ t_n \vert {\bf x}_n \sim \text{Bern}(f({\bf x}_n)) $$
Para alguma função $f:\mathbb{R}^M\to[0,1]$.
Em uma regressão logística, escolhemos $f({\bf x})=\sigma({\bf w}^T{\bf x}$), enquanto para uma rede neural feed-forward (FFNN), escolhemos $f$ para ser alguma função não linear complicada da forma
$$ f({\bf x}) = \sigma\left({{\bf w}^{(L)}}^Th\left({{\bf w}^{(L-1)}}^Th(...)\right)\right) $$
Enquanto a regressão logística leva a uma equação iterativa simples para encontrar seu mínimo, o que sempre leva ao mesmo mínimo para um conjunto de dados fixo, o FFNN é dependente do número de camadas, a escolha de $h$e o número desejado de parâmetros. Portanto, pode ser muito mais complicado treinar um FFNN.
A razão pela qual a regressão logística parece mais "estável" do que as redes neurais (estou supondo que você quer dizer perceptrons multicamadas) é a diferença de natureza. Podemos resumir essas diferenças em termos de limite de decisão e flexibilidade.
Os modelos de regressão logística são modelos lineares (consulte o tópico CV Por que a regressão logística é um classificador linear? ) E, portanto, seus limites de decisão são relativamente restritos. Os NNs são modelos altamente não lineares (assumindo que você está usando alguma forma de ativação não linear) que são capazes de formar limites de decisão muito mais complexos. Nem é preciso dizer que isso também nos leva à conclusão de que a regressão logística é menos flexível do que os NNs.