Aprendizado de Representações: A Rede Aprende as Próprias Features
Objetivos de Aprendizagem
- Enunciar a ideia unificadora do aprendizado de representações: as camadas internas de uma rede aprendem uma codificação transformada da entrada, e não apenas uma aritmética intermediária a caminho de uma resposta final.
- Explicar a progressão do genérico ao específico das features aprendidas ao longo das camadas de uma CNN, e por que isso torna o transfer learning possível.
- Explicar como os embeddings de tokens de um Transformer cumprem, para sequências, o papel análogo que os mapas de features de uma CNN cumprem para imagens.
- Distinguir o aprendizado de representações da abordagem clássica de engenharia de features que
ai-theory/machine-learningem grande parte pressupôs.
Contexto e Motivação
Todo modelo clássico de ai-theory/machine-learning (regressão linear, regressão logística, SVMs, árvores de decisão) opera sobre um conjunto fixo de features de entrada escolhido por humanos; o peso de decidir o que medir nos dados brutos (quais estatísticas de pixels, quais features de texto, quais razões construídas) cai sobre quem preparou o dataset, antes de o modelo sequer vê-lo. Toda arquitetura vista até aqui nesta disciplina (a hierarquia de filtros convolucionais das CNNs, os embeddings de tokens e as representações derivadas da atenção dos Transformers) faz algo de natureza diferente: as próprias camadas internas da rede aprendem quais features são úteis, diretamente dos dados, como parte integrante do treino via backpropagation. Este conceito dá nome e unifica essa ideia de forma explícita, amarrando fios que apareceram separadamente nos blocos de CNN e de Transformer sem ainda terem sido enunciados como um único princípio geral.
Teoria Central
De features construídas à mão a features aprendidas
O conceito principal-component-analysis de ai-theory/machine-learning era, na verdade, uma exceção parcial dentro daquela disciplina: o PCA aprende suas direções principais a partir da própria estrutura de covariância dos dados, em vez de recebê-las prontas; mas ainda é uma transformação linear fixa, calculada uma única vez antes de qualquer modelo preditivo ser treinado sobre ela. Redes profundas generalizam essa ideia muito além: a transformação de cada camada é aprendida de ponta a ponta, junto com a tarefa final que a rede é treinada para resolver, e pode ser arbitrariamente não linear, em vez da única projeção linear que o PCA calcula. É o sentido preciso em que o aprendizado de representações é uma expansão genuína da mesma ideia subjacente que o PCA já introduziu, e não um conceito novo sem relação.
A progressão do genérico ao específico em CNNs
O material de transfer learning de cnn-architectures-and-residual-connections já contém a evidência concreta da afirmação central deste conceito: as primeiras camadas convolucionais de uma CNN treinada aprendem detectores genéricos e amplamente reaproveitáveis (bordas, manchas de cor, texturas simples) que não têm nada a ver com as classes específicas que a rede foi treinada para distinguir, enquanto suas camadas posteriores combinam esses detectores genéricos em padrões cada vez mais complexos e cada vez mais específicos da tarefa (um olho, uma roda, uma combinação de texturas exclusiva de uma classe). Essa progressão (genérica e amplamente transferível nas primeiras camadas, específica e ajustada à tarefa nas posteriores) é exatamente o motivo de o transfer learning funcionar: reaproveitar as primeiras camadas de uma rede em uma tarefa nova e relacionada reaproveita detectores de features que nunca foram, de fato, específicos da tarefa original.
Embeddings: a mesma ideia para tokens e sequências
O embedding de entrada de um Transformer (o vetor em que cada token de entrada é convertido antes de qualquer self-attention ser aplicada) é o análogo direto, na modelagem de sequências, dos primeiros mapas de features de uma CNN: uma representação aprendida de cada token em um espaço contínuo em que, depois do treino, tokens relacionados semântica ou funcionalmente tendem a ficar próximos. A self-attention então constrói representações cada vez mais contextualizadas de cada posição; a mesma progressão do genérico ao contextual já vista nas CNNs, só que construída a partir de combinações, ponderadas pela atenção, das representações de outras posições, em vez de filtros convolucionais locais. Nas duas arquiteturas, uma entrada bruta (uma grade de pixels, uma sequência de tokens discretos) é transformada progressivamente, camada por camada, em representações que facilitam a tarefa final da rede; isso é aprendizado de representações, visto como uma única ideia que atravessa toda arquitetura que esta disciplina cobriu.
Exemplos Resolvidos
Exemplo 1: o que o transfer learning reaproveita, concretamente
Considere uma CNN treinada em um grande dataset de imagens de uso geral para classificar 1.000 categorias de objetos do dia a dia. Suas primeiras camadas convolucionais, pela progressão do genérico ao específico acima, aprenderam filtros que detectam bordas, cantos e transições simples de cor; padrões que aparecem em praticamente toda imagem natural, qualquer que seja o que a imagem retrata no fim. Reaproveitar exatamente essas primeiras camadas como um extrator de features fixo para uma tarefa nova (digamos, classificar imagens de microscópio de células, um domínio que a rede nunca viu no treino) funciona justamente porque esses filtros iniciais nunca foram de fato especializados nas 1.000 categorias originais; eles codificam estrutura visual amplamente útil, e esse é o conteúdo concreto por trás da afirmação geral "a rede aprende as próprias features".
Exemplo 2: o espaço de embeddings como objeto geométrico
Suponha que os embeddings de tokens aprendidos por um Transformer posicionem os tokens "king", "queen", "man" e "woman" de modo que a diferença vetorial embedding("king") − embedding("man") seja aproximadamente igual a embedding("queen") − embedding("woman"): as duas diferenças apontam mais ou menos na mesma direção no espaço de embeddings, correspondendo à relação, seja ela qual for, que a rede aprendeu a separar o par "da realeza" do par "não da realeza". Nada na arquitetura da rede programou explicitamente essa estrutura geométrica; ela é um subproduto de treinar os embeddings, junto com todos os outros pesos, para tornar a tarefa real da rede (prever texto, ou qualquer que seja o objetivo para o qual ela foi treinada) o mais precisa possível; a geometria emerge do processo de aprendizado, exatamente como os detectores de bordas da CNN emergiram do treino de classificação de imagens, e não de alguma regra especificada à mão sobre como relações entre palavras deveriam se organizar no espaço.
Equívocos Comuns e Armadilhas
- "O aprendizado de representações é uma técnica específica de CNNs ou específica de Transformers." É a propriedade geral de que as camadas internas de qualquer rede profunda aprendem uma codificação transformada da entrada como parte integrante, treinada de ponta a ponta, da resolução da sua tarefa; este conceito traça de propósito o paralelo entre CNNs e Transformers justamente porque a mesma ideia de fundo se manifesta de formas diferentes conforme a estrutura específica da arquitetura (filtros locais para imagens, vetores contextuais derivados da atenção para sequências).
- "As primeiras camadas de um modelo pré-treinado já são perfeitamente gerais e nunca precisam de ajuste para uma tarefa nova." As orientações de transfer learning (já vistas) distinguem "parecido com os dados originais" de "muito diferente dos dados originais" justamente porque features genéricas se transferem melhor quanto mais os dados da nova tarefa se parecem com aqueles de que as features originais foram aprendidas; a generalidade é uma questão de grau, e não uma garantia absoluta.
- "A engenharia de features (a abordagem clássica de
ai-theory/machine-learning) está obsoleta." Em problemas com dados modestos, estrutura de domínio bem conhecida ou necessidade de interpretabilidade, features construídas à mão e modelos clássicos continuam sendo uma escolha real e razoável; o aprendizado de representações troca o esforço de projetar features à mão pela exigência de dados e computação suficientes para aprender boas features automaticamente, um trade-off genuíno, e não uma melhoria estrita em toda situação.
Resumo
Todo modelo clássico que ai-theory/machine-learning cobriu operava sobre features fixas escolhidas por humanos; toda arquitetura profunda que esta disciplina cobriu, ao contrário, aprende a própria representação interna da entrada de ponta a ponta, junto com a tarefa para a qual é treinada; uma extensão direta e muito mais geral da mesma ideia que o PCA (um caso linear, fixo e calculado uma única vez) já introduziu. As camadas de uma CNN progridem de detectores de baixo nível genéricos e amplamente reaproveitáveis para combinações cada vez mais específicas da tarefa, e é exatamente por isso que o transfer learning funciona; os embeddings de tokens de um Transformer e suas representações contextuais derivadas da atenção cumprem o papel análogo para sequências. Esse fio unificador (a rede aprende as próprias features) conecta os blocos de CNN e de Transformer e prepara os modelos generativos do bloco final, que levam o aprendizado de representações um passo adiante: aprender uma representação compacta e completa o bastante para gerar dados novos a partir dela.