Eu tenho um modelo de mistura no qual desejo encontrar o estimador de probabilidade máxima de um dado conjunto de dados e um conjunto de dados parcialmente observados . Eu implementei a etapa E (calculando a expectativa de z dado x e os parâmetros atuais \ theta ^ k ) e a etapa M, para minimizar a probabilidade logarítmica negativa, dada a expectativa de z .θ k z
Pelo que entendi, a probabilidade máxima está aumentando para cada iteração, isso significa que a probabilidade de log negativa deve estar diminuindo para cada iteração? Entretanto, conforme iteramos, o algoritmo não produz realmente valores decrescentes da probabilidade logarítmica negativa. Em vez disso, pode estar diminuindo e aumentando. Por exemplo, esses eram os valores da probabilidade logarítmica negativa até a convergência:
Existe aqui que eu não entendi?
Além disso, para dados simulados quando eu executo a probabilidade máxima para as variáveis latentes verdadeiras (não observadas), tenho um ajuste quase perfeito, indicando que não há erros de programação. Para o algoritmo EM, ele frequentemente converge para soluções claramente subótimas, particularmente para um subconjunto específico dos parâmetros (isto é, as proporções das variáveis classificadoras). É sabido que o algoritmo pode convergir para mínimos locais ou pontos estacionários, há uma busca heurística convencional ou de igual modo a aumentar a probabilidade de encontrar o mínimo global (ou máximo) . Para esse problema em particular, acredito que existem muitas classificações errôneas porque, da mistura bivariada, uma das duas distribuições assume valores com probabilidade uma (é uma mistura de vidas úteis onde a vida real é encontrada porz z que indica o pertencimento a qualquer distribuição. O indicador é obviamente censurado no conjunto de dados.
Acrescentei uma segunda figura para quando começo com a solução teórica (que deve estar próxima da ideal). No entanto, como pode ser visto, a probabilidade e os parâmetros divergem dessa solução para uma que é claramente inferior.
edit: Os dados completos estão no formato que é um tempo observado para o sujeito , indica se o tempo está associado a um evento real ou se for censurado corretamente (1 indica evento e 0 indica censura correta), é o tempo de truncamento da observação (possivelmente 0) com o indicador de truncamento e finalmente é o indicador a que população a observação pertence (desde sua bivariada, precisamos considerar apenas 0 e 1). t i i δ i L i τ i z i
Para , temos a função de densidade , da mesma forma que está associada à função de distribuição da cauda . Para o evento de interesse não ocorrerá. Embora não haja associado a essa distribuição, nós a definimos como , portanto e . Isso também produz a seguinte distribuição completa da mistura:
e
Prosseguimos para definir a forma geral da probabilidade:
Agora, é apenas parcialmente observado quando , caso contrário, é desconhecido. A probabilidade total se torna
onde é o peso da distribuição correspondente (possivelmente associada a algumas covariáveis e seus respectivos coeficientes por alguma função de link). Na maioria da literatura, isso é simplificado para a seguinte probabilidade de logaritmo
Para a etapa M , essa função é maximizada, embora não seja integralmente em um método de maximização. Em vez disso, não podemos que isso possa ser separado em partes .
Para a etapa k: th + 1 E , devemos encontrar o valor esperado das variáveis latentes (parcialmente) não observadas . Usamos o fato de que para , então .
Aqui temos, por
que nos dá
(Observe aqui que , portanto não há evento observado, portanto, a probabilidade dos dados é fornecida pela função de distribuição da cauda.
fonte
Respostas:
O objetivo do EM é maximizar a probabilidade de log de dados observada,
Infelizmente, isso tende a ser difícil de otimizar em relação a . Em vez disso, o EM forma e maximiza repetidamente a função auxiliarθ
Se maximiza , EM garante queθt+1 Q(θ,θt)
Se você deseja saber exatamente por que esse é o caso, a Seção 11.4.7 do Aprendizado de máquina de Murphy : uma perspectiva probabilística fornece uma boa explicação. Se sua implementação não satisfizer essas desigualdades, você cometeu um erro em algum lugar. Dizendo coisas como
é perigoso. Com muitos algoritmos de otimização e aprendizado, é muito fácil cometer erros e ainda assim obter respostas de aparência correta na maioria das vezes. Uma intuição de que gosto é que esses algoritmos são destinados a lidar com dados confusos, portanto, não é surpreendente que eles também lidem bem com bugs!
Na outra metade da sua pergunta,
Reinicializações aleatórias é a abordagem mais fácil; o próximo mais fácil é provavelmente o recozimento simulado sobre os parâmetros iniciais. Também ouvi falar de uma variante do EM chamada de recozimento determinístico , mas não o usei pessoalmente, por isso não posso falar muito sobre isso.
fonte