Deep (Learning + Random) Floresta e análise de artigo

Continuamos a falar sobre a conferência sobre estatística e aprendizado de máquina AISTATS 2019. Neste post, analisaremos artigos sobre modelos profundos de conjuntos de árvores, misturaremos a regularização para dados altamente esparsos e uma aproximação com tempo eficiente da validação cruzada.



Algoritmo de floresta profunda: uma exploração para modelos profundos não NN baseados em módulos não diferenciáveis


Zhi-Hua Zhou (Universidade de Nanjing)
Apresentação
Artigo
Implementações - abaixo


Um professor da China falou sobre o conjunto de árvores, que os autores chamam de primeiro treinamento profundo em módulos não diferenciáveis. Pode parecer uma afirmação muito alta, mas este professor e seu índice H-95 são oradores convidados, esse fato nos permite levar a afirmação mais a sério. A teoria básica do Deep Forest foi desenvolvida há muito tempo, o artigo original já é 2017 (quase 200 citações), mas os autores escrevem bibliotecas e todos os anos aprimoram o algoritmo em velocidade. E agora, ao que parece, eles chegaram ao ponto em que esta bela teoria pode finalmente ser posta em prática.


Visão geral da arquitetura Deep Forest


Antecedentes


Modelos profundos, que agora são entendidos como redes neurais profundas, são usados ​​para capturar dependências complexas de dados. Além disso, descobriu-se que aumentar o número de camadas é mais eficiente do que aumentar o número de unidades em cada camada. Mas as redes neurais têm suas desvantagens:


  • São necessários muitos dados para não treinar novamente,
  • São necessários muitos recursos de computação para aprender em um período de tempo razoável,
  • Muitos hiperparâmetros difíceis de configurar de maneira ideal

Além disso, elementos de redes neurais profundas são módulos diferenciáveis ​​que não são necessariamente eficazes para cada tarefa. Apesar da complexidade das redes neurais, algoritmos conceitualmente simples, como uma floresta aleatória, geralmente funcionam melhor ou não muito pior. Mas, para esses algoritmos, é necessário projetar recursos manualmente, o que também é difícil de ser feito da melhor maneira possível.


Os pesquisadores já notaram que os conjuntos no Kaggle: são “muito perfeitos” e, inspirados pelas palavras de Scholl e Hinton, de que a diferenciação é o lado mais fraco do Deep Learning, eles decidiram criar um conjunto de árvores com propriedades de DL.


Slide “Como fazer um bom conjunto”


A arquitetura foi deduzida das propriedades dos conjuntos: os elementos dos conjuntos não devem ser muito pobres em qualidade e diferir.


O GcForest consiste em duas fases: Floresta em cascata e Varredura de grãos múltiplos. Além disso, para que a cascata não se treine novamente, consiste em 2 tipos de árvores - uma das quais são absolutamente aleatórias que podem ser usadas em dados não alocados. O número de camadas é determinado dentro do algoritmo de validação cruzada.


Dois tipos de árvores


Resultados


Além dos resultados em conjuntos de dados padrão, os autores tentaram usar o gcForest em transações do sistema de pagamento chinês para procurar fraudes e obtiveram F1 e AUC muito mais altas que as de LR e DNN. Esses resultados estão apenas na apresentação, mas o código a ser executado em alguns conjuntos de dados padrão está no Git.



Resultados de substituição de algoritmos. mdDF é a Floresta Profunda de Distribuição de Margem ideal, uma variante do gcForest



Prós:


  • Poucos hiperparâmetros, o número de camadas é ajustado automaticamente dentro do algoritmo
  • As configurações padrão são escolhidas para funcionar bem em muitas tarefas.
  • Complexidade adaptativa do modelo, em dados pequenos - um modelo pequeno
  • Não há necessidade de definir recursos
  • Funciona de qualidade comparável a redes neurais profundas e, às vezes, melhor

Contras:


  • Não acelerado na GPU
  • Nas fotos perde DNNs

As redes neurais têm um problema de atenuação de gradiente, enquanto as florestas profundas têm um problema de "desaparecimento da diversidade". Como esse é um conjunto, quanto mais elementos "diferentes" e "bons" forem usados, maior será a qualidade. O problema é que os autores já tentaram quase todas as abordagens clássicas (amostragem, randomização). Enquanto nenhuma nova pesquisa básica aparecer sobre o tema "diferenças", será difícil melhorar a qualidade das florestas profundas. Mas agora é possível melhorar a velocidade da computação.


Reprodutibilidade dos resultados


