Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2364 connectés 

 


Utilisez-vous du machine learning dans votre job ?




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  36  37  38  ..  133  134  135  136  137  138
Auteur Sujet :

[Topic Unique] Machine Learning & Data Science

n°31425
Profil sup​primé
Posté le 23-05-2018 à 11:49:55  answer
 

Reprise du message précédent :
Bon, du coup grâce à vos conseils je me suis penché sur les Convolutional Auto-Encoders et j'ai 2 questions :  
 
La couche "convolutionnelle" se présente comme ceci :

Code :
  1. Conv2D(32, (3, 3), activation='relu', padding='same')


 
Pour la fonction d'activation, si j'en crois le lien que j'ai posté plus haut, relu est la meilleure donc je vais la garder. Maintenant j'ai une question sur les 2 autres paramètres, d'après ce que j'ai compris le (3,3) représente la taille du kernel, en gros la taille de la matrice que l'on va faire glisser sur notre image pour en extraire les "patterns", le 32 représente "l'épaisseur" de notre espace (On passe de 28*28*1 à 28*28*32...puis on utilise une couche pour "downsampler" -> 14*14*32 etc jusqu'à obtenir une représentation suffisamment "petite et épaisse" )
 
J'ai un peu de mal à comprendre le pourquoi de ces chiffres, par exemple mes images sont des 50*37(*1, c'est en gris), il y a une règle pour choisir la taille du kernel ou celle des filtres ? Ou bien c'est un peu boite noire, je test plusieurs trucs jusqu'à ce que ça marche ( :o ) ... Bref si vous avez des conseils je suis preneur :jap:
 
 
Pour ma deuxième question, l'idée c'est de passer de 60 000 images à 784 dimensions (par ex), ce qui implique de longs temps de calculs pour un algo de classification classique à 60 000 images à 150 dimensions (que j'ai obtenu via PCA par ex), ce qui allège considérablement le temps de calcul tout en gardant une précision/f&-score tout à fait raisonnable.
 
Est-il possible de faire la même chose avec l'autoencoder convolutionnel ? Càd récupérer la représentation de mes données compressées (7*7*128 par exemple) et l'utiliser à des fins de classification.  
 
Je sais que pour un autoencoder avec des couches "Dense" c'est possible, j'ai fait 784-512-120-512-784 et j'ai utilisé la représentation en 120 dimensions pour classifier mes images, ce qui a plutôt bien marché. Maintenant j'ai un doute de la faisabilité du truc avec le réseau convolutionnel vu que la représentation est "petite et épaisse"...
 
 
Merci  :jap:
 
 
EDIT : Je sais que le post est un peu confus, c'est juste que c'est pas encore limpide pour moi [:inick:3]


Message édité par Profil supprimé le 23-05-2018 à 12:01:40
n°31426
Rontgen
Posté le 23-05-2018 à 12:03:00  profilanswer
 


La taille des kernels, c'est pas très important, notamment parce que deux filtres 3x3 enchainés sont équivalents à un filtre 5x5.
Tu as qu'à essayer 5x5 pour commencer, ca suffit pour capter les features de bases (des bords dans plusieurs directions par exemple).
Pour le nombre de channels, difficile à répondre de manière générale. Je dirais que dans ton cas, pour le premier niveau, quelque chose comme 16 devrait suffire. Pour les autres niveaux, ben ca dépend comment tu veux compresser l'info.
 
 
Oui c'est tout a fait possible, tu peux meme apprendre à faire les deux en meme temps !
Par exemple tu peux construire une architecture d'auto encoder qui essaye de reconstruire l'image d'entrée, mais tu peux aussi ajouter un autre layer qui prend en entrée ta petite représentation, et qui essaye de classifier l'image d'entrée.
 

n°31427
Darmstadti​um
Pipoteur grotesque
Posté le 23-05-2018 à 12:34:35  profilanswer
 


Oui, mais pourquoi ne pas directement entraîner un cnn pour la classification dans ce cas ?

 

Tu proposes de train un AE, ne garder que la partie encodeur, et entraîner un classifier sur les représentations dans l'espace latent. C'est peu ou prou ce que fait un cnn, la fully connected layer à la fin est un classifier linéaire entraîné sur les représentations extraites par les couches convolutionnelles (comme un kernel) . La diff c'est que par backpropagation le classifier et les représentations sont optimisées ensemble pour maximiser la performance finale.


---------------
Vous pourriez comprendre ainsi pourquoi l'isotropie peut être détournée de son enclave de finalité dès le postulat de base choisie. surunitairedream - 09/06/2013 -- Contrepets
n°31428
ardevr1
Posté le 23-05-2018 à 12:44:35  profilanswer
 

Bonjour à tous,
 
Je suis actuellement en M1 de maths et je vais faire le MVA l'année prochaine puis m'orienter vers une thèse potentiellement une thèse CIFRE. Est-ce que certains d'entre vous ont effectué ce type de thèse ou ont eu l'occasion de travailler avec des personnes en thèse CIFRE ?

n°31429
Rontgen
Posté le 23-05-2018 à 12:56:27  profilanswer
 

J'ai fait MVA + CIFRE :o  
Quelles sont tes questions ?

n°31430
Profil sup​primé
Posté le 23-05-2018 à 13:08:56  answer
 

Rontgen a écrit :


La taille des kernels, c'est pas très important, notamment parce que deux filtres 3x3 enchainés sont équivalents à un filtre 5x5.
Tu as qu'à essayer 5x5 pour commencer, ca suffit pour capter les features de bases (des bords dans plusieurs directions par exemple).
Pour le nombre de channels, difficile à répondre de manière générale. Je dirais que dans ton cas, pour le premier niveau, quelque chose comme 16 devrait suffire. Pour les autres niveaux, ben ca dépend comment tu veux compresser l'info.
 
 
Oui c'est tout a fait possible, tu peux meme apprendre à faire les deux en meme temps !
Par exemple tu peux construire une architecture d'auto encoder qui essaye de reconstruire l'image d'entrée, mais tu peux aussi ajouter un autre layer qui prend en entrée ta petite représentation, et qui essaye de classifier l'image d'entrée.
 


 
Excellent, merci beaucoup. Je vais tester tout ça :jap:
 
 

Darmstadtium a écrit :


Oui, mais pourquoi ne pas directement entraîner un cnn pour la classification dans ce cas ?
 
Tu proposes de train un AE, ne garder que la partie encodeur, et entraîner un classifier sur les représentations dans l'espace latent. C'est peu ou prou ce que fait un cnn, la fully connected layer à la fin est un classifier linéaire entraîné sur les représentations extraites par les couches convolutionnelles (comme un kernel) . La diff c'est que par backpropagation le classifier et les représentations sont optimisées ensemble pour maximiser la performance finale.


 
Car j'étudie l'autoencoder en tant que technique non linéaire de réduction de dimension et je dois la comparer avec d'autre, pour que la comparaison ait un sens il faut donc que j'utilise le même classifier... seules les inputs changent (le data set réduit via PCA, via ISOMAP etc.)

n°31431
ardevr1
Posté le 23-05-2018 à 13:13:41  profilanswer
 

Merci de ta réponse. Tu as travaillé sur quels sujets ? Est-ce que tu es resté dans l'industrie après et si oui est-ce tu as continué à faire de la recherche ou tu as évoluer sur des postions plus ingénieur ? Comment est-ce tu as trouvé ton contrat avec l'entreprise ? Si tu as deja fait de la recherche dans un laboratoire 'une université quelle la différence qui t'as le plus frappé entre l'industrie et l'université ?  

n°31432
Millsap
Posté le 23-05-2018 à 14:23:07  profilanswer
 

Je redrap  [:ill nino]

n°31433
Darmstadti​um
Pipoteur grotesque
Posté le 23-05-2018 à 14:32:18  profilanswer
 


OK dans ce cas tu fais bien :jap:


---------------
Vous pourriez comprendre ainsi pourquoi l'isotropie peut être détournée de son enclave de finalité dès le postulat de base choisie. surunitairedream - 09/06/2013 -- Contrepets
n°31434
Profil sup​primé
Posté le 23-05-2018 à 15:17:42  answer
 

Darmstadtium a écrit :


OK dans ce cas tu fais bien :jap:


 
hehe bon c'est pas facile, j'obtiens systématiquement des images noires avec le convolutional autoencoder que j'ai implémenté : https://image.noelshack.com/fichier [...] eeeeet.png
 
J'ignore encore d'où ça vient : peut être que j'ai le "dying Relu" (https://datascience.stackexchange.com/questions/5706/what-is-the-dying-relu-problem-in-neural-networks), jvais essayer avec leaky relu à la place  
 
Sur l'exemple : https://www.datacamp.com/community/ [...] s-tutorial ils le font tourner pendant 50 epochs et 48 000 images, si je fais ça j'en ai clairement pour la nuit  :lol:  
 
J'essaie avec 20 epochs mais peut être mon réseau a besoin de beaucoup plus ? Ce qui est étrange c'est que la loss et la validation loss restent identiques après 1 ou 2 epochs  :??:

n°31435
Rontgen
Posté le 23-05-2018 à 15:27:33  profilanswer
 

Ca vient peut-être de ton dernier layer, vire l'activation (la sigmoide) pour voir ce que ca donne  
Une autre question c'est aussi de voir comment tes kernels sont initialisés

n°31436
Rontgen
Posté le 23-05-2018 à 15:35:06  profilanswer
 

ardevr1 a écrit :

Merci de ta réponse. Tu as travaillé sur quels sujets ? Est-ce que tu es resté dans l'industrie après et si oui est-ce tu as continué à faire de la recherche ou tu as évoluer sur des postions plus ingénieur ? Comment est-ce tu as trouvé ton contrat avec l'entreprise ? Si tu as deja fait de la recherche dans un laboratoire 'une université quelle la différence qui t'as le plus frappé entre l'industrie et l'université ?  


Alors quelques réponses en vrac:
- Je travaille dans l'analyse d'images
- Je suis resté dans l'industrie, c'est ce que j'ai toujours voulu faire (c'est d'ailleurs pour ca que j'ai fait une CIFRE). Je considère que cette expérience m'a été vraiment bénéfique pour ma carrière
Je travaille dans une toute petite boite donc j'ai plusieurs casquettes: je continue à publier des papiers scientifiques mais je suis aussi développeur, chef de projet, etc.
- J'ai trouvé la thèse via un des profs du MVA qui déjà supervisé des CIFREs et qui m'a mis en contact avec une des entreprises
- Difficile de répondre sur la différence avec l'université, car cela dépend de beaucoup de choses
Je pense que le facteur le plus important c'est de voir ou tu es basé, par exemple moi j'étais 95% du temps en entreprise donc j'étais plutot coté applications que théorie
Un autre facteur important est de voir si l'équipe entreprise fait aussi de la recherche ou si tu seras isolé, etc.

