Quest-ce que le pré-apprentissage en Deep Learning comment ça marche?

Meilleure réponse

La pré-formation en Deep Learning nest rien dautre que , la formation des machines, avant quelles ne commencent à faire une tâche particulière.

Par exemple:

  1. Vous voulez entraîner un réseau de neurones pour effectuer une tâche, prendre une classification sur un ensemble de données dimages.Vous commencez lentraînement en initialisant les poids de manière aléatoire. Dès que vous commencez la formation, les poids sont modifiés ou variés afin deffectuer les tâches avec moins derreurs (optimisé). Une fois que vous êtes satisfait des résultats de la formation, vous enregistrez les poids de votre réseau, afin que le réseau de neurones entraîné puisse effectuer la tâche similaire la prochaine fois avec une bonne optimisation et de meilleurs résultats.
  2. La prochaine fois, commencez par entraînement avec des poids initialisés aléatoirement, vous pouvez utiliser les poids que vous avez enregistrés à partir du réseau précédent comme valeurs de poids initiales pour votre nouvelle expérience. Linitialisation des pondérations de cette manière sappelle lutilisation dun réseau pré-formé ……………………….

Le premier réseau est votre réseau pré-formé. Le second est le réseau que vous affinez.

Lidée de base derrière la pré-formation est que, linitialisation aléatoire des entrées est bien … aléatoire, les valeurs des poids nont rien à voir avec le tâche que vous essayez de résoudre.

Les valeurs de lentraînement précédent doivent être meilleures que lentraînement précédent, les valeurs doivent être correctement initialisées pour la tâche, nous pourrions aussi bien les définir sur les valeurs optimales.

Par conséquent, la pré-formation donne au réseau une longueur davance. Comme sil avait déjà vu les données.

Réponse

Premièrement, je vais supposer que nous sommes sur la planète Mercure où une semaine équivaut à environ 58 semaines. En supposant que vous passiez environ 8 heures par jour à apprendre pendant 5 jours par semaine, vous disposez de 2320 heures, suffisamment pour avoir une bonne maîtrise de lapprentissage en profondeur pour passer pour un ingénieur de recherche et un chercheur de niveau débutant.

Alors tout dabord, rendez-vous service et procurez-vous le livre Deep Learning de Goodfellow et al. C’est un livre extrêmement SOLIDE sur l’apprentissage en profondeur qui ne craint aucun calcul, sans être trop pédant. Par exemple, il a un excellent moyen dexpliquer ce qui se passe lorsque vous optimisez la divergence KL dans lautre sens, ce que les pertes L1 et L2 font réellement à vos poids (en termes de vecteurs propres de la fonction de perte), lintuition derrière les LSTM, etc. Commencez par la première section du livre. Il faudra environ deux semaines pour digérer complètement ce matériau (YMMV). Si vous avez dépassé cette semaine sans vous ennuyer ni vous enliser dans la complexité mathématique, vous êtes maintenant prêt à passer à un apprentissage automatique.

À ce stade, nous devons arrêter de lire et commencer à coder . Mais pour vraiment comprendre les choses, ne téléchargez pas Tensorflow, commencez par implémenter des éléments de base (régression logistique, SVM, kNN, PCA, GMM) en bon vieux python. Beaucoup de gens se précipitent pour utiliser des bibliothèques de haut niveau sans comprendre comment coder des blocs de base à partir de zéro, et vous en apprendrez beaucoup si vous le faites. Par exemple, apprendre que vous devez normaliser vos données avant dappliquer PCA, comment rendre softmax numériquement stable, pourquoi vous ne devriez pas réutiliser votre fonction softmax pour implémenter log-softmax, etc. Pour commencer à les implémenter, rendez-vous sur CS231n et terminez le premier devoir, en vous appuyant sur cela pour implémenter les SVM et les GMM. Cela prendrait environ 4 semaines (en supposant que vous commenciez sans connaissance de numpy ou de python) pour implémenter et déboguer. Vous savez maintenant comment implémenter des algorithmes dapprentissage automatique de base à partir de zéro.

Vous êtes maintenant prêt à lire les excellentes notes sur le site Web du CS231n (jusquau Module-1). Prenez votre temps pour digérer les subtilités de loptimisation des fonctions non convexes, et oui, METTEZ en œuvre tout ce que vous lisez. Des méthodes basées sur lélan au backprop de base, limplémentation est la clé si vous voulez réellement apprendre la mécanique. Par exemple, si vous implémentez backprop vous-même, vous vous rendrez compte à quel point vous devez conserver une tonne de données pour le passage en arrière et cette connaissance pourrait être très utile si vous rencontrez des erreurs de mémoire insuffisante à un moment donné de votre ingénierie DL carrière. Cela prendra encore 4 semaines.

Cela fait maintenant 10 semaines de DL insensée. Vous maîtrisez désormais vos compétences de base en mathématiques et pouvez implémenter des réseaux à réaction et des algorithmes de base ML en python brut. Félicitations à ce sujet. Passons à létape suivante. Cela ne fera que devenir plus difficile (et donc plus amusant).

Il est temps de sortir notre livre de Deep Learning et de commencer là où nous nous sommes arrêtés. Lisez les chapitres 6, 7 et 8. Le chapitre 6 est simple et nous lavons déjà maîtrisé. Cest au chapitre 7 que ça commence à devenir difficile – mais le livre fait un excellent travail pour distiller des concepts mathématiques lourds en un texte facile à comprendre.Pour compléter votre apprentissage, regardez cette incroyable conférence – Conférence Deep Learning 11: Réseaux dapprentissage, de transfert et de mémoire à marge maximale .

