A destilação de conhecimento (KD – do Inglês, Knowledge distillation) é um processo de compressão de aprendizagem automática (ML – do Inglês, machine learning) que transfere o conhecimento de um modelo grande de aprendizagem profunda (DL – do Inglês, deep learning) para um modelo menor e mais eficiente. Assim, saiba como funciona e o que é Destilação de Conhecimento em Aprendizagem Profunda no artigo abaixo.
O que é destilação de conhecimento?
Nesse contexto, o conhecimento se refere aos padrões e ao comportamento que o modelo original aprendeu durante o treinamento.
A Techopedia explica Destilação de Conhecimento em Aprendizagem Profunda
O objetivo da destilação do conhecimento é reduzir o espaço ocupado na memória, os requisitos de computação e os custos de energia de um modelo grande, para que ele possa ser usado em um ambiente com restrição de recursos sem sacrificar significativamente o desempenho.
A destilação do conhecimento é uma maneira eficaz de melhorar a precisão de um modelo de ML relativamente pequeno. O processo em si é às vezes chamado de aprendizado professor/aluno. O modelo grande é o professor, e o modelo pequeno é o aluno.
Como funciona a destilação de conhecimento
Durante o processo de destilação, o modelo do professor (um modelo de base grande e pré-treinado) gera rótulos flexíveis nos dados de treinamento. Os rótulos flexíveis, que são essencialmente distribuições de probabilidade de saída, são usados para treinar o modelo do aluno.
Aqui está um exemplo muito simples de como a destilação de conhecimento pode ser usada para treinar um modelo de aluno:
- Treinar o modelo do professor em um conjunto de dados.
- Gerar rótulos flexíveis do modelo do professor para o mesmo conjunto de dados.
- Treine o modelo do aluno no mesmo conjunto de dados com os rótulos flexíveis.
- Faça o ajuste fino do modelo do aluno no conjunto de dados com rótulos rígidos. (Observação: as etapas três e quatro podem ser combinadas de alguma forma).
- Avalie o desempenho do modelo do aluno em termos de uma função de perda que quantifica o quanto as previsões do modelo correspondem aos resultados desejados.
Se o nível de desempenho do modelo do aluno for aceitável, o modelo do aluno poderá ser implantado. Se o nível de desempenho do modelo do aluno for inaceitável, o modelo do aluno poderá ser treinado novamente com dados adicionais ou otimizado ajustando-se os hiperparâmetros, as taxas de aprendizado e/ou a temperatura de destilação.
Uma temperatura mais alta torna as distribuições de probabilidade mais suaves (com menos picos), enquanto uma temperatura mais baixa as torna mais nítidas (com mais picos e mais próximas dos rótulos rígidos).
Técnicas de otimização de destilação de conhecimento
-
Transferência de atenção
A transferência de atenção é uma técnica em que o modelo do aluno é treinado para imitar os mapas de atenção gerados pelo modelo do professor. Os mapas de atenção destacam as regiões importantes em uma imagem ou em uma sequência de palavras.
-
FitNets
FitNets é uma técnica na qual o modelo do aluno é treinado para corresponder às representações intermediárias do modelo do professor. As representações intermediárias são as camadas ocultas do modelo que capturam os recursos subjacentes dos dados de entrada.
-
Destilação baseada em similaridade
Nessa técnica, o modelo do aluno é treinado para corresponder à matriz de similaridade do modelo do professor. A matriz de similaridade mede as semelhanças de pares entre várias amostras de entrada.
-
Destilação baseada em dicas
A destilação baseada em dicas é uma técnica em que o modelo do aluno é treinado para prever a diferença entre as saídas do modelo do professor e do modelo do aluno. Essa diferença é chamada de dica.
-
Destilação de entropia cruzada
O modelo do aluno é treinado usando uma função de perda que combina a perda de classificação padrão com uma perda de destilação que mede a diferença entre as probabilidades de saída do modelo do professor e do aluno.
Casos de uso
A destilação do conhecimento é uma técnica importante para criar modelos leves de aprendizado de máquina. Esses modelos destilados são especialmente benéficos para sistemas de recomendação e dispositivos de ponta de IoT (do Inglês, Internet of Things) que têm restrições computacionais.
Ao usar a destilação de conhecimento, dispositivos como câmeras de segurança, sistemas domésticos inteligentes e assistentes digitais virtuais podem executar uma ampla gama de tarefas complexas localmente, incluindo:
Vantagens e desvantagens
Uma das principais vantagens da destilação de conhecimento é que ela permite a criação de modelos menores e mais rápidos que funcionam bem em dispositivos de ponta da Internet das Coisas (IoT).
Deve-se observar, no entanto, que a destilação do conhecimento geralmente envolve lidar com uma compensação entre o tamanho e um nível aceitável de precisão.
Importância da compactação
Um dos maiores desafios no desenvolvimento de aplicativos business-to-consumer (B2C) que usam inteligência artificial (IA) é que os dispositivos de computação de ponta, como telefones celulares e tablets, têm recursos limitados de armazenamento e processamento.
Isso deixa os engenheiros de aprendizado de máquina com uma opção se quiserem executar um modelo grande em um dispositivo de ponta: reduzir o tamanho do modelo com técnicas de compactação, como poda de rede neural, quantização, fatoração de baixo nível e destilação de conhecimento.
Destilação de conhecimento vs. aprendizagem por transferência
A destilação de conhecimento às vezes é chamada de um tipo de aprendizagem por transferência, mas os dois conceitos têm finalidades diferentes.
O objetivo da destilação de conhecimento é criar um modelo de aprendizado de máquina menor que possa resolver a mesma tarefa que um modelo maior.
Em contrapartida, o objetivo da aprendizagem por transferência é reduzir o tempo necessário para treinar um modelo grande para resolver uma nova tarefa usando o conhecimento obtido em uma tarefa aprendida anteriormente.
Destilação de conhecimento vs. Destilação de dados
A destilação de dados e a destilação de conhecimento são processos de compactação, mas têm como alvo componentes diferentes. A destilação de dados concentra-se nos próprios dados de treinamento. Seu objetivo é obter um subconjunto menor dos dados que ainda represente o grande conjunto de dados original.
Por outro lado, a destilação do conhecimento se concentra em reduzir o tamanho de um modelo sem perder a eficiência e a precisão.