n°31437
Profil sup​primé
Posté le 23-05-2018 à 15:50:18  answer
 

J'essaie d'abord de le faire fonctionner sur le MNIST et sur la doc Keras ils utilisent une sigmoid en sortie : https://blog.keras.io/building-auto [...] keras.html
 
Pour l'initialisation des kernels, j'y ai pas touché... je regarde ça  :jap:
 
Typiquement : https://image.noelshack.com/fichier [...] 12-wat.png


Message édité par Profil supprimé le 23-05-2018 à 16:10:33
n°31438
Rontgen
Posté le 23-05-2018 à 16:13:15  profilanswer
 


Dans ce cas là, il faut absolument que les intensités de tes images en entrée soient entre 0 et 1
Mais essaye quand meme d'autres activations genre ReLU ou leakyReLU, histoire d'avoir des gradients

n°31439
Profil sup​primé
Posté le 23-05-2018 à 16:15:00  answer
 

Edit : ça marche !!! https://image.noelshack.com/fichier [...] elujah.png  :sol:  
 
C'était bien la dernière couche sigmoïde qui merdait, en remplaçant par relu ça marche nickel... Une idée de pourquoi ça marche ? Sachant que la doc Keras utilise en dernière couche une sigmoïde (relu pour les autre https://blog.keras.io/building-auto [...] keras.html ), idem pour le "tuto" Datacamp : https://www.datacamp.com/community/ [...] s-tutorial  :??:  :??:  :??:


Message édité par Profil supprimé le 23-05-2018 à 16:31:24
n°31440
Herazor
Posté le 23-05-2018 à 16:30:50  profilanswer
 

ardevr1 a écrit :

Bonjour à tous,
 
Je suis actuellement en M1 de maths et je vais faire le MVA l'année prochaine puis m'orienter vers une thèse potentiellement une thèse CIFRE. Est-ce que certains d'entre vous ont effectué ce type de thèse ou ont eu l'occasion de travailler avec des personnes en thèse CIFRE ?


 :hello:  
Les réponses pour le MVA sont déjà tombées ?

n°31441
Rontgen
Posté le 23-05-2018 à 16:35:45  profilanswer
 


Très bien, tu pourras facturer mes honoraires à ta boite  [:reddie]  
 
En fait, la sigmoide a un gradient quasiment nul avec des valeurs faibles ou élevées; donc si tu es pas dans la bonne zone avec ton initialisation, c'est difficile d'en bouger
Alors certes, la ReLU elle a carrément un gradient nul pour les valeurs négatives, mais au moins son gradient est toujours 1 pour les valeurs positives donc c'est plus facile d'obtenir des gradients (il suffit d'être positif)

n°31442
Profil sup​primé
Posté le 23-05-2018 à 16:39:29  answer
 

Rontgen a écrit :


Très bien, tu pourras facturer mes honoraires à ta boite  [:reddie]  
 
En fait, la sigmoide a un gradient quasiment nul avec des valeurs faibles ou élevées; donc si tu es pas dans la bonne zone avec ton initialisation, c'est difficile d'en bouger
Alors certes, la ReLU elle a carrément un gradient nul pour les valeurs négatives, mais au moins son gradient est toujours 1 pour les valeurs positives donc c'est plus facile d'obtenir des gradients (il suffit d'être positif)


 
Bien tenté [:keeplooking:5]  
 
Du coup, l'initialisation tu fais ça comment ? En testant plusieurs configs ou il y a des heuristiques/règles ? Jvais rester sur relu du coup, je m'attaque au data set des visages, ça s'annonce déjà plus compliqué :o

n°31443
Herazor
Posté le 23-05-2018 à 17:21:43  profilanswer
 

Fido_ a écrit :

 

C'est juillet normalement  :??:

 

C'est bien ce qui me semblait mais comme il écrit sans utiliser le conditionnel je voulais en être certain :p


Message édité par Herazor le 23-05-2018 à 17:22:04
n°31444
Voxinat
High Frequency Trolling
Posté le 23-05-2018 à 17:24:00  profilanswer
 

Herazor a écrit :


 
C'est bien ce qui me semblait mais comme il écrit sans utiliser le conditionnel je voulais en être certain :p


 
Pourquoi écrire au conditionnel quand on est sûr d'être admis?
 

Spoiler :


:o


---------------
Sah Quel Plaisir
n°31445
ardevr1
Posté le 23-05-2018 à 17:31:45  profilanswer
 

Rontgen a écrit :


Alors quelques réponses en vrac:
- Je travaille dans l'analyse d'images
- Je suis resté dans l'industrie, c'est ce que j'ai toujours voulu faire (c'est d'ailleurs pour ca que j'ai fait une CIFRE). Je considère que cette expérience m'a été vraiment bénéfique pour ma carrière
Je travaille dans une toute petite boite donc j'ai plusieurs casquettes: je continue à publier des papiers scientifiques mais je suis aussi développeur, chef de projet, etc.
- J'ai trouvé la thèse via un des profs du MVA qui déjà supervisé des CIFREs et qui m'a mis en contact avec une des entreprises
- Difficile de répondre sur la différence avec l'université, car cela dépend de beaucoup de choses
Je pense que le facteur le plus important c'est de voir ou tu es basé, par exemple moi j'étais 95% du temps en entreprise donc j'étais plutot coté applications que théorie
Un autre facteur important est de voir si l'équipe entreprise fait aussi de la recherche ou si tu seras isolé, etc.


 
Merci. C'est ce que je voulais savoir.  
 
 
C'est vrai que je m'avance peut-être un peu mais quasiment tout les élèves du département de maths qui candidate sont acceptés.  

n°31446
draculax
Posté le 23-05-2018 à 18:03:29  profilanswer
 

T'es à Orsay en maths fonda ?

 

voire même normalien, si c'est le cas ça m'étonne pas que vous soyez au courant rapidement :o


Message édité par draculax le 23-05-2018 à 18:04:06
n°31447
Voxinat
High Frequency Trolling
Posté le 23-05-2018 à 18:03:59  profilanswer
 

draculax a écrit :

T'es à Orsay en maths fonda ?


norajo avec ta sous école tu l'auras pas :o
 
 [:elfe_errant:2] > Centrale confirmed


Message édité par Voxinat le 23-05-2018 à 18:04:17

---------------
Sah Quel Plaisir
n°31448
draculax
Posté le 23-05-2018 à 18:05:19  profilanswer
 

J'ai pas candidaté, mais j'aurai ma place sans soucis dans 2 ans :o

n°31449
Dr_Zaius
Simius Mathematicus
Posté le 23-05-2018 à 18:06:31  profilanswer
 

draculax a écrit :

T'es à Orsay en maths fonda ?
 
voire même normalien, si c'est le cas ça m'étonne pas que vous soyez au courant rapidement :o


 
Je pense normalien :o
 
Je l'ai déjà dit ici mais valider à Paris 6 avec 17 de moyenne et en majorant les stats, ça t'envoie sur la liste d'attente au MVA :o
 
Donc même à Orsay, prendre tous les candidats me paraît surprenant.


---------------
« Nous sommes tous des farceurs : nous survivons à nos problèmes.» Cioran
n°31450
ardevr1
Posté le 23-05-2018 à 18:08:36  profilanswer
 

draculax a écrit :

T'es à Orsay en maths fonda ?
 
voire même normalien, si c'est le cas ça m'étonne pas que vous soyez au courant rapidement :o


 
Ouais je suis en M1 a Cachan. On a pas encore les resultats mais tout les ans ca se passe comme ca.

n°31451
draculax
Posté le 23-05-2018 à 18:36:54  profilanswer
 

Dr_Zaius a écrit :

 

Je pense normalien :o

 

Je l'ai déjà dit ici mais valider à Paris 6 avec 17 de moyenne et en majorant les stats, ça t'envoie sur la liste d'attente au MVA :o

 

Donc même à Orsay, prendre tous les candidats me paraît surprenant.

 

Les écoles favorisent leur étudiants / ceux des écoles partenaires :o

 

Pour une fois que P6 n'a plus le master le plus populaire c'est dommage :o

 

Les ulmites ne prendront pas toutes les places aux cachanais :o


Message édité par draculax le 23-05-2018 à 18:37:51
n°31452
Profil sup​primé
Posté le 23-05-2018 à 19:59:46  answer
 

Au tout cas niveau data on est vraiment bien lottis en France : MVA, m2 X, les dea maths fi qui se mettent à la data science (EK, Laure elie...) etc. C'est cool :jap:

n°31453
Dr_Zaius
Simius Mathematicus
Posté le 23-05-2018 à 22:14:08  profilanswer
 

draculax a écrit :


 
Les écoles favorisent leur étudiants / ceux des écoles partenaires :o
 
Pour une fois que P6 n'a plus le master le plus populaire c'est dommage :o
 
Les ulmites ne prendront pas toutes les places aux cachanais :o


 
Pas faux, faut diversifier :o
 
Pour le coup c'est compliqué de faire du ML à P6. Tu n'en trouves pratiquement que dans le M2 Stats, pas énormément d'ailleurs, et c'est limité à 30 places (mais je pense y aller). A Saclay il y a quand même : le MVA, le Probas/stats (avec parcours machine learning en plus), le M2 Data Science de l'X, et celui de DS d'Evry.


---------------
« Nous sommes tous des farceurs : nous survivons à nos problèmes.» Cioran
n°31454
blixow
Posté le 23-05-2018 à 23:56:50  profilanswer
 

Même à l'X il y a plein de monde qui n'a pas le mva

n°31455
solal94
Ars longa, vita brevis
Posté le 24-05-2018 à 17:06:59  profilanswer
 

drap
 
le sujet m'intéresse :)  
Au taff, nous commençons à y toucher un peu, via stagiaire(s).


Message édité par solal94 le 24-05-2018 à 17:09:11
n°31456
Profil sup​primé
Posté le 25-05-2018 à 10:14:26  answer
 

solal94 a écrit :

drap
 
le sujet m'intéresse :)  
Au taff, nous commençons à y toucher un peu, via stagiaire(s).


 
Salut  :hello:  
 
Tu bosses sur quelles problématiques ?  
 
 
 
Sinon, merci tout le monde pour vos conseils, mon réseau marche très bien et arrive bien à reconstruire les visages c'est cool  :jap:  
 
Du coup, j'ai quelques questions : j'arrive pas bien à cerner l'impact du "batch_size", en laissant la valeur par défaut (32) j'obtiens un meilleur résultat qu'en mettant une valeur plus haute (256)... Comme j'avais très peu d'images (901), j'ai augmenté artificiellement mon data set en y ajoutant des variantes zoomées, un peu translatées grâce à Keras... J'ai entraîné mon réseau sur 30 000 images (pas pu faire plus, trop limité par le temps de calcul et j'ai pas encore accès aux VM de la boite), plus il y a d'exemples plus il sera performant ? Ou il y a un risque d'overfit Plus que cela, quelle est l'importance de la diversification, quel est le mieux entre avoir 15 000 images de 6000 personnes différentes avec parfois très peu d'images par personne (<10) et 30 000 images de 10 personnes différentes avec une tonne d'images "artificielles" i.e générées aléatoirement via mon code  :??:  
 