Fiquei intrigado com o XGBoost nos dados tabulares e queria reproduzir o resultado. Peguei o conjunto de dados Adultos e apliquei o GcForestCS (uma versão ligeiramente acelerada do GcForest) com parâmetros dos autores do artigo e o XGBoost com parâmetros padrão. No exemplo que os autores tiveram, os recursos categóricos já foram pré-processados ​​de alguma forma, mas não foi indicado como. Como resultado, usei o CatBoostEncoder e outra métrica - ROC AUC. Os resultados foram estatisticamente diferentes - o XGBoost venceu. O tempo de operação do XGBoost é insignificante, enquanto o gcForestCS possui 20 minutos de cada validação cruzada em 5 vezes. Por outro lado, os autores testaram o algoritmo em diferentes conjuntos de dados e ajustaram os parâmetros desse conjunto de dados ao pré-processamento de seus recursos.


O código pode ser encontrado aqui .


Implementações


O código oficial dos autores do artigo
Modificação oficial aprimorada, mais rápida, mas sem documentação
→ A implementação é mais simples


PcLasso: o laço atende à regressão dos componentes principais


J. Kenneth Tay, Jerome Friedman, Robert Tibshirani (Universidade de Stanford)


Artigo
Apresentação
Exemplo de uso


No início de 2019, J. Kenneth Tay, Jerome Friedman e Robert Tibshirani, da Universidade de Stanford, propuseram um novo método de ensino com um professor, especialmente adequado para dados esparsos.


Os autores do artigo resolveram o problema de analisar dados sobre estudos de expressão gênica, descritos em Zeng & Breesy (2016). Alvo é o status mutacional do gene p53, que regula a expressão do gene em resposta a vários sinais de estresse celular. O objetivo do estudo é identificar preditores que se correlacionam com o status mutacional da p53. Os dados consistem em 50 linhas, 17 das quais são classificadas como normais e as 33 restantes carregam mutações no gene p53. De acordo com a análise de Subramanian et al. (2005) 308 conjuntos de genes que estão entre 15 e 500 são incluídos nesta análise. Esses kits de genes contêm um total de 4.301 genes e estão disponíveis no pacote grpregOverlap R. Ao expandir dados para processar grupos sobrepostos, são produzidas 13.237 colunas. Os autores do artigo utilizaram o método pcLasso, que ajudou a melhorar os resultados do modelo.


Na figura, vemos um aumento na AUC ao usar o "pcLasso"


A essência do método


Método combina l_1 -regularização com l_2 , que restringe o vetor de coeficientes aos principais componentes da matriz de recursos. Eles chamaram o método proposto de “componentes principais do laço” (“pcLasso” disponível em R). O método pode ser especialmente poderoso se as variáveis ​​forem agrupadas anteriormente (o usuário escolhe o que e como agrupar). Nesse caso, o pcLasso comprime cada grupo e obtém a solução na direção dos principais componentes desse grupo. No processo de resolução, também é realizada a seleção de grupos significativos entre os disponíveis.


Apresentamos a matriz diagonal da decomposição singular de uma matriz centralizada de feições X da seguinte maneira:


Representamos nossa decomposição singular da matriz centralizada X (SVD) como X = UDV ^ T onde D É uma matriz diagonal que consiste em valores singulares. Nesta forma l_2 - A regularização pode ser representada:
\ beta ^ T VZV ^ T \ beta onde Z - matriz diagonal contendo a função de quadrados de valores singulares: Z_ {11} = f_1 (d_1 ^ 2, d_2 ^ 2, ..., d_m ^ 2), ..., Z_ {22} = f_2 (d_1 ^ 2, d_2 ^ 2, ..., d_m ^ 2) .


Em geral, em l_2 -regularização Z_ {jj} = 1 para todos j isso corresponde \ beta ^ T \ beta . Eles sugerem minimizar a seguinte funcionalidade:



Aqui D - matriz de diferenças de elementos diagonais d_1 ^ 2-d_1 ^ 2, d_1 ^ 2-d_2 ^ 2, ..., d_1 ^ 2-d_m ^ 2 . Em outras palavras, controlamos o vetor \ beta usando hiperparâmetro também \ theta .
Transformando essa expressão, obtemos a solução:



Mas a principal "característica" do método, é claro, é a capacidade de agrupar dados e, com base nesses grupos, destacar os principais componentes do grupo. Em seguida, reescrevemos nossa solução no formato:



Aqui \ beta_k - subvetor vector \ beta correspondente ao grupo k, d_k = (d_ {k1}, ..., d_ {kmk}) - valores singulares X_k dispostos em ordem decrescente, e D_ {d_ {k1} ^ 2-d_ {kj} ^ 2} - matriz diagonal d_ {k1} ^ 2-d_ {kj} ^ 2, j = 1,2, ..., m_k


