Comment un ingénieur en énergie a étudié les réseaux de neurones et une révision du cours gratuit « Udacity : Intro to TensorFlow for Deep Learning »

Toute ma vie d'adulte, j'ai été une boisson énergisante (non, maintenant on ne parle pas d'une boisson aux propriétés douteuses).

Je n'ai jamais été particulièrement intéressé par le monde des technologies de l'information et je peux à peine multiplier des matrices sur une feuille de papier. Et je n'en ai jamais eu besoin, pour que vous compreniez un peu les spécificités de mon travail, je peux partager une merveilleuse histoire. Une fois, j'ai demandé à mes collègues de faire le travail dans une feuille de calcul Excel, la moitié de la journée de travail s'était écoulée, je me suis approché d'eux et ils étaient assis et résumaient les données sur une calculatrice, oui, sur une calculatrice noire ordinaire avec des boutons. Eh bien, de quel type de réseaux de neurones pouvons-nous parler après cela ?.. Je n'ai donc jamais eu de prérequis particuliers pour me plonger dans le monde de l'informatique. Mais, comme on dit, "c'est bien là où nous ne sommes pas", mes amis m'ont bourdonné les oreilles à propos de la réalité augmentée, des réseaux de neurones, des langages de programmation (principalement Python).

En mots, cela paraissait très simple, et j'ai décidé pourquoi ne pas maîtriser cet art magique afin de l'appliquer dans mon domaine d'activité.

Dans cet article, je vais sauter mes tentatives pour maîtriser les bases de Python et partager avec vous mes impressions sur le cours gratuit TensorFlow d'Udacity.

Comment un ingénieur en énergie a étudié les réseaux de neurones et une révision du cours gratuit « Udacity : Intro to TensorFlow for Deep Learning »

introduction

Pour commencer, il convient de noter qu'après 11 ans dans le secteur de l'énergie, quand on sait et sait tout faire et même un peu plus (selon ses responsabilités), apprendre des choses radicalement nouvelles - d'une part, suscite un grand enthousiasme, mais de l'autre, il se transforme en douleur physique, "des engrenages dans ma tête".

Je ne comprends toujours pas complètement tous les concepts de base de la programmation et de l'apprentissage automatique, vous ne devriez donc pas me juger trop durement. J'espère que mon article sera intéressant et utile aux personnes comme moi qui sont loin du développement de logiciels.

Avant de passer à l'aperçu du cours, je dirai que pour l'étudier, vous aurez besoin d'au moins une connaissance minimale de Python. Vous pouvez lire quelques livres pour les nuls (j'ai aussi commencé à suivre un cours sur Stepic, mais je ne le maîtrise pas encore complètement).

Le cours TensorFlow lui-même ne contiendra pas de constructions complexes, mais il sera nécessaire de comprendre pourquoi les bibliothèques sont importées, comment une fonction est définie et pourquoi quelque chose y est remplacé.

Pourquoi TensorFlow et Udacity ?

L'objectif principal de ma formation était la volonté de reconnaître des photographies d'éléments d'installation électrique à l'aide de réseaux de neurones.

J'ai choisi TensorFlow parce que mes amis m'en ont parlé. Et si je comprends bien, ce cours est très populaire.

J'ai essayé de commencer à apprendre du fonctionnaire Didacticiel .

Et puis j'ai rencontré deux problèmes.

  • Il existe de nombreux matériels pédagogiques, et ils se déclinent en différentes variétés. Il m'a été très difficile de créer au moins une image plus ou moins complète de la résolution du problème de reconnaissance d'images.
  • La plupart des articles dont j’ai besoin n’ont pas été traduits en russe. Il se trouve que j’ai appris l’allemand quand j’étais enfant et que maintenant, comme beaucoup d’enfants soviétiques, je ne connais ni l’allemand ni l’anglais. Bien sûr, tout au long de ma vie d'adulte, j'ai essayé de maîtriser l'anglais, mais cela s'est avéré quelque chose comme sur la photo.

Comment un ingénieur en énergie a étudié les réseaux de neurones et une révision du cours gratuit « Udacity : Intro to TensorFlow for Deep Learning »

Après avoir fouillé sur le site officiel, j'ai trouvé des recommandations à suivre un des deux cours en ligne.

Si je comprends bien, le cours sur Coursera était payant, et le cours Udacity : introduction à TensorFlow pour le Deep Learning il était possible de passer « gratuitement, c'est-à-dire gratuitement ».

Le contenu des cours

Le cours comprend 9 leçons.

La toute première section est une introduction, où ils vous expliqueront pourquoi cela est en principe nécessaire.

La leçon n°2 s’est avérée être ma préférée. C’était assez simple à comprendre et démontrait également les merveilles de la science. En bref, dans cette leçon, en plus des informations de base sur les réseaux neuronaux, les créateurs démontrent comment utiliser un réseau neuronal monocouche pour résoudre le problème de la conversion de la température de Fahrenheit en Celsius.

