[PYTHON] Une lutte après qu'un amateur d'apprentissage automatique qui a changé de travail pour une entreprise non informatique a été affecté à un projet d'IA

introduction

Cet article est le 8ème jour de Comment avez-vous appris l'apprentissage automatique par Nikkei xTECH Business AI② Advent Calendar 2019. J'espère que cela sera utile pour les débutants qui vont commercialiser à l'avenir.

Expérience de programmation

J'ai étudié le C / C ++ et Matlab dans des cours universitaires et Python à Sololearn. Pour JavaScript et HTML, j'ai parcouru la grammaire avec le standard Progate, puis j'ai lu la référence du langage.

Comment j'ai commencé à apprendre le machine learning

Interrogé sur l'expérience de programmation lors d'un entretien de recrutement en cours d'emploi, j'ai allégé Python. "Honna, eh aiyana! (Original)" est devenu. Avec cette réaction, j'ai rejoint l'entreprise avec un sentiment désagréable dans le cœur, puis j'ai été affecté à un nouveau projet en raison du développement commercial utilisant l'IA. Il est dansé sur l'équation de mensonge Python = AI. Même si j'avais écrit Python, j'étais un amateur d'apprentissage automatique, j'ai donc commencé à étudier avec cette opportunité.

[Modifié le 9 décembre 2019] J'ai préparé le matériel sur une base de mémoire ambiguë, comme si je voyais un article de M. Mas * door * se lever, mais c'était complètement faux avec ma mémoire. Je suis désolé.

Méthode d'apprentissage

Je vais les énumérer dans l'ordre dans lequel j'ai commencé.

Je pense que je ne suis pas doué pour lire des livres et acquérir des connaissances (surtout lorsque j'apprends de nouvelles choses), alors je pensais d'abord assister à des séminaires et à des sessions d'étude. De plus, comme le projet assigné était une prédiction de régression de données de séries chronologiques, je l'ai réduit aux données de séries chronologiques plutôt qu'au traitement d'images.

Séminaires auxquels j'ai assisté

*** Je ne vends pas du tout à Nikkei ***, mais en ce moment, le concept d'IA = traitement d'image submerge le monde, et les séminaires centrés sur les données chronologiques sont vraiment précieux. fait. Tous sont vraiment MNIST et Segmentation sémantique ... (Je pense que c'est un bon thème pour les débutants, simplement parce que c'était une étude entièrement basée sur les tâches, donc la situation est différente.)

Quant au contenu du séminaire, j'ai pu apprendre des bases du machine learning et du deep learning (c'est-à-dire que la régression et la classification sont des choses différentes). J'ai appris ici que CNN est la forme de base dans le système d'image et RNN est la forme de base dans le système de régression, et de nouvelles formes telles que le système de génération émergent. Je pense que ce sera une bonne expérience de connaître le contenu du processus en déplaçant réellement vos mains et en calculant. ~~ J'ai été surpris que de nombreux participants ne puissent pas calculer la matrice ~~

L'objectif principal de l'histoire de la série chronologique était de détecter des anomalies dans les machines-outils. Cela ne correspondait pas exactement à mon contenu, mais le professeur a pris du temps après la conférence et m'a donné beaucoup de précieux conseils.

Une autre chose que j'ai ressentie est que vous ne posez pas trop de questions. Je ne sais pas si je savais tout ce que je savais déjà, ou si je ne le comprenais pas trop, mais j'ai pu passer la plupart de mon temps à poser des questions, ce qui me faisait du bien. Puisque vous payez beaucoup d'argent pour participer, celui qui acquiert des connaissances gagne.

Session d'étude à laquelle j'ai participé

J'ai participé ici car je n'ai aucune connaissance du traitement des données chronologiques (tendances, saisons, etc.) en premier lieu. Connpass et TECH PLAY sont utilisés pour rechercher des sessions d'étude. En plus de l'apprentissage théorique, je suis allé écouter l'histoire au Edge Deep Learning Summit 2019 sponsorisé par LeapMind. Je l'ai également utilisé.

Je n'ai pas encore participé, mais il existe de nombreux groupes intéressants tels que le groupe d'étude sur le prétraitement des données et le groupe Mokumoku, alors j'aimerais augmenter le nombre de participants à partir de maintenant.

Livres que j'ai achetés / que je veux

Recherche dans le noyau Kaggle

