Primeira experiência na competição de Kaggle

Um write-up da minha primeira experiência de competição kaggle

Sanyam Bhutani Segue 17 de jul · 5 min ler Foto de Victoire Joncheray em Unsplash

Durante a minha viagem inicial de Planejamento em Minha Aprendizagem por Máquina Auto-ensinada este ano, eu havia me comprometido a chegar ao Top 25% para quaisquer competições de Kaggle (ao vivo).

Este é um resumo de como a equipe “rm-rf /” alcançou o Top 30% em nossa primeira competição de kaggle: O “Quick, Draw! Doodle Recognition Challenge ”da Google AI Team, hospedado no kaggle.

Menção Especial: A equipe "rm-rf /" era uma equipe de dois membros composta por meu parceiro de negócios e amigo Rishi Bhalodia e eu.

Experiência

Imagine isto: uma corrida que dura três meses. Não há linha de chegada, há altas pontuações. Você é um corredor experiente na sua escola.

A pegada?

Você é contra as pessoas acelerando em SuperCars (GrandMasters com muita experiência) enquanto eu estava correndo descalço. Claro, eu era muito bom contra meus amigos, mas contra um carro?

De certa forma, era como um jogo PUBG onde nós simplesmente caímos no meio da luta e pegamos qualquer arma que pudéssemos, tentamos chegar à “zona segura”.

A zona segura para nós era a área de medalha.

Então, por que todo mundo é tão viciado em Kaggle?

Pessoalmente, eu aprendi muito mais no 1 mês de competição do que qualquer MOOC de 1 mês que eu já usei.

Os “especialistas” no kaggle são sempre generosos com suas idéias. Ficamos surpresos com o fato de que muitas pessoas quase dariam suas soluções completas – estando nas posições Top LB!

Todas as noites nós faríamos uma boa apresentação, no dia seguinte você acordaria e você teria caído em 20 posições no LB! Hit Reset e trabalhar novamente para um melhor envio e, em seguida, repita todos os dias.

Finalmente, chegamos a 385/1316 em Private LB: Nossas idéias sobre o dado computador permitiram chegar exatamente a esse rank.
Foi definitivamente uma experiência incrível, eu definitivamente competir mais e tentar um melhor desempenho.

Em muitas ocasiões, quando conseguíamos chegar ao Top 100, depois de dormir tranquilamente, acordávamos com um kernel público que nos derrubaria completamente em 50 posições!

As pessoas que competem em competições são verdadeiramente apaixonadas, há sempre um estouro de ideias, sempre um excesso de talentos.
Para nós, foi apenas dar o melhor de nós e viver por algumas semanas com o mínimo de sono e quebrar e construir ambientes conda enquanto tentamos converter as idéias compartilhadas nas discussões em código.

No final, eu realmente aprendi porque Kaggle é o Lar da Ciência de Dados.

Objetivo

Sempre foi uma meta dos meus sonhos ter um bom desempenho nas competições de kaggle. Para começar, eu tinha mantido a barra em 2 submissões de 25%.

Desafio do Doodle:

Embora a competição tenha um grande número de arquivos e alguns desafios interessantes, buscamos o melhor para uma medalha.

Concorrência

Objetivo: O objetivo é identificar o (s) doodle (s) de um conjunto de dados de arquivos CSV contendo as informações para "desenhar" ou criá-los.

O desafio é: O número de arquivos no desafio foi de ~ 50 milhões!

Pessoalmente, eu já tinha feito um grande número de MOOC (s) e eu estava confiante, dado que quantas vezes eu tinha ido sobre a definição de uma CNN, seria muito fácil conseguir uma medalha de bronze. Claro, eu estava muito errado.

Coisas que não funcionaram

Somos muito gratos ao Mestre Kaggle Radek Osmulski por compartilhar seu pacote inicial Fast.ai – construímos em cima dele junto com alguns truques do Grande Mestre Beluga.

Erro 1: Como iniciante, é sempre sugestivo começar uma competição de kaggle quando a competição é nova.

Por quê?

O número de ideias que transbordam em uma competição é enorme! Mesmo os melhores marcadores do LB são muito generosos em compartilhar sua abordagem – é só uma questão de saber se poderíamos descobrir as pepitas que faltavam na informação e sermos capazes de converter suas ideias em código.

Nós começamos a competição quase no meio do caminho desde o seu lançamento.

Erro 2: Aprendemos sobre “experimentar”, validação.

O pacote inicial trabalha com 1% dos dados, tentei experimentar 5% dos dados, seguido por 10% dos dados e isso mostrou um aumento consistente no desempenho.

Em seguida: decidi jogar todos os dados no modelo, o treinamento durou ~ 50 horas na minha GPU de 8 GB. Esperávamos uma pontuação máxima com essa abordagem e, em vez disso, a precisão do modelo caiu no chão!

Lição aprendida: os experimentos são muito importantes e, portanto, a validação. O pacote inicial depende de “desenhar” as imagens na memória e depois treinar o modelo nelas. O problema com o Linux é que ele mantém um limite no número de arquivos, a menos que esteja formatado especificamente contra isso.

Não fizemos uma verificação de validação e treinamos contra uma parte dos dados. Um conjunto de validação reflexiva é certamente algo que você deve instalar ao iniciar.

Idéias que funcionaram

Treinamento progressivo e redimensionamento:

  • Treinando o Modelo em 1% dos dados com 256 tamanho de imagem.
  • Ajuste fino do modelo para 5% dos dados com 128 tamanho de imagem.
  • Além disso, o ajuste fino do modelo para 20% dos dados com 64 tamanho de imagem.
  • ResNet18 <ResNet34 <ResNet50 <ResNet 152 quando treinado na mesma parte do conjunto de dados.

Essa abordagem mostrou um aumento consistente no desempenho.

Conjunto: Nosso melhor envio foi um “Blend” de um ResNet 152 treinado com fastai (v1) em 20% do dataset e o MobileNet Kernel da Kaggle GM Beluga.

Resumo

Você encontrará muitas discussões melhores nas discussões da competição, então, por favor, desculpe esta postagem se essas ideias não lhe derem uma nota no Top LB.

Este foi realmente um resumo pessoal das coisas que aprendi competindo.

Finalmente, eu prometi competir muito mais, esperançosamente, você encontrará o time “rm-rf /” em algum lugar no LB nas recentes competições.

Eu fui mordido pelo "Kaggle Bug" e eu provavelmente preferiria competir no futuro por me inscrever para mais MOOC (s)

Vejo você no LB, Happy Kaggling!

Primeira experiência na competição de Kaggle

Um write-up da minha primeira experiência de competição kaggle

Sanyam Bhutani Blocked Unblock Seguir Seguindo 25 de dezembro Foto de Victoire Joncheray no Unsplash

Durante a minha viagem inicial de Planejamento em Minha Aprendizagem por Máquina Auto-ensinada este ano, eu havia me comprometido a chegar ao Top 25% para quaisquer competições de Kaggle (ao vivo).

Este é um resumo de como a equipe "rm-rf /" alcançou o Top 30% em nossa primeira competição de kaggle: O "Quick, Draw! Desafio de Reconhecimento do Doodle ”da Equipe do Google AI, hospedado no kaggle.

Menção Especial: A equipe "rm-rf /" era uma equipe de dois membros composta por meu parceiro de negócios e amigo Rishi Bhalodia e eu.

Experiência

Imagine isto: Uma corrida que dura três meses. Não há linha de chegada, há altas pontuações. Você é um corredor experiente em sua escola.

A pegada?

Você é contra as pessoas correndo em SuperCars (GrandMasters com muita experiência) enquanto eu estava correndo descalço. Claro, eu era muito bom contra meus amigos, mas contra um carro?

De certa forma, era como um jogo PUBG onde nós simplesmente caímos no meio da luta e pegamos qualquer arma que pudéssemos, tentamos chegar à “zona segura”.

A Zona Segura para nós era a área de medalhas.

Então, por que todo mundo é tão viciado em Kaggle?

Pessoalmente, eu aprendi muito mais no 1 mês de competição do que qualquer MOOC de 1 mês que eu já aceitei.

Os “especialistas” no kaggle são sempre generosos com suas idéias. Ficamos surpresos com o fato de que muitas pessoas quase dariam suas soluções completas – estando nas posições Top LB!

Toda noite faríamos uma boa apresentação, no dia seguinte você acordaria e você teria caído em 20 posições na LB! Hit Reset e trabalhar novamente para um melhor envio e, em seguida, repita todos os dias.

Finalmente, chegamos a 385/1316 em Private LB: Nossas idéias sobre o dado computador permitiram chegar exatamente a este rank.
Foi definitivamente uma experiência incrível, eu definitivamente competir mais e tentar um melhor desempenho.

Em muitas ocasiões, quando conseguimos chegar ao Top 100, depois de dormir profundamente, acordávamos com um kernel público que nos derrubaria por 50 posições!

As pessoas que competem em competições são verdadeiramente apaixonadas, há sempre um excesso de ideias, sempre um excesso de talentos.
Para nós, estava apenas dando o melhor de nós e vivendo por algumas semanas com o mínimo de sono e quebrando e construindo ambientes de conda ao tentar converter as idéias compartilhadas nas discussões em código.

No final, eu realmente aprendi porque Kaggle é o Lar da Ciência de Dados.

Objetivo

Sempre foi um sonho dos meus sonhos ter um bom desempenho nas competições de kaggle. Para começar, eu tinha mantido a barra em 2 submissões de 25%.

Desafio do Doodle:

Embora a competição tenha um grande número de arquivos e alguns desafios interessantes, buscamos o melhor para uma medalha.

Concorrência

Objetivo: O objetivo é identificar o (s) doodle (s) de um conjunto de dados de arquivos CSV contendo as informações para "desenhar" ou criá-los.

O desafio é: O número de arquivos no desafio foi de ~ 50 milhões!

Pessoalmente, eu já tinha feito um grande número de MOOC (s) e eu estava confiante, dado que quantas vezes eu tinha ido sobre a definição de uma CNN, seria muito fácil conseguir uma medalha de bronze. Claro, eu estava muito errado.

Coisas que não funcionaram

Somos muito gratos ao Mestre Kaggle Radek Osmulski por compartilhar seu pacote inicial Fast.ai – construímos em cima dele junto com alguns truques do Grande Mestre Beluga.

Erro 1: Como iniciante, é sempre sugestivo começar uma competição de kaggle quando a competição é nova.

Por quê?

O número de ideias que transbordam em uma competição é enorme! Mesmo os melhores marcadores do LB são muito generosos em compartilhar sua abordagem – é só uma questão de saber se poderíamos descobrir as pepitas que faltavam na informação e sermos capazes de converter suas ideias em código.

Nós começamos a competição quase no meio do caminho desde o seu lançamento.

Erro 2: Aprendemos sobre “experimentar”, validação.

O pacote inicial trabalha com 1% dos dados, tentei experimentar 5% dos dados, seguido por 10% dos dados e isso mostrou um aumento consistente no desempenho.

Em seguida: eu decidi jogar todos os dados no modelo, o treinamento durou ~ 50 horas na minha GPU de 8 GB. Esperávamos uma pontuação máxima com essa abordagem e, em vez disso, a precisão do modelo caiu no chão!

Lição aprendida: os experimentos são muito importantes e, portanto, a validação. O pacote inicial depende de “desenhar” as imagens na memória e depois treinar o modelo nelas. O problema com o Linux é, ele mantém um limite no número de arquivos, a menos que especificamente formatado contra isso.

Não fizemos uma verificação de validação e treinamos contra uma parte dos dados. Um conjunto de validação reflexiva é certamente algo que você deve instalar ao iniciar.

Idéias que funcionaram

Treinamento progressivo e redimensionamento:

  • Treinando o Modelo em 1% dos dados com 256 tamanho de imagem.
  • Ajuste fino do modelo para 5% dos dados com 128 tamanho de imagem.
  • Além disso, ajuste o modelo em 20% dos dados com 64 imagens.
  • ResNet18 <ResNet34 <ResNet50 <ResNet 152 quando treinado na mesma parte do conjunto de dados.

Essa abordagem mostrou um aumento consistente no desempenho.

Ensembling: Nosso melhor envio foi um “Blend” de um ResNet 152 treinado com fastai (v1) em 20% do dataset e o MobileNet Kernel da Kaggle GM Beluga.

Resumo

Você encontrará muitas discussões melhores nas discussões sobre a competição, então, por favor, desculpe este post se essas idéias não lhe derem uma nota no Top LB.

Este foi realmente um resumo pessoal das coisas que aprendi competindo.

Finalmente, eu prometi competir muito mais, esperançosamente, você encontrará o time “rm-rf /” em algum lugar no LB nas recentes competições.

Eu fui mordido pelo "Bug Kaggle" e eu provavelmente preferiria competir no futuro por me inscrever para mais MOOC (s)

Vejo você no LB, Happy Kaggling!