Boinc et les projets distribués > Multi-catégories

MLC@Home

<< < (5/42) > >>

nabz:

--- Citation de: fzs600 le 07 July 2020 à 06:40 ---Une application Windows est désormais disponible.

--- Fin de citation ---

Merci pour l'info. :jap:

fzs600:
Diligence scientifique / objectif de la recherche
https://www.mlcathome.org/mlcathome/forum_thread.php?id=30&postid=152

fzs600:
L'admin cherche un volontaire.  :kookoo:

--- Citer ---Tout ça, je n'ai pas de mac sur lequel m'appuyer, donc il n'y a pas d'application test, et il n'y en aura pas non plus de sitôt.

Ce dont j'ai besoin, c'est d'un développeur mac osx qui soit prêt à porter/compiler/débugger/tester une application à partir des sources. Tant qu'un développeur ne se présentera pas, il n'y aura pas de support osx. J'en ai le désir, mais je n'ai ni le matériel ni le savoir-faire.

Traduit avec www.DeepL.com/Translator (version gratuite)
--- Fin de citation ---
https://www.mlcathome.org/mlcathome/forum_thread.php?id=27&postid=158

JeromeC:

--- Citation de: fzs600 le 10 July 2020 à 20:35 ---Diligence scientifique / objectif de la recherche
https://www.mlcathome.org/mlcathome/forum_thread.php?id=30&postid=152

--- Fin de citation ---


--- Citer ---Etant récemment tombé sur votre nouveau projet, j'ai tout de suite aimé la question de la recherche ainsi que le fait que la plateforme soit ouverte au grand public. Je pense vraiment que l'étude de cette question pourrait donner des résultats intéressants. J'ai cependant été très intéressé par les informations de base sur la façon dont vous mettez en œuvre ce projet.

Pour moi, il y a deux aspects importants lorsqu'il s'agit de modèles complexes, en particulier dans l'espace des réseaux de neurones. L'explicabilité et l'interprétabilité des modèles. Le premier consiste à pouvoir expliquer pourquoi un modèle a donné une certaine prédiction (a donné une solution spécifique) et le second consiste à savoir comment le modèle a réellement donné cette solution. Habituellement, les praticiens ne s'intéressent qu'au premier aspect, car il s'agit essentiellement de l'exploration de la solution optimale/prévision (c'est-à-dire la moindre erreur de classification) et veulent donc comprendre pourquoi les résultats obtenus par une structure de réseau formée de manière optimale sont jugés optimaux et comment ils sont transférés dans le monde réel. Il s'agit essentiellement d'une inférence probabiliste causale permettant d'établir une relation de cause à effet pour donner un sens à la solution optimale.

Le deuxième élément concernant l'interprétabilité du modèle est généralement très négligé et est la raison pour laquelle beaucoup appellent les structures de réseau sophistiquées des modèles de boîte noire, car ils ne savent que ce qui se passe techniquement à l'intérieur du réseau/modèle mais ne peuvent pas vraiment le sonder/transférer au sens du monde réel dans la façon dont le modèle trouve la solution. Alors que l'explication d'une structure optimale pourrait être possible, la signification réelle de la transformation des données n'est pas vraiment intuitive (sélection des caractéristiques, activation des données plus biais, schémas de pondération des neurones, topologie du réseau, fonctions d'activation, taux d'apprentissage, coefficients de moment, montée et descente du gradient, optimisation stochastique de la méthode du gradient, propagation des erreurs en retour et mise à jour des poids, etc.)

D'après ce que j'ai compris, les gens se tournent vers les diagrammes de dépendance partielle, les variables de substitution globales ou locales ou la valeur de Shapley pour obtenir au moins une compréhension intuitive, jusqu'à un certain niveau, des variables qui tendent à expliquer la plus grande partie de la solution globale prévue. Vous pouvez également utiliser n'importe quel algorithme de réduction dimensionnelle tel que l'ACP pour obtenir une meilleure intuition sur la saisie des données, mais la formation NN n'est pas encore plus intuitive. Pour moi, c'est donc vraiment le problème de l'interprétabilité du modèle. C'est là que vous voulez aborder le problème, n'est-ce pas ?

Pour en revenir à votre page de description, vous savez que de nombreux réseaux neuronaux sont formés en parallèle avec des entrées, des hyperparamètres et des structures de réseau étroitement contrôlés. Pour moi personnellement, de nombreuses questions demeurent.

