Usando a incerteza para interpretar seu modelo

À medida que as redes neurais profundas (DNN) se tornam mais poderosas, sua complexidade aumenta. Essa complexidade apresenta novos desafios, incluindo a interpretabilidade do modelo

A interpretabilidade é crucial para criar modelos mais robustos e resistentes a ataques adversários. Além disso, projetar um modelo para um novo domínio não bem pesquisado é desafiador e poder interpretar o que o modelo está fazendo pode nos ajudar no processo.

A importância da interpretação do modelo levou os pesquisadores a desenvolver uma variedade de métodos nos últimos anos e um workshop inteiro  foi dedicado a esse assunto na conferência do NIPS no ano passado. Esses métodos incluem:

  • LIME : um método para explicar a previsão de um modelo por aproximação linear local

Antes de nos aprofundarmos em como usar a incerteza para depurar e interpretar seus modelos, vamos entender por que a incerteza é importante.

 

Por que você deveria se preocupar com a incerteza?

Um exemplo proeminente é o de aplicativos de alto risco. Digamos que você esteja construindo um modelo que ajude os médicos a decidirem sobre o tratamento preferido para os pacientes. Nesse caso, não devemos nos preocupar apenas com a precisão do modelo, mas também com a precisão do modelo. Se a incerteza for muito alta, o médico deve levar isso em consideração.

Carros autônomos são outro exemplo interessante. Quando o modelo é incerto se há um pedestre na estrada, podemos usar essas informações para diminuir a velocidade do carro ou acionar um alerta para que o motorista possa assumir o comando.

A incerteza também pode nos ajudar com exemplos sem dados. Se o modelo não foi treinado usando exemplos semelhantes à amostra em mãos, seria melhor se ele pudesse dizer "desculpe, eu não sei". Isso poderia ter evitado o erro embaraçoso que as fotos do Google tiveram quando classificaram os afro-americanos como gorilas. Às vezes, erros como esse acontecem devido a um conjunto de treinamentos insuficientemente diverso.

O último uso da incerteza, que é o objetivo deste post, é como uma ferramenta para os profissionais depurarem seu modelo. Vamos mergulhar nisso em um momento, mas primeiro, vamos falar sobre diferentes tipos de incerteza.

 

Tipos de incerteza

Existem diferentes tipos de incerteza e modelagem, e cada um é útil para diferentes propósitos.

Incerteza do modelo , também conhecida como incerteza epistêmica: digamos que você tenha um único ponto de dados e deseja saber qual modelo linear melhor explica seus dados. Não há uma boa maneira de escolher entre as diferentes linhas da imagem - precisamos de mais dados!

À esquerda: dados insuficientes resultam em alta incerteza. À direita: dado mais incerteza nos dados, reduz-se

 

A incerteza epistêmica é responsável pela incerteza no parâmetro do modelo. Não temos certeza de quais pesos de modelo descrevem melhor os dados, mas, com mais dados, nossa incerteza diminui. Esse tipo de incerteza é importante em aplicativos de alto risco e ao lidar com dados pequenos e esparsos.

 

Como exemplo, digamos que você queira criar um modelo que tire uma foto de um animal e preveja se esse animal tentará comê-lo. Digamos que você treinou o modelo em diferentes fotos de leões e girafas e agora ele viu um zumbi. Como o modelo não foi treinado em fotos de zumbis, a incerteza será alta. Essa incerteza é o resultado do modelo e, devido a quadros suficientes de zumbis, ela diminui.

A incerteza de dados , ou incerteza aleatória, captura o ruído inerente à observação. Às vezes, o próprio mundo é estocástico. A obtenção de mais dados não nos ajudará nesse caso, porque o ruído é inerente aos dados.

Para entender esse ponto, voltemos ao nosso modelo de animais carnívoros. Nosso modelo pode reconhecer que uma imagem contém um leão e, portanto, você provavelmente será comido. Mas e se esse leão não estiver com fome agora? Desta vez, a incerteza vem dos dados. Outro exemplo é o de duas cobras que parecem iguais, mas enquanto uma é venenosa, a outra não.

A incerteza aleatória é dividida em dois tipos:

  1. Incerteza homocedástica: a incerteza é a mesma para todas as entradas.
  2. Incerteza heterocedástica: incerteza que depende da entrada específica em questão. Por exemplo, para um modelo que prevê profundidade em uma imagem, espera-se que uma parede sem característica tenha um nível de incerteza mais alto do que o de uma imagem com fortes linhas de fuga.

Incerteza de medição : outra fonte de incerteza é a própria medição. Quando a medição é barulhenta, a incerteza aumenta. No exemplo dos animais, a confiança do modelo pode ser prejudicada se algumas das fotos forem tiradas com uma câmera de baixa qualidade; ou se estivéssemos fugindo de um hipopótamo assustador e, como resultado, temos apenas imagens borradas para trabalhar.

Etiquetas barulhentas : com aprendizado supervisionado, usamos etiquetas para treinar os modelos. Se os rótulos forem barulhentos, a incerteza aumenta.

Existem várias maneiras de modelar cada tipo de incerteza. Estes serão abordados nos seguintes posts desta série. Por enquanto, vamos supor que temos um modelo de caixa preta que expõe a incerteza que ela tem em relação a suas previsões. Como podemos usá-lo para depurar o modelo?

Vamos considerar um dos nossos modelos em Avance Network usado para prever a probabilidade de um usuário clicar em algum conteúdo, também conhecida como CTR (Taxa de cliques ).

 

Usando incerteza para depurar seu modelo

O modelo possui muitos recursos categóricos representados pela incorporação de vetores . O modelo pode ter dificuldades em aprender a incorporação generalizada de valores raros. Uma maneira comum de resolver isso é usar uma incorporação especial Fora do Vocabulário (OOV).

Pense no anunciante de um artigo. Todos os anunciantes raros compartilham a mesma incorporação OOV, portanto, do ponto de vista do modelo, eles são essencialmente um anunciante. Esse anunciante OOV tem muitos itens diferentes, cada um com CTR diferente. Se usarmos apenas o anunciante como um preditor de CTR, teremos alta incerteza para OOV.

Para validar a alta incerteza do modelo para OOV, adotamos um conjunto de validação e trocamos todos os incorporadores de anunciantes para OOV. Em seguida, inspecionamos qual era a incerteza antes e depois da troca. Como esperado, a incerteza aumentou devido à troca. O modelo aprendeu que, dado um anunciante informativo, deveria reduzir a incerteza.

Podemos repetir isso para diferentes recursos e procurar outros que resultem em baixa incerteza quando substituídos por incorporamentos OOV. Esses recursos não são informativos ou algo do modo como os alimentamos no modelo não é o ideal.

Podemos até ir para uma granularidade mais fina: alguns anunciantes têm alta variabilidade entre a CTR de itens diferentes, enquanto outros têm itens com aproximadamente a mesma CTR. Esperamos que o modelo tenha maior incerteza para anunciantes do primeiro tipo. Uma análise útil está, portanto, analisando a correlação entre incerteza e variabilidade da CTR em um anunciante. Se a correlação não for positiva, significa que o modelo falhou em aprender que incerteza associar a cada anunciante. Essa ferramenta nos permite entender se algo deu errado no processo de treinamento ou na arquitetura do modelo, indicando que devemos depurá-lo ainda mais.

Podemos realizar uma análise semelhante e ver se a incerteza associada a um item específico diminui quanto mais vezes o mostramos (ou seja, mostramos a mais usuários / em mais locais). Novamente, esperamos que o modelo se torne mais certo e, se não ocorrer - a depuração será!

Outro exemplo interessante é o recurso de título: títulos exclusivos com palavras raras devem gerar alta incerteza no modelo. Este é o resultado do modelo não ver muitos exemplos dessa área de todos os títulos possíveis. Podemos verificar no conjunto de validação um grupo de títulos semelhantes que são raros e estimar a incerteza do modelo nesses títulos. Em seguida, treinaremos novamente o modelo usando um dos títulos e verificamos se a incerteza foi reduzida para todo o grupo. De fato, podemos ver que foi exatamente o que aconteceu:

Espere um segundo ... Ao expor o modelo a alguns títulos, ele foi capaz de melhorar e ter mais certeza sobre vários novos títulos. Talvez possamos usar isso para de alguma forma incentivar a exploração de novos itens? Bem, sim nós podemos! Mais sobre isso em um post a seguir da série.

 

Pensamentos finais

A incerteza é importante em muitos domínios. A identificação de qual tipo de incerteza é importante é específica da aplicação. Você pode usá-los de várias maneiras, depois de saber como modelá-los. Neste post, discutimos como você pode usá-los para depurar seu modelo. No próximo post, falaremos sobre diferentes maneiras de obter estimativas de incerteza em seu modelo.

 

Máxima comunicação com proteção ao extremo? Avance Network: A verdadeira rede social junte-se a nós


Strong

5136 Blog Postagens

Comentários