Même question pour la profondeur du réseau.  
 
Ah et surtout, on est d'accord que l'objectif c'est d'arriver à une représentation la plus petite et épaisse possible ?  
 
Donc faire (56,40,1) -> (56,40,16) -> (28,20,16) - >... -> (14,10,8) ça n'a pas de sens et il faut plutôt faire (56,40,1) -> (56,40,16) -> (28,20,16) - >... -> (14,10,32) -> (7,5,32) par ex  :??:


Message édité par Profil supprimé le 25-05-2018 à 10:50:57
n°31457
Bébé Yoda
Posté le 25-05-2018 à 10:52:51  profilanswer
 

Sinon perso je m'ennuie un peu depuis 2/3 semaines.
J'ai été déplacé sur un autre service, où ça fonctionne différemment :
- Un analyste m'envoie un algorithme sous forme de pdf, avec toutes les étapes d'analyse des données (quelles parties du dataset garder, comment filtrer etc)
- J'implemente l'algo sur la plateforme (pyspark) en deux étapes : 1/ Jupyter notebook pour voir si tout marche bien et proposer des améliorations 2/ tout propre sur la plateforme avec les bonnes librairies
- Output des données sur l'outil de visualisation.
- Échanges avec l'analyste pour voir si tout ça est cohérent.

 

Donc en gros je passe surtout ma journée à essayer d'implémenter du code et la partie analyse est quasi nulle.
Si on ajoute à ça le fait que la plateforme est en rade presque tout le temps, c'est pas la joie (par exemple ça fait 3 jours que j'ai lancé un pivot, j'attends toujours mon dataset...)

 

Si j'ai du temps j'ai le droit de faire un peu d'analyse et essayer d'autres modèles, sauf qu'on est toujours en retard :D

 

Paraît que ça va pas durer... J'attends de voir et surtout je guette la moindre opportunité de refaire un peu plus d'analyse.
Je dis pas que je vais/veux faire de la data science hardcore avec gros modèles/r&D mais au moins un peu de analyse pour pas avoir l'impression de travailler comme un robot toute la journée.

 

Après je prends ça pour de la formation, ça me permet de me faire les dents sur Spark et c'est très bien. Mais faudra pas que ça dure trop longtemps

n°31458
Darmstadti​um
Pipoteur grotesque
Posté le 25-05-2018 à 11:10:48  profilanswer
 


Alors point par point :

  • C'est classique d'avoir de meilleures perfs avec de plus petits batchs
  • Bien pour la data augmentation, ça permet dans une certaine mesure d'obtenir une certaine invariance aux déformations montrées au réseau
  • Au contraire, plus il y a d'exemples moins le réseau devrait overfitter. Cela dit, si effectivement tu n'as que quelques sujets différents je pense qu'il est possible que le réseau galère à généraliser