C'est en effet un exemple très clair. Je suis toujours assis ici à réfléchir à la manière de trouver et de résoudre un problème similaire, mais uniquement pour les électriciens.

Malheureusement, j'ai stagné davantage, car apprendre des choses incompréhensibles dans une langue inconnue est assez difficile. Ce qui m'a sauvé, c'est ce que j'ai trouvé sur Habré traduction de ce cours en russe.

La traduction a été réalisée avec une grande qualité, les cahiers Colab ont également été traduits, j'ai donc ensuite regardé à la fois l'original et la traduction.

La leçon n°3 est, en fait, une adaptation du matériel du didacticiel officiel TensorFlow. Dans ce didacticiel, nous utilisons un réseau neuronal multicouche pour apprendre à classer des images de vêtements (ensemble de données Fashion MNIST).

Les leçons n°4 à n°7 sont également une adaptation du tutoriel. Mais du fait qu'ils sont correctement organisés, il n'est pas nécessaire de comprendre vous-même la séquence d'étude. Dans ces leçons, nous serons brièvement informés des réseaux de neurones ultra-précis, de la manière d'augmenter la précision de l'entraînement et de sauvegarder le modèle. Dans le même temps, nous résoudrons simultanément le problème de la classification des chats et des chiens dans l'image.

La leçon n°8 est un cours complètement à part, il y a un professeur différent et le cours lui-même est assez complet. La leçon porte sur les séries chronologiques. Comme cela ne m'intéresse pas encore, je l'ai scanné en diagonale.

Cela se termine par la leçon n°9, qui est une invitation à suivre un cours gratuit sur TensorFlow Lite.

Ce que tu as aimé et ce que tu n'as pas aimé

Je vais commencer par les pros :

  • Le cours est gratuit
  • Le cours est sur TensorFlow 2. Certains manuels que j'ai vus et certains cours sur Internet étaient sur TensorFlow 1. Je ne sais pas s'il y a une grande différence, mais c'est bien d'apprendre la version actuelle.
  • Les professeurs de la vidéo ne sont pas ennuyeux (même si dans la version russe, ils ne lisent pas aussi joyeusement que dans l'original)
  • Le cours ne prend pas beaucoup de temps
  • Le cours ne vous rend pas triste ou désespéré. Les tâches du cours sont simples et il y a toujours un indice sous forme de Colab avec la bonne solution si quelque chose n'est pas clair (et une bonne moitié des tâches n'étaient pas claires pour moi)
  • Il n'est pas nécessaire d'installer quoi que ce soit, tous les travaux pratiques du cours peuvent être effectués dans le navigateur.

Maintenant les inconvénients:

  • Il n'existe pratiquement aucun matériel de contrôle. Pas de tests, pas de tâches, rien pour vérifier d'une manière ou d'une autre la maîtrise du cours
  • Tous mes blocs-notes n’ont pas fonctionné comme ils le devraient. Je pense que dans la troisième leçon du cours original en anglais, Colab lançait une erreur et je ne savais pas quoi en faire
  • Pratique à regarder uniquement sur un ordinateur. Peut-être que je n'ai pas bien compris, mais je n'ai pas trouvé l'application Udacity sur mon smartphone. Et la version mobile du site n'est pas réactive, c'est-à-dire que presque toute la zone de l'écran est occupée par le menu de navigation, mais pour voir le contenu principal, vous devez faire défiler vers la droite au-delà de la zone de visualisation. De plus, la vidéo ne peut pas être visionnée sur le téléphone. On ne voit vraiment rien sur un écran mesurant un peu plus de 6 pouces.
  • Certaines choses du cours sont mâchées plusieurs fois, mais en même temps, les choses vraiment nécessaires sur les réseaux convolutifs eux-mêmes ne sont pas mâchées au cours. Je n’ai toujours pas compris le but général de certains exercices (par exemple, à quoi sert Max Pooling).

Résumé

Vous avez sûrement déjà deviné que le miracle ne s’est pas produit. Et après avoir suivi ce court cours, il est impossible de vraiment comprendre comment fonctionnent les réseaux de neurones.

Bien sûr, après cela, je n'ai pas pu résoudre moi-même mon problème de classification des photographies d'interrupteurs et de boutons dans les appareillages.

Mais dans l'ensemble, le cours est utile. Il montre ce qui peut être fait avec TensorFlow et quelle direction prendre ensuite.

Je pense que je dois d'abord apprendre les bases de Python et lire des livres en russe sur le fonctionnement des réseaux de neurones, puis me lancer dans TensorFlow.

En conclusion, je voudrais remercier mes amis de m'avoir poussé à écrire le premier article sur Habr et de m'avoir aidé à le formater.

PS Je serai heureux de voir vos commentaires et toute critique constructive.

Source: habr.com

Ajouter un commentaire