- Quelle est la technique utilisée pour entraîner les réseaux (montée et descente en gradient ou toute autre technique améliorée stochastiquement) ?
- ces techniques varieront-elles en fonction de l'UG ou des lots ?
- considère-t-on des structures de réseaux neuronaux spécifiques ou de simples ANNs "plain vanilla" ?
- quel ensemble de données est utilisé pour la formation afin de comprendre ce que les modèles formés tentent de prévoir ? Je ne veux pas former certains modèles sur des données douteuses / dans un but douteux.
- nous concentrons-nous sur les réseaux de neurones pour la classification (sortie catégorielle) ou formons-nous aux modèles de régression des réseaux de neurones (sortie numérique)
- Que signifie un contrôle étroit des hyperparamètres ? Un sous-ensemble de HP est-il fixé pour toutes les UGF et seul un HP est changé à la fois dans chaque UGF ?
- de nombreux hyperparamètres sont-ils modifiés simultanément par unité d'eau, c'est-à-dire un ensemble ou un sous-ensemble de HP ? Comment contrôlez-vous les effets de chevauchement ?
- quels hyperparamètres prenez-vous en compte ? Nombre de couches cachées, neurones par couche, différentes fonctions d'activation, différentes méthodes de gradient, biais, schémas de pondération, initialisation du poids, différents rapports de division de l'ensemble de données en ensemble d'entraînement et de test, introduction de bruit dans les données, méthodes d'échantillonnage des données d'entraînement, méthodes d'échantillonnage stratifiées/matières cachées, régularisation, introduction d'un coefficient d'impulsion pour l'apprentissage, sélection de caractéristiques, méthodes d'échantillonnage de sous-ensembles de caractéristiques, ingénierie des caractéristiques, etc. qui, d'après ce que je comprends, sont tous qualifiés d'hyperparamètres, c'est-à-dire tout paramètre dont la valeur doit être décidée et convenue avant le début de l'entraînement ? Il n'est pas nécessaire de dresser une liste exhaustive, mais simplement de connaître l'essentiel de la direction que prend ce projet.
- Cet ensemble d'hyperparamètres considérés changera-t-il au fil du temps ou est-il statique ?
- d'autres types de réseaux seront-ils formés à l'avenir ? des réseaux convolutifs, récurrents ou à auto-encodeur par exemple, qui ont tous un nombre croissant de cas d'utilisation dans le monde réel ?
- comment comptez-vous analyser les résultats produits par notre WU écrasé ? Selon quels processus/critères les analysez-vous ? Une attention particulière est-elle accordée à certains HP ? Comment évaluez-vous l'ensemble des données du modèle généré ? Seulement les taux d'erreur de classification pour la précision ? Comment jugez-vous la complexité ? Toute intention de rendre un algorithme qui tente essentiellement de trouver un modèle à partir de l'ensemble des données générées qui (comme l'ACP ou la régression) conserve la plus grande partie de la variance globale des données mais avec le moins d'entrées possible (essentiellement à une complexité donnée (définie selon une mesure pondérée) donnerait toujours la "structure de réseau la plus simple" à une complexité donnée (disons quelques hyperparamètres fixes/contraints) -> Je me demande simplement ce que vous voulez analyser ?

Nous apprécierions toute information supplémentaire que vous pourriez nous communiquer :)
--- Fin de citation ---



--- Citer ---Désolé pour le retard de réponse, le jeudi est ma journée la plus chargée.

Tout d'abord, des questions fantastiques. Je vais essayer de les couvrir toutes ici du mieux que je peux. Pour plus d'informations, je suis en train de créer une page web pour couvrir la plupart de vos questions... vous pouvez la voir sur le site principal https://www.mlcathome.org/index.html, et cliquez sur "MLDS Datasets" dans la barre latérale. Cette page est encore en construction, mais elle répondra à certaines de vos questions et vous permettra de télécharger l'ensemble de données.

Je reconnais que je suis beaucoup plus intéressé par l'interprétabilité du réseau que par l'explication des raisons pour lesquelles une entrée particulière produit une sortie particulière. Le LRP, les gradients intégrés, etc. font déjà un bon travail en montrant quelles parties de l'entrée ont le plus contribué à la sortie particulière. Mais pour ce faire, vous avez besoin d'intrants et vous observez essentiellement comment le réseau transforme cet intrant particulier. Super, utile, mais je veux regarder un réseau sans me fier à un intrant particulier. Je pense que cela correspond aussi à ce qui vous intéresse. Un domaine de recherche que j'ai vu est celui de Weiss et al. où ils essaient d'extraire des automates directement des RNN en utilisant des modèles d'inférence grammaticale. Remarque : j'ai pu reproduire leurs travaux pour les classificateurs, mais pas les réseaux modélisant un transducteur, où chaque état est un état d'acceptation. Il existe de nombreux autres travaux dans ce domaine également, je les utilise simplement comme exemple de personnes qui ne s'intéressent qu'à la structure et aux poids du réseau.

Cela dit, pour l'instant, je ne fais que créer un ensemble de données, il n'y a aucune raison qu'il ne puisse pas être utilisé pour les deux. Ou quelque chose de complètement différent.

J'en viens maintenant à vos questions spécifiques :

- quelle est la technique utilisée pour entraîner les réseaux (montée et descente par gradient ou toute autre technique stochastique améliorée) ?

La descente de gradient stochastique. L'optimiseur d'Adam. Le code est disponible sur gitlab

- Ces techniques varieront-elles en fonction de l'UE ou des lots ?

Pour ce premier tour, non, mais pour les travaux futurs absolument.

- Est-ce que des structures de réseaux neuronaux spécifiques sont envisagées ou de simples ANNs "plain vanilla" ?

Je suis vraiment intéressé par les RNN, donc ce premier lot est constitué de RNN empilés très simples basés sur ceux de cet article, non pas parce qu'il s'agit d'un papier RGEAT par exemple, mais parce qu'il contient des machines très simples qui sont faciles à modéliser avec un RNN et qui sont faciles à former rapidement. Elles constituent un bon banc d'essai pour éliminer les défauts du système.

- quel ensemble de données est utilisé pour la formation afin de comprendre ce que les modèles formés essaient de prévoir ? Je ne veux pas former certains modèles sur des données douteuses / dans un but douteux.

Voir le document ci-dessus, et le code sur gitlab.com. Les données de formation sont des séquences d'entrée aléatoires et des séquences de sortie observées sur ces "machines" jouets.

- nous concentrons-nous sur les réseaux de neurones pour la classification (sortie catégorielle) ou formons-nous aux modèles de régression des réseaux de neurones (sortie numérique)

Régression. Voir ci-dessus, nous prédisons des séquences de sortie.

- Que signifie un contrôle serré des hyperparamètres ? Un sous-ensemble de HP est-il fixé pour toutes les WU et seul 1 HP est changé à la fois dans chaque WU ?

Ce premier lot est composé d'hyperparamètres fixes, mais les lots suivants pourraient changer d'hyperparamètres. Si c'est le cas, nous n'en générons pas seulement un, mais des milliers avec le même ensemble d'hyperparamètres. Et ces hyperparamètres seront documentés avec cet ensemble de données afin que chacun sache ce qui change, et nous avons de multiples exemples à comparer.

- Est-ce que plusieurs hyperparamètres sont modifiés simultanément par unité de puissance, c'est-à-dire un ensemble ou un sous-ensemble de l'ensemble des HP ? Comment contrôlez-vous les effets de chevauchement ?

Puisque nous avons la possibilité d'en faire fonctionner tant en parallèle, je dirais que nous devrions faire fonctionner plusieurs lots en les modifiant un à la fois, puis les combiner, de sorte que l'ensemble de données résultant contienne toutes ces informations pour une analyse ultérieure.

- Quels sont les hyperparamètres que vous considérez ? Le nombre de couches cachées, les neurones par couche, les différentes fonctions d'activation, les différentes méthodes de gradient, le biais, les schémas de pondération, l'initialisation des poids, les différents rapports de division de l'ensemble de données en ensembles de formation et de test, l'introduction du bruit dans les données, les méthodes d'échantillonnage des données de formation, les méthodes d'échantillonnage stratifié/exploitation, la régularisation, l'introduction d'un coefficient de momentum pour l'apprentissage, la sélection des caractéristiques, les méthodes d'échantillonnage des sous-ensembles de caractéristiques, l'ingénierie des caractéristiques, etc. qui, d'après ce que je comprends, sont tous qualifiés d'hyperparamètres, c'est-à-dire tout paramètre dont la valeur doit être décidée et convenue avant le début de la formation ? Il n'est pas nécessaire de dresser une liste exhaustive, mais simplement de connaître l'essentiel de la direction que prend ce projet.
[citation]
Tous seront pris en considération. La version actuelle du client peut modifier le nombre de couches cachées, la largeur des couches cachées et différents ratios de formation et de test. C'est du pytorch sous le capot, donc tout ce qu'ils supportent, nous pouvons le supporter. Pour en ajouter, il suffit d'ajouter des boutons au binaire.


- Cet ensemble d'hyperparamètres considérés va-t-il changer avec le temps ou est-il statique ?

Le client évoluera dans le temps et cet ensemble va certainement s'accroître.

- d'autres types de réseaux seront-ils formés à l'avenir ? des réseaux convolutifs, récurrents ou à auto-encodeur par exemple, qui ont tous un nombre croissant de cas d'utilisation dans le monde réel ?

Oui. Je m'intéresse particulièrement aux transformateurs...

- comment comptez-vous analyser les résultats produits par notre WU écrasé ? Selon quels processus/critères les analysez-vous ? Un intérêt particulier pour certains HP ? Comment évaluez-vous l'ensemble des données générées par le modèle ? Seulement les taux d'erreur de classification pour la précision ? Comment jugez-vous la complexité ? Toute intention de rendre un algorithme qui tente essentiellement de trouver un modèle à partir de l'ensemble des données générées qui (comme l'ACP ou la régression) conserve la plus grande partie de la variance globale des données mais avec le moins d'entrées possible (essentiellement à une complexité donnée (définie selon une mesure pondérée) donnerait toujours la "structure de réseau la plus simple" à une complexité donnée (disons quelques hyperparamètres fixes/contraints) -> Je me demande simplement ce que vous voulez analyser ?

Eh bien, j'ai quelques idées sur ce que je veux faire avec l'ensemble de données, mais l'ensemble de données lui-même sera rendu public pour que tous puissent l'analyser comme ils le souhaitent.

Veuillez lire la première page sur https://www.mlcathome.org et la page spécifique de mlds sur https://www.mlcathome.org/mlds.html, cela vous donnera plus d'informations.

J'espère que cela a répondu à la plupart de vos questions, et encore une fois, merci pour votre intérêt !


Notez que la réponse ci-dessus ne s'applique qu'à l'application MLDS fonctionnant sur MLC@Home. Je vois que cette infrastructure est également utilisée pour d'autres applications, et j'en parle avec d'autres chercheurs. Voici quelques autres idées qui me viennent immédiatement à l'esprit :


Recherche d'architecture neurale
Neuro-évolution
Recherche d'hyperparamètres pour un objectif spécifique


Mais pour l'instant, MLDS est la seule application fonctionnant sur MCL@Home. Au fur et à mesure que d'autres projets seront mis en ligne, je leur demanderai d'afficher plus d'informations ici afin que d'autres puissent choisir de contribuer ou non à ces sous-projets.
--- Fin de citation ---



--- Citer ---Merci beaucoup d'avoir pris le temps d'entrer dans les détails de votre réponse. Votre réponse est très intéressante à lire. En parcourant le document technique auquel vous avez fait référence, la formation des RNN avec les différentes architectures simples n'est en fait qu'un point de départ pour votre analyse, en construisant essentiellement l'ensemble de données initiales des modèles formés que vous voulez étudier, n'est-ce pas ?

C'est génial que vous soyez d'accord avec moi pour vous concentrer principalement sur l'aspect de l'interprétabilité des prédictions dérivées des RNN plutôt que sur l'aspect de l'explicabilité. Le pointeur Gitlab est apprécié. Je vais y regarder de plus près. Je suis vraiment ravi de voir que les HP changent avec le temps pour chaque lot d'entraînement de modèle et encore plus des résultats potentiels qu'une comparaison pourrait donner.

Vous avez certainement des sujets de recherche brûlants en tête pour l'avenir ainsi que pour les applications ultérieures. Vos travaux de recherche ont certainement du mérite et méritent mon soutien pour permettre de nouvelles explorations scientifiques dans cet espace.

Merci également de m'avoir indiqué le site web du MLDS, car je n'en avais pas connaissance auparavant. Je suis heureux de voir que des efforts sont faits pour expliquer aux autres le type de science qui est pratiqué et en particulier les objectifs du projet.

J'aurais aimé que les autres administrateurs du projet fassent preuve d'une rapidité et d'une éloquence de réponse similaires. J'espère que cette norme sera maintenue tout au long du projet et pas seulement au début, alors que les choses s'accélèrent pour attirer des volontaires.

J'aime ce que je vois ici et je resterai dans le coin car je m'intéresse à la façon dont les choses vont évoluer même si je ne peux contribuer qu'avec 12 fils de mon vieux Xeon. Bonne chance pour ce projet !

Continuez à vous démener ! [arf là pour le coup deepl n'a pas capté le "keep crunching away" !!]

Traduit avec www.DeepL.com/Translator (version gratuite)
--- Fin de citation ---

Un projet hyper intéressant et un admin hyper intéressant !!!

JeromeC:
Biologie ? vraiment ? un projet qui cherche à travailler sur la validation de modèle d'IA ?

Je sais qu'on a pas vraiment de catégorie pour ça, alors pourquoi pas dans la section des projets générale ? ou celle des projets multi-catégorie ? (vu que visiblement le projet va évoluer, tout en restant dans ce domaine de recherche)

Navigation

[0] Index des messages

[#] Page suivante

[*] Page précédente

Utiliser la version classique