A Mistura de especialistas (do inglês, Mixture of experts ou MoE) é uma técnica de aprendizado de máquina onde múltiplas redes neurais especialistas (aprendizes) são usadas para dividir um espaço de problema em regiões homogêneas. A MoE representa uma forma de aprendizado de ensemble. Elas também eram chamadas de máquinas de comitê.
Teoria básica A MoE sempre possui os seguintes componentes, mas eles são implementados e combinados de forma diferente de acordo com o problema a ser resolvido:
Especialistas , cada um recebendo a mesma entrada e produzindo saídas . Uma função de ponderação (também conhecida como função de roteamento ou função de porta) , que recebe a entrada e produz um vetor de saídas . Esta pode ou não ser uma distribuição de probabilidade, mas em ambos os casos, suas entradas são não-negativas. é o conjunto de parâmetros. O parâmetro é para a função de ponderação. Os parâmetros são para os especialistas. Dada uma entrada , a mistura de especialistas produz uma única saída combinando de acordo com os pesos de alguma forma, geralmente por .
Tanto os especialistas quanto a função de ponderação são treinados minimizando alguma função de perda, geralmente por meio da descida de gradiente (gradient descent). Há muita liberdade na escolha da forma precisa dos especialistas, da função de ponderação e da função de perda.
Rede meta-pi A rede meta-pi, relatada por Hampshire e Waibel, usa como saída. O modelo é treinado realizando a descida de gradiente na perda de erro quadrático médio . Os especialistas podem ser funções arbitrárias.
Em sua publicação original, eles estavam resolvendo o problema de classificação de fonemas em sinais de fala de 6 falantes de japonês diferentes, 2 mulheres e 4 homens. Eles treinaram 6 especialistas, cada um sendo uma "rede neural com atraso de tempo" (essencialmente uma rede de convolução multicamadas sobre o espectrograma mel). Eles descobriram que a mistura de especialistas resultante dedicou 5 especialistas para 5 dos falantes, mas o 6º falante (homem) não teve um especialista dedicado; em vez disso, sua voz foi classificada por uma combinação linear dos especialistas para os outros 3 falantes homens.
Misturas adaptativas de especialistas locais
As misturas adaptativas de especialistas locais usam um modelo de mistura gaussiana. Cada especialista simplesmente prevê uma distribuição Gaussiana, e ignora totalmente a entrada. Especificamente, o -ésimo especialista prevê que a saída é , onde é um parâmetro aprendível. A função de ponderação é uma função linear-softmax:A mistura de especialistas prevê que a saída é distribuída de acordo com a função densidade de probabilidade logarítmica:Ela é treinada por estimativa de máxima verossimilhança, isto é, ascensão de gradiente em . O gradiente para o -ésimo especialista é
e o gradiente para a função de ponderação é
Para cada par de entrada-saída , a função de ponderação é alterada para aumentar o peso de todos os especialistas que tiveram um desempenho acima da média, e diminuir o peso de todos os especialistas que tiveram um desempenho abaixo da média. Isso encoraja a função de ponderação a aprender a selecionar apenas os especialistas que fazem as previsões corretas para cada entrada.
O -ésimo especialista é alterado para fazer sua previsão mais próxima de , mas a quantidade de alteração é proporcional a . Isso tem uma interpretação Bayesiana. Dada a entrada , a probabilidade a priori de que o especialista seja o correto é , e é a verossimilhança da evidência . Então, é a probabilidade a posteriori para o especialista , e assim a taxa de alteração para o -ésimo especialista é proporcional à sua probabilidade a posteriori.
Em outras palavras, os especialistas que, em retrospectiva, pareciam ser os bons especialistas a se consultar, são solicitados a aprender com o exemplo. Os especialistas que, em retrospectiva, não o foram, são deixados sozinhos.
O efeito combinado é que os especialistas se tornam especializados: suponha que dois especialistas sejam bons em prever um certo tipo de entrada, mas um é um pouco melhor, então a função de ponderação eventualmente aprenderá a favorecer o melhor. Depois que isso acontece, o especialista inferior é incapaz de obter um sinal de gradiente alto e torna-se ainda pior na previsão desse tipo de entrada. Por outro lado, o especialista inferior pode se tornar melhor na previsão de outros tipos de entrada, sendo cada vez mais puxado para outra região. Isso tem um efeito de feedback positivo, fazendo com que cada especialista se afaste do resto e cuide sozinho de uma região local (daí o nome "especialistas locais").
MoE Hierárquico Misturas hierárquicas de especialistas usam vários níveis de roteamento em uma árvore. Cada função de roteamento (gate) é uma distribuição de probabilidade sobre o próximo nível de roteamentos, e os especialistas estão nos nós folha da árvore. Eles são semelhantes a árvores de decisão.
Por exemplo, um MoE hierárquico de 2 níveis teria uma função de porta de primeira ordem , e funções de porta de segunda ordem e especialistas . A previsão total é então .
Variantes A mistura de especialistas, sendo semelhante ao modelo de mistura gaussiana, também pode ser treinada pelo algoritmo de maximização da expectativa, assim como os modelos de mistura gaussiana. Especificamente, durante a etapa de expectativa (E), o "fardo" (burden) de explicar cada ponto de dado é atribuído aos especialistas, e durante a etapa de maximização (M), os especialistas são treinados para melhorar as explicações para as quais obtiveram um alto fardo, enquanto a porta (gate) é treinada para melhorar sua atribuição de fardo. Isso pode convergir mais rapidamente do que a ascensão de gradiente na log-verossimilhança.
A escolha da função de porta é frequentemente softmax. Além disso, o roteamento pode usar distribuições gaussianas e famílias exponenciais.
Em vez de realizar uma soma ponderada de todos os especialistas, no MoE rígido (hard MoE), apenas o especialista com melhor classificação é escolhido. Isto é, . Isso pode acelerar o tempo de treinamento e inferência.
Os especialistas podem usar formas mais gerais de distribuições gaussianas multivariadas. Por exemplo, propôs , onde são parâmetros aprendíveis. Em outras palavras, cada especialista aprende a fazer regressão linear, com uma estimativa de incerteza aprendível.
Pode-se usar outros especialistas que não distribuições gaussianas. Por exemplo, pode-se usar a Distribuição de Laplace, ou a Distribuição t de Student. Para classificação binária, também foram propostos especialistas em regressão logística, comonde são parâmetros aprendíveis. Isso foi posteriormente generalizado para classificação multiclasse, com especialistas em regressão logística multinomial.
Um artigo propôs uma mistura de softmaxes para modelagem de linguagem autorregressiva. Especificamente, considere um modelo de linguagem que, dado um texto anterior , prevê a próxima palavra . A rede codifica o texto em um vetor , e prevê a distribuição de probabilidade da próxima palavra como para uma matriz de incorporação (embedding) . Na mistura de softmaxes, o modelo produz múltiplos vetores , e prevê a próxima palavra como , onde é uma distribuição de probabilidade por uma operação linear-softmax nas ativações dos neurônios ocultos dentro do modelo. O artigo original demonstrou sua eficácia para redes neurais recorrentes. Mais tarde, descobriu-se que isso também funciona para Transformers.
Aprendizado profundo A seção anterior descreveu o MoE como era usado antes da era do aprendizado profundo (deep learning). Depois do aprendizado profundo, o MoE encontrou aplicações na execução dos maiores modelos, como uma forma simples de realizar computação condicional: apenas partes do modelo são usadas, sendo as partes escolhidas de acordo com qual é a entrada.
O artigo mais antigo que aplica MoE ao aprendizado profundo data de 2013, o qual propôs o uso de uma rede de roteamento diferente em cada camada de uma rede neural profunda. Especificamente, cada porta (gate) é uma rede linear-ReLU-linear-softmax, e cada especialista é uma rede linear-ReLU. Como a saída da porta não é esparsa, todas as saídas dos especialistas são necessárias e nenhuma computação condicional é realizada.
O principal objetivo ao usar o MoE no aprendizado profundo é reduzir o custo computacional. Consequentemente, para cada consulta, apenas um pequeno subconjunto dos especialistas deve ser consultado. Isso torna o MoE no aprendizado profundo diferente do MoE clássico. No MoE clássico, a saída para cada consulta é uma soma ponderada das saídas de todos os especialistas. No MoE de aprendizado profundo, a saída para cada consulta pode envolver apenas as saídas de alguns especialistas. Consequentemente, a principal escolha de projeto no MoE torna-se o roteamento: dado um lote de consultas, como rotear as consultas para os melhores especialistas.
Camada MoE com portas esparsas A camada MoE com portas esparsas (Sparsely-gated MoE layer), publicada por pesquisadores do Google Brain, usa redes feedforward como especialistas e roteamento linear-softmax. Semelhante ao MoE rígido proposto anteriormente, eles alcançam a esparsidade por meio de uma soma ponderada apenas dos k-melhores (top-k) especialistas, em vez da soma ponderada de todos eles. Especificamente, em uma camada MoE, existem redes feedforward e uma rede de roteamento . A rede de roteamento é definida por , onde é uma função que mantém as k-melhores entradas de um vetor iguais, mas define todas as outras entradas como . A adição de ruído ajuda no balanceamento de carga.
A escolha de é um hiperparâmetro selecionado de acordo com a aplicação. Valores típicos são . A versão com também é chamada de Switch Transformer. O Switch Transformer original foi aplicado a um modelo de linguagem T5.
Como demonstração, eles treinaram uma série de modelos para tradução automática com camadas alternadas de MoE e LSTM, e os compararam com modelos LSTM profundos. A Tabela 3 mostra que os modelos MoE usaram menos computação no tempo de inferência, apesar de terem 30 vezes mais parâmetros.
Este módulo arquitetônico foi publicado em janeiro de 2017, alguns meses antes da publicação da arquitetura Transformer (12 de junho de 2017), e eles foram combinados em uma arquitetura multimodal chamada MultiModel publicada 4 dias depois (16 de junho de 2017).
Balanceamento de carga MoEs originais (vanilla) tendem a ter problemas de balanceamento de carga: alguns especialistas são consultados frequentemente, enquanto outros são raramente ou nunca consultados. Para encorajar a porta a selecionar cada especialista com igual frequência (balanceamento de carga adequado) dentro de cada lote, cada camada MoE tem duas funções de perda auxiliares. Isso é melhorado pelo Switch Transformer em uma única função de perda auxiliar. Especificamente, seja o número de especialistas, então para um dado lote de consultas , a perda auxiliar para o lote éAqui, é a fração de tokens que escolheram o especialista , e é a fração do peso sobre o especialista . Essa perda é minimizada em , precisamente quando cada especialista tem peso igual a em todas as situações.Pesquisadores da DeepSeek projetaram uma variante de MoE, com "especialistas compartilhados" que sempre são consultados, e "especialistas roteados" que podem não ser. Eles descobriram que o balanceamento de carga padrão encoraja os especialistas a serem igualmente consultados, mas isso faz com que os especialistas repliquem a mesma capacidade central, como a gramática do inglês. Eles propuseram que os especialistas compartilhados aprendam capacidades centrais que são usadas frequentemente, e deixem os especialistas roteados aprenderem as capacidades periféricas que são usadas raramente.