Ceci cela prendra encore 4 semaines, mais avec cela fait, nous sommes prêts à passer aux CNN et RNN. Nous suivrons à nouveau la même philosophie: lire les notes de cs231n, implémenter et former dat net, puis lire le livre pour en comprendre les détails. Cette phase prendra et devrait prendre plus de temps, car la mise en œuvre de backprop dans les CNN (avec toutes les cloches et les sifflets tels que la normalisation par lots) nest pas si simple. Il en va de même pour les LSTM (regardez la norme de ce dégradé, et coupez sil devient trop grand, ou tronquez à des séquences plus courtes sil devient trop petit). Conseil de pro – pour la formation des LSTM, je vous recommande de consulter le jeu de données PennTree Bank et de former un modèle de langage pour obtenir une perplexité denviron 110. Si vous pouvez faire que 90ish, félicitations, vous le faites correctement. Pour former un CNN, faites simplement le devoir 2 de CS231n.

Ouf. cette dernière phase de formation des CNN / RNN, puis de lecture du matériel associé du livre, nous a fait perdre environ 6 semaines et nous navons maintenant que 38 semaines pour devenir les meilleurs.

Enfin, le temps à pip install tensorflow. Ne même pas penser à autre chose. Non, nous ne faisons pas de pytorch (cest de nature dynamique, donc pas génial si vous voulez vous familiariser avec un logiciel de diffusion automatique, mais bien sinon) ou theano (pas assez grand). Ou des bibliothèques de haut niveau comme keras (belle, mais rend tout cela trop facile). Rendez-vous sur la documentation et lisez le didacticiel MNIST (pour les experts, car cest ce que nous sommes maintenant). Tout cela va être très étrange au début, l’idée d’un graphe de calcul, des sessions et le fait qu’il existe une «compilation» et une «exécution» distinctes même dans Python lui-même. Mais une fois que vous maîtrisez les choses, vous commencerez à réaliser à quel point il a été conçu et à quel point il est facile de l’étendre – par exemple, écrire votre propre LSTM est tout aussi simple que d’étendre une classe LSTM de base. En tant quensemble dexercices déchauffement, lisez le code des didacticiels ( Didacticiels | TensorFlow ), et parcourez chaque didacticiel très attentivement, en comprenant ce que chaque ligne fait et pourquoi. Vous apprendrez à organiser votre code tensorflow. Conseil de pro – Jaime toujours avoir des abstractions séparées pour la formation, les tests et les prévisions. Et une fonction build() distincte qui construit le graphe de calcul entier, en partant des espaces réservés, jusquà la définition de la fonction de perte et du train\_op qui optimise cette fonction de perte.

Plug Shameless – Jai récemment codé un modèle pour la compréhension de la machine (une tâche que jai appris à aimer beaucoup). Pour savoir comment assembler le code de votre modèle, consultez MurtyShikhar / Question-Answering . Pour tester vos compétences tensorflow, traduisez votre code CNN et LSTM en tensorflow pour obtenir la même précision / perplexité (peut-être meilleure).

Lapprentissage de tensorflow a pris environ 8 semaines de piratage insensé, de lecture de tutoriels, de frustration tensorflow compile des erreurs mais jespère que le voyage a été enrichissant. Vous avez maintenant la puissance de la diffusion automatique et un arsenal de fonctions vraiment cool pour connecter littéralement TOUT modèle dapprentissage en profondeur. Avant de passer à quelques recherches, pourquoi ne pas essayer un projet amusant dans tensorflow? Prenez nimporte quel papier intéressant sur un problème bien défini (traduction automatique / sous-titrage dimages / compréhension / réponse aux questions / réponse visuelle aux questions / transfert de style) et implémentez le modèle de pointe dans Tensorflow. Nessayez pas encore les GAN, car nous ne sommes pas (encore) cool. Vous prendrez environ 5 semaines pour terminer votre projet et obtenir des résultats compétitifs, laissant environ 5 semaines pour lire simplement les recherches en cours.

Je me rends compte que 5 semaines sont vraiment une courte période pour couvrir toute létendue de DL recherche, alors pourquoi ne pas restreindre notre champ d’action? Choisissez un problème ou une technique – quil sagisse de modèles génératifs, de modèles seq2seq ou dapprentissage par renforcement. Je ne connais rien à lapprentissage par renforcement (jessaie cependant dapprendre), alors je vais me concentrer sur les deux autres.

Pour les modèles génératifs, commencez par cet incroyable tutoriel de notre seigneur et sauveur – NIPS 2016 – Generative Adversarial Networks – Ian Goodfellow , et suivez lentement, en faisant une pause et en recherchant sur Google au fur et à mesure des besoins. Vous trouverez ces compétences en mathématiques dès les premières semaines TRÈS utiles ici. Je vous conseille vivement de lire le article original du GAN, ainsi que les suivis tels que DCGAN , SeqGANs, et le plus récent et le plus cool WGAN .

Pour Seq2Seq, regardez cette incroyable conférence dun scientifique de Google Brain – Sequence to Sequence Deep Learning (Quoc Le, Google) , puis vérifiez le tutoriel ICML 2017 dOriol Vinyals – tutoriel seq2seq icml .

FIN.

Cela a pris du temps et effort. Nous sommes à la fin de la semaine 58 et vous avez maintenant une large compréhension du Deep Learning, ainsi que de solides compétences en mathématiques et en ingénierie. Il est temps de saventurer plus profondément (obtenir le jeu de mots?) Dans la recherche en Deep Learning, ou peut-être de créer une application sympa. Je laisse cette décision à vous, vous êtes ingénieur DL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *