Destilação de conhecimento

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

No aprendizado de máquina, a destilação de conhecimento ou destilação de modelo é o processo de transferência de conhecimento de um modelo grande para um menor. Embora modelos grandes (como redes neurais muito profundas ou conjuntos de muitos modelos) tenham mais capacidade de conhecimento do que modelos pequenos, essa capacidade pode não ser totalmente utilizada. Pode ser igualmente dispendioso, em termos computacionais, avaliar um modelo, mesmo que ele utilize pouco de sua capacidade de conhecimento. A destilação de conhecimento transfere conhecimento de um modelo grande para um menor sem perda de validade. Como os modelos menores são menos dispendiosos para avaliar, eles podem ser implantados em hardware menos potente (como um dispositivo móvel).[1]

A destilação de modelo não deve ser confundida com a compressão de modelo, que descreve métodos para diminuir o tamanho de um modelo grande, sem treinar um novo modelo. A compressão do modelo geralmente preserva a arquitetura e a contagem nominal de parâmetros do modelo, ao mesmo tempo que diminui os bits por parâmetro.

A destilação de conhecimento tem sido usada com sucesso em diversas aplicações de aprendizado de máquina, como detecção de objetos,[2] modelos acústicos,[3] e processamento de linguagem natural.[4] Recentemente, também foi introduzido para representar graficamente redes neurais aplicáveis a dados não-grade.[5]

Formulação matemática

Dado um grande modelo como uma função da variável vetorial 𝐱, treinado para uma tarefa de classificação específica, normalmente a camada final da rede é um softmax na forma

yi(𝐱|t)=ezi(𝐱)tjezj(𝐱)t

onde t é a temperatura, um parâmetro que é definido como 1 para um softmax padrão. O operador softmax converte os valores logit zi(𝐱) para pseudoprobabilidades: valores de temperatura mais altos geram distribuições mais suaves de pseudoprobabilidades entre as classes de saída. A destilação do conhecimento consiste em treinar uma rede menor, chamada modelo destilado, em um conjunto de dados chamado conjunto de transferência (que é diferente do conjunto de dados usado para treinar o modelo grande) usando entropia cruzada como a função de perda entre a saída do modelo destilado 𝐲(𝐱|t) e a saída do modelo grande 𝐲^(𝐱|t) no mesmo registro (ou a média das saídas individuais, se o modelo grande for um conjunto), usando um valor alto de temperatura softmax t para ambos os modelos[1]

E(𝐱|t)=iy^i(𝐱|t)logyi(𝐱|t).

História

Uma metodologia relacionada foi a compressão ou poda do modelo, onde uma rede treinada é reduzida em tamanho. Isto foi feito pela primeira vez em 1965 por Alexey Ivakhnenko e Valentin Lapa na URSS.[6][7][8] Suas redes profundas foram treinadas camada por camada por meio de análise de regressão. Unidades ocultas supérfluas foram podadas usando um conjunto de validação separado.[9] Outros métodos de compressão de rede neural incluem Biased Weight Decay[10] e Optimal Brain Damage.[11]

Predefinição:Referências