D’un enginyer elèctric a un ninja de ciències de dades: el viatge del gran mestre Kaggle Giba

Gilberto Titericz, alias “Giba”, és una força a tenir en compte als cercles de Kaggle amb el major nombre de medalles d’or (59) a tot el món. El jugador àvid té una certa credibilitat de carrer quan es tracta d’eines RAPIDS/GPU.

“Fins i tot ara, només hi ha 249 GM competidors al món. Per aconseguir aquest títol, necessites cinc medalles d’or i una d’or en solitari a les competicions, que són extremadament difícils en aquests dies. Convertir-me en gerent de Kaggle va ser molt bo per a la meva carrera”, va dir Gilberto.

Analytics India Magazine es va posar en contacte amb el científic de dades sènior de NVIDIA per entendre com un enginyer elèctric d’UTFPR Curitiba, Brasil, es va establir com un científic de dades d’èxit i va encapçalar constantment les llistes de competicions de Kaggle.

OBJECTIU: Com va començar la teva fascinació pels algorismes?

Giba: La meva passió per la ciència de dades es remunta a la meva infància quan vaig començar a estudiar electrònica i llenguatges de programació. Als 10 anys ja estava muntant circuits electrònics. Aleshores, als 16 anys, vaig començar a codificar el muntatge per als microcontroladors Zilog Z80 i Intel MCS-51. El punt d’inflexió va ser potser l’any 1997 quan vaig assistir a la meva primera classe de C, la qual cosa em va introduir en el món esquivant dels llenguatges de programació.

Vaig aprendre algorismes per primera vegada en una classe de transmissió de senyals digitals on em van demanar que simulés la pèrdua d’error dels senyals binaris transmesos en un entorn sorollós. Em va inspirar a buscar nous algorismes per resoldre els problemes més diversos.

Avancem ràpidament fins al 2009, poc després de la crisi de les accions subprime, vaig començar a estudiar les xarxes neuronals i vaig codificar alguns blocs MLP rudimentaris per simular les operacions en borsa. En aquell moment, no podia obtenir cap rendiment positiu en les meves operacions simulades. Tanmateix, uns anys més tard, vaig trobar el motiu: la meva estratègia de validació era completament equivocada.

L’any 2011, vaig participar al repte d’IA de Google i vaig competir en la codificació d’IA per a agents en el repte d’aprenentatge de reforç en línia. Durant mesos, vaig aprendre un munt d’algoritmes nous i cadascun d’ells va multiplicar la meva curiositat per aprendre més sobre els algorismes RL i ML. Després d’això, vaig trobar Kaggle mitjançant una cerca web i vaig començar a competir immediatament. I la resta, com diuen, és història.

OBJECTIU: Com vau afrontar els trastorns de la dentició?

Giba: Abans d’entrar a la ciència de dades a temps complet, havia construït sistemàticament una base de programació sòlida durant els meus dies d’enginyeria.

Si sou una persona sense habilitats de programació, us recomanaria que estudieu primer un llenguatge de script centrat en la ciència de dades com R o Python.

Les persones d’altres àrees tenen algunes dificultats per pensar d’una manera estructurada per escriure codi, per la qual cosa és important aprendre a codificar perquè és una eina fonamental per als científics de dades.

Un cop vaig començar a estudiar ciència de dades, em va costar molt entendre per què hi havia tantes àrees diferents i el seu propòsit. Per descomptat, és important estudiar totes les àrees, però us recomano especialitzar-vos en una àrea concreta.

Per a mi, aquesta “àrea” es va aplicar l’aprenentatge automàtic per a dades tabulars. Així que vaig començar a aprendre en línia i vaig utilitzar el coneixement per crear solucions a les competicions de Kaggle. El millor de competir a Kaggle és que aprens molt. Podeu utilitzar ML per resoldre reptes i guanyar competicions. No només us ofereix una experiència de primera mà, sinó que cada competició afegeix un gran valor a la vostra cartera.

OBJECTIU: Què us emociona més de la codificació?

Giba: M’agrada codificar algorismes que siguin eficients en el temps i altament precisos. Això es deu al fet que tenim un temps limitat per codificar algorismes al món real i hi ha un cost associat amb el manteniment i la generació d’inferències per als models ML que s’executen en línia. Així, com més senzill sigui el codi, més fàcil de mantenir i més ràpids siguin els algorismes, més barat serà obtenir nous punts de dades. Però al mateix temps, tenir un model d’alta precisió sol referir-se a millors serveis i sovint augmenta algunes mètriques correlacionades amb els ingressos.

OBJECTIU: Com és la vostra pila d’eines ML?

Giba: Igual que a la resta del món, Python és el meu llenguatge preferit per a projectes de ciència de dades. I el meu IDE preferit és Jupyter lab. Les biblioteques que faig servir sovint són:

  • Pandas, matplotlib i seaborn per EDA. Són genials per veure.
  • Pandas, numpy cuML i cupy per al processament de dades, marcs de dades, operacions de matriu i enginyeria de funcions. Això és tot el que necessitem per processar les dades que caben a la memòria.
  • XGBoost, LightGBM, cuML i Pytorch per a l’aprenentatge automàtic en dades tabulars: algorismes ràpids i precisos.
  • Pytorch per a un aprenentatge profund: extremadament versàtil, ràpid i personalitzable per a tot.

OBJECTIU: Quins consells tens per a aquells que es preparen? els seus primers hackatons?