Je savais qu'il y avait un concours, mais quand j'étudiais, je ne pensais pas l'essayer moi-même, alors je me suis concentré sur ** la lecture du noyau **. En guise de lecture, j'ai choisi des éléments liés aux séries chronologiques et à la prédiction de régression comme thème de la compétition, et je cherchais comment pétrir les données d'autres personnes et quel type de processus est pris face à une tâche. C'était. C'est plus primitif qu'un algorithme. Lorsque j'ai fait face aux données, j'essayais de savoir quelles mesures prendre (où chercher et quoi faire?). Ce que j'ai ressenti ici, c'est que même si j'ai assisté à des séances d'étude et lu des livres, comme ** interpréter des statistiques pour les variables que j'ai **, je n'en sais toujours pas grand-chose. ** Je sentais qu'il n'y avait pas de fondement avant de dire que c'était du machine learning ou du deep learning **. Je vais le mentionner dans le concours ci-dessous, mais je le ressens toujours.

Défiez la concurrence avec SIGNATE

Le concours lui-même a été contesté avec SIGNATE-san national au lieu de Kaggle. Ceci est assez récent et est [Découverte de médicaments IA: prédiction des paramètres pharmacocinétiques] de Takeda Yakuhin (https://signate.jp/competitions/168). Bien qu'il existe de nombreux concours pour la classification et la génération d'images, les concours de découverte de médicaments et les concours terrestres ont été des problèmes de régression précieux.

La première soumission du premier concours mémorable de ma vie était un début que je ne pouvais pas mesurer à cause d'une erreur de format du fichier CSV et mon nez était écrasé ... w Après cela, j'ai corrigé uniquement le format et soumis à nouveau, et c'est devenu une partition qui ne sonnait pas et ne volait pas J'ai fait. Au final, le classement est établi comme le montre la figure ci-dessous.

スクリーンショット 2019-12-04 22.12.45.png

Le résultat n'est pas très bon, mais je pense que le résultat était excellent. Ce que j'ai fortement ressenti dans ce concours, c'est qu'il y avait peu d'extraction de pré-traitement des données. J'ai implémenté les éléments essentiels tels que l'encodage à chaud des variables catégorielles, mais "Il y a quelque chose entre ces variables!" Ou "N'est-il pas possible d'améliorer le score en convertissant à de telles fonctionnalités?" , La génération de montant de fonction était particulièrement faible. Le nombre de messages est de 4, mais je suis coincé avec ** "Que dois-je faire à partir de maintenant?" **. Comme mentionné dans la section du livre que je souhaite acheter, je pense que la technologie d'analyse de données qui gagne avec Kaggle est tout à fait nécessaire pour moi.

De plus, comme pour la programmation elle-même, je pense qu'il est préférable d'étudier avec des directives claires **. Si vous êtes comme moi qui n'a pas de projet assigné et que vous êtes sur le point de commencer à étudier, je pense que le concours ** est un environnement très significatif avec des directives (tâches). .. Si vous essayez de vous concentrer dessus, vous commencerez inévitablement à collecter des connaissances sur la tâche, c'est donc recommandé car ce sera un point de départ pour élargir vos connaissances.

Présent et futur

Il s'agit d'un projet de problème de régression attribué après avoir rejoint l'entreprise, mais les variables ont été rendues sans dimension et anonymisées, et les horodatages ont été réaffectés à Article. Je suis. Veuillez le lire si vous le souhaitez. J'ai calculé avec deux types de modèles, un modèle LSTM + à deux couches entièrement couplé et XGBoost, mais le problème est que la sortie du modèle est après l'entrée [(LSTM pour la prédiction de séries temporelles - problèmes de kéras)](https: / /github.com/keras-team/keras/issues/2856) J'ai du mal ... Ceux qui ont des connaissances seraient très heureux de recevoir des conseils.

De plus, comme mentionné ci-dessus, le savoir-faire en matière de prétraitement des données et de génération de fonctionnalités est très important et ne me suffit pas à l'heure actuelle. Par conséquent, il est très utile pour les célèbres Kaggler de publier des blogs et des livres, et d'être actifs dans Kernel. Il fournit ce que vous avez vécu jusqu'à présent.

De plus, le contenu que j'ai étudié est spécialisé en retour car mon travail était un problème de retour. Par conséquent, on peut dire qu'il n'y a presque pas de méthodes ou de prétraitement liés à l'image. Je me demande s'il peut être géré en assemblant avec CNN? Je me sens comme. Je n'ai actuellement pas de projet pour l'image (détection et classification des anomalies), mais je pense pouvoir l'utiliser pour mes futurs travaux et j'aimerais en savoir plus. Nous allons également défier la concurrence des thèmes d'image qui ont traversé jusqu'à présent.

Tout d'abord, le livre Kaggle.

À ceux qui sont sur le point de commencer à étudier

** Puisqu'il s'agit de Qiita, je vais parler des environnements de programmation recommandés autres que Poem **

Notre environnement Python est configuré sur-pres avec ~~ Anaconda ~~ vanila python. Après avoir détruit l'environnement je suis devenu une secte vanille. L'article du calendrier de l'Avent de l'année dernière a été mis à jour, mais c'est mieux pour quelqu'un qui fait attention à la gestion, Anaconda.

Jupyter Notebook/Lab ** Jupyter Notebook est pratique ** Je ne peux pas sortir pour le reste de ma vie. Je recommande vraiment d'exécuter des programmes sur Jupyter Notebook pour tous ceux qui commencent à étudier l'apprentissage automatique (ou à partir de Python). Comme je l'ai fait, si vous êtes nouveau dans Python, vous ne savez pas si le processus que vous venez d'implémenter a les transformations souhaitées (en particulier ʻAxis` autour de Numpy). À cet égard, Jupyter a des cellules séparées, de sorte que PDCA pour l'implémentation du prétraitement et le formatage des données peut être tourné plus rapidement (REPL peut également être fait, mais Notebook a un obstacle moins élevé; une histoire complètement qualitative). De plus, l'extension ** Jupyter Lab ** a été annoncée, et il semble qu'il passera à ce développement à l'avenir (Reference). Veuillez également l'utiliser.

Installation de Jupyter Notebook

py -m pip install jupyter

Installez Jupyter Lab

py -m pip install jupyterlab

Google Colaboratory

Google Colaboratory est recommandé pour les personnes qui ne peuvent pas préparer les ressources informatiques en premier lieu. C'est comme un environnement Jupyter Notebook fonctionnant sur le serveur de Google. Comme expliqué dans "Présentation et procédure d'utilisation de Google Colaboratory (TensorFlow et GPU peuvent être utilisés)", toute personne disposant d'un compte Google et d'une connexion Internet est gratuite. Peut être utilisé avec. Récemment, il est devenu possible de sélectionner TPU en plus du GPU. Étant donné que les bibliothèques requises pour l'apprentissage automatique et l'apprentissage profond ont déjà été installées, [Link with Google Drive](https://qiita.com/shoji9x9/items/0ff0f6f603df18d631ab#google-drive%E3%82%92%E3% 83% 9E% E3% 82% A6% E3% 83% B3% E3% 83% 88% E3% 81% 99% E3% 82% 8B% E6% 96% B9% E6% B3% 95) Vous pouvez analyser et prédire immédiatement à partir des données. [Délai](https://qiita.com/shoji9x9/items/0ff0f6f603df18d631ab#90%E5%88%86%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%A812 % E6% 99% 82% E9% 96% 93% E3% 83% AB% E3% 83% BC% E3% 83% AB) Vous pouvez obtenir un environnement de calcul confortable en faisant simplement attention.

À la fin

Merci à tous ceux qui ont lu jusqu'ici. Je suis désolé que ce soit presque une phrase et c'est une longue phrase.

On dit que l'IA est entrée dans une période de désillusion dans les rues, mais je pense que les besoins des ingénieurs augmentent. De plus, nous les êtres humains ** perdons régulièrement de la valeur marchande avec le vieillissement **, donc je pense qu'il est bon d'augmenter ce que nous pouvons faire dans ce sens également.

Nous espérons que cet article servira de référence pour les débutants qui sont sur le point d'entrer sur le marché. (2ème fois au début)

Références / liens

Recommended Posts

Une lutte après qu'un amateur d'apprentissage automatique qui a changé de travail pour une entreprise non informatique a été affecté à un projet d'IA
J'ai changé de travail pour devenir ingénieur en apprentissage automatique chez AtCoder Jobs
Introduction à l'apprentissage automatique à partir de Simple Perceptron
Jusqu'à ce qu'un ingénieur qui était autrefois frustré par l'apprentissage automatique parvienne à utiliser l'apprentissage automatique au travail
Une introduction à l'apprentissage automatique
Comment utiliser l'apprentissage automatique pour le travail? 02_Aperçu du projet de développement AI