Algumas notas sobre a solução do destino funcional:


  1. A função objetivo é convexa e o componente não suave é separável. Portanto, ele pode ser efetivamente otimizado usando a descida do gradiente.
    A abordagem é comprometer vários valores \ theta (incluindo zero, respectivamente, obtendo o padrão l_1 -regularization) e, em seguida, otimize: pegando \ lambda . Assim, os parâmetros \ theta e \ lambda são selecionados para validação cruzada.


  2. Parâmetro \ theta difícil de interpretar. No software (pacote pcLasso), o próprio usuário define o valor desse parâmetro, que pertence ao intervalo [0,1], em que 1 corresponde a \ theta = 0 (laço).



Na prática, variar os valores \ theta = 0,25, 0,5, 0,75, 0,9, 0,95 e 1, você pode cobrir uma ampla variedade de modelos.


O algoritmo em si é o seguinte


Este algoritmo já está escrito em R, se desejar, você já pode usá-lo. A biblioteca é chamada 'pcLasso'.


Um canivete infinitesimal do exército suíço


Ryan Giordano (UC Berkeley); William Stephenson (MIT); Runjing Liu (UC Berkeley);
Michael Jordan (UC Berkeley); Tamara Broderick (MIT)


Artigo
Código


A qualidade dos algoritmos de aprendizado de máquina é frequentemente medida por validação cruzada múltipla (validação cruzada ou autoinicialização). Esses métodos são poderosos, mas lentos em grandes conjuntos de dados.


Neste trabalho, os colegas usam aproximação linear de pesos, produzindo resultados que funcionam mais rapidamente. Essa aproximação linear é conhecida na literatura estatística como "canivete infinitesimal". É utilizado principalmente como ferramenta teórica para comprovação de resultados assintóticos. Os resultados do artigo são aplicáveis ​​independentemente de os pesos e os dados serem estocásticos ou determinísticos. Como conseqüência, essa aproximação estima sequencialmente a verdadeira validação cruzada para qualquer k fixo.


Apresentação do Paper Award ao autor do artigo


A essência do método


Considere o problema de estimar um parâmetro desconhecido \ theta \ in \ Omega _ {\ theta} \ subconjunto R ^ {D} onde \ Omega _ {\ theta} É compacto e o tamanho do nosso conjunto de dados é N . Nossa análise será realizada em um conjunto de dados fixo. Definir nossa classificação \ theta \ in \ Omega _ {\ theta} da seguinte maneira:


  1. Para cada n = 1,2 ..., N definir g_n ( \ theta ) É uma função de \ Omega _ {\ theta} \ subconjunto R ^ {D}
  2. \ omega_n É um número real e \ omega É um vetor que consiste em \ omega_n

Então \ hat {\ theta} pode ser representado como:



Resolvendo esse problema de otimização pelo método do gradiente, assumimos que as funções são diferenciáveis ​​e podemos calcular o Hessian. O principal problema que resolvemos é o custo computacional associado à avaliação \ hat {\ theta} ̂ (\ omega) para todos \ omega∈W . A principal contribuição dos autores é calcular \ hat {\ theta} _1 = \ hat {\ theta} _1 (1 _ {\ omega}) onde 1_ \ omega = (1,1, ..., 1) . Em outras palavras, nossa otimização dependerá apenas de derivativos g_n (\ teta) que assumimos que existem e são hessianos:



Em seguida, definimos uma equação com um ponto fixo e sua derivada:


Aqui vale a pena prestar atenção que G (\ theta ̂ (\ ômega), w) = 0 desde \ hat {\ theta} (\ ômega) - solução para \ frac {1} {N} \ sum_ {n = 1} ^ {N} \ omega_n g_n (\ theta) = 0 . Também definimos: H_1 = H (\ hat {\ theta} _1,1_ \ omega) e a matriz de pesos como: \ Delta \ omega = \ omega-1_ \ omega \ em R ^ {n} . No caso em que H_1 tem uma matriz inversa, podemos usar o teorema da função implícita e a 'regra da cadeia':



Essa derivada nos permite formar uma aproximação linear \ hat {\ theta} ̂ (\ omega) através de \ hat {\ theta} _1 que se parece com isso:



Desde \ hat {\ theta} _ {IJ} depende apenas de \ hat {\ theta} _1 e \ Delta \ omega , e não de soluções para outros valores \ omega , portanto, não há necessidade de recalcular e encontrar novos valores de ω. Em vez disso, é preciso resolver o LES (sistema de equações lineares).


Resultados


Na prática, isso reduz significativamente o tempo em comparação com a validação cruzada:

Source: https://habr.com/ru/post/pt458388/


All Articles