Giba: Els hackathons són un lloc perfecte per mostrar les teves habilitats de codificació i pensament. En general, cal córrer contra el temps per oferir la millor solució a un problema determinat. Per tant, abans d’unir-vos a un hackathon de ciència de dades, us recomano acostumar-vos a utilitzar les eines relacionades. Difícilment guanyaràs un hackathon sense cap experiència prèvia. Per tant, part de la preparació és practicar algorismes de codificació i utilitzar biblioteques ML; això us pot estalviar un temps preciós durant l’esdeveniment. A més, prepareu-vos per configurar el vostre entorn de ciència de dades al vostre ordinador/portàtil. Però crec que el truc més important ve amb l’experiència. Si sabeu com abordar un problema correctament, podeu estalviar molts passos d’experimentació i, en conseqüència, tenir més temps per executar encara més experiments.

OBJECTIU: quina és la teva ràbia més gran dels hackatons?

Giba: El que odio dels hackatons és que sempre et quedes sense temps abans de fer tots els experiments que penses. Per això primer faig una llista de coses a fer quan començo un hackató. Però, malauradament, la meva llista sempre és llarga, cosa que fa que sigui gairebé impossible córrer durant la durada de l’esdeveniment.

OBJECTIU: Quina és la pitjor experiència que has tingut com a programador?

Giba: Com a programador, odio quan començo a utilitzar una biblioteca, i després apareix una nova versió, que canvia la manera d’utilitzar les funcions i el meu codi antic ja no funciona. Sé que forma part del procés de desenvolupament seguir millorant les biblioteques, però haver de reescriure codi antic pot ser molt molest.

AIM: Què et va atraure a Kaggle? Explica’ns el teu viatge fins ara.

Giba: El que em va atraure de Kaggle va ser la possibilitat d’aprendre aprenentatge automàtic d’una manera divertida a través de competicions. I és molt divertit al principi perquè hi ha un sistema de joc on les persones es classifiquen segons una mètrica, i pot arribar a ser addictiu al cap d’un temps. També és possible fer amics a través de la comunitat.

Em vaig unir a Kaggle fa 10 anys i he participat en 227 competicions. Vaig guanyar 59 medalles d’or i 47 de plata. També vaig fer molts amics i vaig aprendre la major part del que sé sobre l’aprenentatge automàtic allà. Vaig saltar al 1r lloc de la competició l’octubre de 2015 i m’hi vaig quedar uns quants anys. Des de llavors, he canviat el meu paper d’enginyer elèctric a científic de dades, i em sento afortunat de tenir l’oportunitat de treballar com a científic de dades a l’equip de NVIDIA Grandmaster.

OBJECTIU: Com va ser la teva primera competició Kaggle?

Giba: Quan em vaig unir a Kaggle, hi havia algunes competicions de predicció. La majoria estaven relacionades amb sèries temporals i generació d’energia. Em vaig unir a tots dos i l’única eina d’aprenentatge automàtic que coneixia en aquell moment era Matlab. Així que vaig començar a estudiar la caixa d’eines NeuralNetwork i vaig elaborar una estratègia de competició senzilla. Vaig entrenar diversos models neuronals i després vaig fer una mitjana de les prediccions. No ho sabia aleshores, però aquesta tècnica es coneix com a embolcall, i ajuda a disminuir la variància de les prediccions (molt útil per a NNets). Em va ajudar a acabar entre els 3 primers i els 11 primers en ambdues competicions, rebent el títol de Kaggle Master (més tard GM) al principi. Tot això ho vaig poder fer amb un portàtil I5, 2 ​​nuclis/4 fils/8 GB de RAM.

OBJECTIU: Com s’aconsegueix a les competicions de Kaggle? Podries compartir alguns consells i trucs?

Giba: Tinc tres consells per als aspirants a la ciència de dades/Kaggle:

1. Determinació: No hi ha dinar gratuït. Vaig passar molts anys aprenent i competint abans d’arribar al cim. Vaig perdre moltes medalles a les competicions, vaig patir canvis quan vaig canviar a LB privat i, de vegades, sento que mai aprendré aquestes tècniques. El que em va funcionar va ser que no em vaig rendir mai; fins i tot quan va néixer la meva filla, vaig haver de passar la major part del temps cuidant-la en lloc d’aprendre i millorar les meves habilitats a Kaggle. Però vaig fer-hi temps i ho vaig aconseguir.

2. Validació: Molta gent no defineix l’estratègia de validació adequada. Definir aquesta estratègia no és tan senzill com definir la validació creuada o els plecs de retenció. La idea és definir-lo perquè s’assembli a la distribució i construcció de variables del conjunt de proves públics i privats. Per tant, sovint és necessari estudiar els seus conjunts de dades. A més, feu experiments per provar-los a la taula de classificació i assegureu-vos que heu utilitzat l’estratègia de validació local correcta. Un error típic, per exemple, és utilitzar la validació creuada aleatòria (KFold) quan tenim una variable user_id al conjunt de dades i el mateix user_id apareix en diverses files. D’aquesta manera, podem tenir el mateix user_id en diversos plecs filtrant part de la informació de la veritat del sòl i sobreadaptant-se al conjunt de trens, donant lloc a una mala generalització al conjunt de proves.

3. Pensa fora de la caixa: Els Kagglers solen venir amb noves solucions/SOTA per guanyar competicions. La majoria dels Kagglers novells solen copiar quaderns populars, canviar alguna cosa i enviar-se per acostumar-se a la plataforma i codificar alguna cosa. Però si tothom està copiant les solucions d’altres persones, aleshores tothom acabarà la competició aproximadament al mateix lloc. El que diferencia als millors Kagglers és la capacitat de pensar fora de la caixa i explorar alguna cosa diferent i millor que tothom. Per tant, fer tants experiments com sigui possible i utilitzar diferents enfocaments us pot ajudar a saltar molts llocs a la classificació de Kaggle.

Leave a Comment

Your email address will not be published. Required fields are marked *