Pour les questions d'après je suis pas sûr, mais je dirais qu'il faut un équilibre dans ce que t'as décrit pour les data. 15000 images de 6000 personnes ça va montrer une grande variété de ce à quoi une personne peut ressembler, mais avec moins de 3 images par personne en moyenne, s'il y a des personnes beaucoup plus présentes que les autres (genre une personne a 5000 photos et les 5999 autres se partagent les 10000 restantes) ça va sûrement poser problème.

 

Pour l'architecture d'autoencodeur ou d'un cnn, effectivement on construit de plus en plus de features (épaisseur) et on sous-échantillonne spatialement à chaque fois (le pooling). On pousse souvent ça jusqu'à avoir une représentation 1x1xD qui est juste un vecteur de R^D, donc une représentation D-dimensionnelle de la donnée d'entrée.


Message édité par Darmstadtium le 25-05-2018 à 11:12:10

---------------
Vous pourriez comprendre ainsi pourquoi l'isotropie peut être détournée de son enclave de finalité dès le postulat de base choisie. surunitairedream - 09/06/2013 -- Contrepets
n°31459
TiDom
Posté le 25-05-2018 à 11:14:30  profilanswer
 

Bébé Yoda a écrit :

Sinon perso je m'ennuie un peu depuis 2/3 semaines.
J'ai été déplacé sur un autre service, où ça fonctionne différemment :
- Un analyste m'envoie un algorithme sous forme de pdf, avec toutes les étapes d'analyse des données (quelles parties du dataset garder, comment filtrer etc)
- J'implemente l'algo sur la plateforme (pyspark) en deux étapes : 1/ Jupyter notebook pour voir si tout marche bien et proposer des améliorations 2/ tout propre sur la plateforme avec les bonnes librairies
- Output des données sur l'outil de visualisation.
- Échanges avec l'analyste pour voir si tout ça est cohérent.
 
Donc en gros je passe surtout ma journée à essayer d'implémenter du code et la partie analyse est quasi nulle.  
Si on ajoute à ça le fait que la plateforme est en rade presque tout le temps, c'est pas la joie (par exemple ça fait 3 jours que j'ai lancé un pivot, j'attends toujours mon dataset...)
 
Si j'ai du temps j'ai le droit de faire un peu d'analyse et essayer d'autres modèles, sauf qu'on est toujours en retard :D
 
Paraît que ça va pas durer... J'attends de voir et surtout je guette la moindre opportunité de refaire un peu plus d'analyse.
Je dis pas que je vais/veux faire de la data science hardcore avec gros modèles/r&D mais au moins un peu de analyse pour pas avoir l'impression de travailler comme un robot toute la journée.
 
Après je prends ça pour de la formation, ça me permet de me faire les dents sur Spark et c'est très bien. Mais faudra pas que ça dure trop longtemps


 
 
Coucou,
 
est-ce que c'est indiscret de demander l'ordre de grandeur de la rémunération pour ce type de job ? :o

n°31460
Bébé Yoda
Posté le 25-05-2018 à 11:20:55  profilanswer
 

Ça dépend de l'âge, pour moi c'est 45/46k selon les primes/bonus

n°31461
Profil sup​primé
Posté le 25-05-2018 à 11:26:28  answer
 

Darmstadtium a écrit :


Alors point par point :

  • C'est classique d'avoir de meilleures perfs avec de plus petits batchs
  • Bien pour la data augmentation, ça permet dans une certaine mesure d'obtenir une certaine invariance aux déformations montrées au réseau
  • Au contraire, plus il y a d'exemples moins le réseau devrait overfitter. Cela dit, si effectivement tu n'as que quelques sujets différents je pense qu'il est possible que le réseau galère à généraliser


Pour les questions d'après je suis pas sûr, mais je dirais qu'il faut un équilibre dans ce que t'as décrit pour les data. 15000 images de 6000 personnes ça va montrer une grande variété de ce à quoi une personne peut ressembler, mais avec moins de 3 images par personne en moyenne, s'il y a des personnes beaucoup plus présentes que les autres (genre une personne a 5000 photos et les 5999 autres se partagent les 10000 restantes) ça va sûrement poser problème.
 
Pour l'architecture d'autoencodeur ou d'un cnn, effectivement on construit de plus en plus de features (épaisseur) et on sous-échantillonne spatialement à chaque fois (le pooling). On pousse souvent ça jusqu'à avoir une représentation 1x1xD qui est juste un vecteur de R^D, donc une représentation D-dimensionnelle de la donnée d'entrée.


 
Merci pour ta réponse !
 
Une explication/intuition particulière pour la taille du batch ? Ou bien c'est empirique, on voit que ça marche mieux avec des petits batchs donc on garde ça comme ça... :o
 
Concernant le data set, le problème c'est qu'il y a 13233 images de 5749 personnes (donc à peu près 2 images par personne, c'est pas beaucoup haha). C'est pour ça que j'ai chargé uniquement les personnes ayant plus de 70 images ce qui me donne au total 901 images représentant 7 personnes différentes. Et 901 ce n'est pas assez pour entraîner correctement un Autoencoder je suppose. Donc j'ai rajouté environ 40 variantes par images, ce qui me donne un data set de 30 000 images ce qui est déjà plus intéressant.  
 
Ma question était donc : quelle est la meilleure stratégie entre entraîner le réseau sur 15 000 images très diverses et disproportionnées (certaines personnes ont + 70 images, d'autre seulement 1 ou 2) ou entraîner le réseau sur le data set que j'ai "crée moi même"  :??:  
 
Nécessairement 1*1*D ? Je me suis arrêté à 7*5*32 = 1120 dimensions contre 56*40 = 2240 dimensions..
 
En tout cas c'est cool, entre ce que j'implémente, ce que je lis et vos réponses ça se met en place, il me manque encore le socle scientifique/théorique pour tout bien comprendre mais je compte sur mon année de M2 pour ça :jap:

n°31462
korial
Posté le 25-05-2018 à 19:31:26  profilanswer
 

Darmstadtium a écrit :


Alors point par point :

  • C'est classique d'avoir de meilleures perfs avec de plus petits batchs



Ça vient d’où ça ? Dans le deep learning book j’avais compris que plus le batch size est grand plus on optimisé la véritable loss sur l’ensemble du dataset, donc mieux c’est.  
J’ai du mal à saisir pourquoi ce serait mieux des petits batchs :??:

n°31463
nesquik69
Posté le 25-05-2018 à 20:29:31  profilanswer
 

alors je suis pas non plus un grand expert, à confirmer par d'autres:
 
grande taille de batch: plus rapide ( en général, car sur ton set de données tu vas avoir un nombre plus petit d'itérations à cause d'un pas plus grand) , mais moins précis ( tu as toujours un bruit quand tu agréges les points).
 
petite taille de batch: moins rapide ( car tu vas normalement faire plus d'itérations), mais plus précis ( moins de bruits ajoutés), et pour des batchs trop petit + pas trop grand, tu peux avoir de l'overfitting.


Message édité par nesquik69 le 25-05-2018 à 20:32:15
n°31464
uuuugh
Posté le 25-05-2018 à 21:58:32  profilanswer
 

il me semble que c'est l'inverse nesquick, avec un petit batch size, tu vas avoir plus de bruit (moins de precision vu qu'on calcule moins de gradient), MAIS avoir un peu de bruit ça peut justement t'aider à eviter des minima locaux
en gros y'a pas vraiment d'avantage à un grand batch size, ce qui est effectivement contre intuitif puisqu'on pense calculer plus de gradients et bouger dans une meilleure direction
 
après tout ça depend evidemment de la tete de la loss function :o

n°31465
korial
Posté le 25-05-2018 à 22:35:44  profilanswer
 

Ah j’avais pas pensé au bruit qui pourrait faire sortir d’un minimum local :jap:
 
Et en quoi ça peut dépendre de la loss function ?  
 
Du coup est-ce que ça veut dire que dans les papers les auteurs ont fait varier le batch_size et ils donnent la valeur optimale ? En lisant les papiers je me rendais pas compte que c’était un paramètre à ajuster, je pensais naïvement que il valait mieux le mettre aussi gros que possible pour maximiser l’utilisation de la mémoire gpu.

 Page :   1  2  3  4  5  ..  36  37  38  ..  133  134  135  136  137  138

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Topic unique] Veille IA - Actu, lectures, podcasts & documentaires[Topic Unique] Claude by Anthropic
[Topic unique] IA générative de texte, ChatGPT, Copilot, Gemini & co 
Plus de sujets relatifs à : [Topic Unique] Machine Learning & Data Science


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)