[PYTHON] Dossier d'apprentissage 22 (26e jour)

Dossier d'apprentissage (26e jour)

Début des études: samedi 7 décembre

Matériel pédagogique, etc.: ・ Miyuki Oshige "Détails! Note d'introduction à Python3 »(Sotech, 2017): 12/7 (sam) -12/19 (jeu) lu ・ Progate Python course (5 cours au total): 12/19 (jeudi) -12/21 (samedi) fin ・ Andreas C. Müller, Sarah Guido "(titre japonais) Apprentissage automatique à partir de Python" (O'Reilly Japon, 2017): 21/12 (sam) -23 décembre (sam) ・ Kaggle: Real or Not? NLP with Disaster Tweets: Publié du samedi 28 décembre au vendredi 3 janvier Ajustement ・ Wes Mckinney "(titre japonais) Introduction à l'analyse de données par Python" (O'Reilly Japon, 2018): 1/4 (mercredi) à 1/13 (lundi) lire ・ ** Yasuki Saito "Deep Learning from Zero" (O'Reilly Japan, 2016): 1/15 (mercredi) ~ **

"Apprentissage profond à partir de zéro"

J'ai commencé à lire hier parce que je voulais mieux comprendre le réseau neuronal et l'apprentissage profond, ce qui était une percée dans la recherche sur l'IA. p.122 Chapitre 4 Terminez la lecture pour apprendre le réseau neuronal.

Chapitre 1 Introduction à python

・ En gros, un examen de ce que j'ai fait jusqu'à présent (vue d'ensemble de Python, construction de l'environnement, moyenne arithmétique, etc.) Un chapitre qui décrit les connaissances nécessaires pour continuer à lire ce livre Seule la partie que je n'ai pas un peu comprise est décrite

・ Bool: un type qui prend Vrai ou Faux Des opérateurs tels que et, ou, not peuvent être utilisés.

Définition de classe


nom de classe de classe:
    def __init__(self,argument, …): #constructeur
    ...
def nom de la méthode 1(self,argument, …): #Méthode 1
    ...
def nom de la méthode 2(self,argument, …): #Méthode 2
    ...

#Le constructeur est également appelé méthode d'initialisation.

Chapitre 2 Perceptron

・ Perceptron est un algorithme qui existe depuis 60 ans (inventé en 1957). C'est à l'origine du réseau neuronal (deep learning).

-Le Perceptron reçoit plusieurs signaux comme entrées et produit un signal. Le signal Perceptron est une valeur binaire de "flux ou pas flux" (1 ou 0). Chacun de la pluralité de signaux d'entrée a un poids unique, et plus le poids est grand, plus le signal correspondant devient important. Une valeur qui contrôle l'importance du signal d'entrée.

-En plus de "input", "weight" et "output", il y a un élément appelé "biais". Le biais est un paramètre qui ajuste le degré auquel le signal de sortie émet 1 (déclenchement des neurones).

-Puisque Perceptron est linéaire, une classification telle que la somme logique exclusive (XOR) ne peut pas être réalisée. (Limitation de Perceptron) Cependant, comme Perceptron peut "superposer", il est possible d'exprimer la non-linéarité par empilement. (Donc pour être précis, les limites du Perceptron "monocouche")

Chapitre 3 Réseau de neurones

-Bien que Perceptron ait le potentiel d'être exprimé par un ordinateur en théorie, le travail de détermination du poids approprié pour satisfaire l'entrée et la sortie attendues doit être effectué manuellement. Cependant, le réseau de neurones est l'un des moyens de résoudre ce problème et a la propriété de pouvoir apprendre automatiquement les paramètres de poids appropriés à partir des données.

-Dans le réseau neuronal (Perceptron), l'entrée est pondérée et polarisée, et la somme de ces signaux d'entrée est convertie par la ** fonction d'activation ** et la sortie.

-La fonction d'activation est une fonction qui commute la sortie à la limite du seuil, et est appelée une fonction d'étape ou une fonction d'étape. Perceptron utilise une fonction step.

-Dans le réseau neuronal, la ** fonction sigmoïde ** est utilisée comme fonction d'activation. La fonction sigmoïde est une courbe lisse par rapport à la fonction d'étape, et la sortie change continuellement par rapport à l'entrée. Cette fluidité est la base de l'apprentissage du réseau neuronal. La caractéristique commune est que la sortie peut être poussée entre 0 et 1 si elle est importante, une valeur élevée si elle n'est pas importante et quelle que soit la taille de la valeur.

-Récemment, en plus de la fonction sigmoïde, ** ReLU (Rectified Linear Unit) ** est souvent utilisé.

-La fonction d'activation utilisée dans la dernière couche de sortie doit être utilisée correctement en fonction de la tâche. En général, la fonction softmax est utilisée pour les problèmes de classification (deviner à quelle classe ils appartiennent), et la fonction d'équivalence est utilisée pour les problèmes de régression (deviner les nombres).

・ La fonction constante envoie la valeur telle quelle. La fonction softmax se caractérise par sa capacité à répondre ** de manière probabiliste (statistiquement) au problème, et la sortie totale est de 1. ** (Autrement dit, si a = 0,2, b = 0,5, c = 0,3, la probabilité de a est de 20%, la probabilité de b de 50% et la probabilité de c de 30%.)

-En général, le nombre de neurones dans la couche de sortie dans la classification de classe est défini sur le nombre de classes que vous souhaitez classer. (Mis à 10 si le problème est de deviner à quel nombre de 0 à 9 appartient)

-Les données d'entrée cohérentes sont appelées un lot. Cela signifie un tas. Le calcul peut être accéléré en effectuant un traitement par inférence par lots.

Chapitre 4 Apprentissage des réseaux de neurones

-Neural network (deep learning) apprend simplement les données données et tente de découvrir des modèles. Quel que soit le problème cible, les données peuvent être apprises "de bout en bout" sous forme de données brutes telles quelles.

-Comme il faut du temps pour obtenir la fonction de perte pour toutes les données, il est basique de retirer un petit bloc appelé mini-lot et d'effectuer un entraînement pour chaque mini-lot. (Je pense avoir vu une histoire similaire en étudiant les statistiques.)

-Le but de l'apprentissage est de calculer comment la fonction de perte change lorsque le paramètre de poids est légèrement modifié, et de trouver un endroit où la perte est moindre. Voici l'idée de ** différenciation (gradient) **. C'est une propriété importante dans cet apprentissage que la différenciation de la fonction sigmoïde ne devient nulle à aucun endroit.

・ La différenciation est la quantité de changement à un moment donné. La recherche de la différenciation par une petite différence est appelée ** différenciation numérique **, et elle est principalement utilisée. On dit que la différence minuscule h doit être de 1e-4 (10 à la 4e puissance, 0,0001). D'autre part, la découverte par expansion mathématique est appelée différenciation analytique.

-Une collection des différentiels partiels de toutes les variables en tant que vecteur est appelée ** gradient **. La direction indiquée par ce gradient est la direction dans laquelle la valeur de la fonction est le plus réduite à chaque emplacement, et la méthode pour trouver la valeur minimale de la fonction en faisant bon usage de celle-ci est appelée la méthode du gradient.

-Lors de l'expression de la méthode du gradient avec une formule mathématique, déterminez le montant η de combien apprendre en un apprentissage et combien mettre à jour les paramètres. C'est ce qu'on appelle le ** taux d'apprentissage **.

・ Les paramètres tels que le taux d'apprentissage sont appelés hyper paramètres. Ceci est différent des poids et des biais que le réseau neuronal peut auto-apprendre et doit être défini manuellement.

・ 4 étapes pour apprendre le réseau neuronal

1 Sélectionnez un mini-lot et obtenez une fonction de perte. 2 Trouvez le gradient et trouvez un moyen de réduire la fonction de perte. 3 Mettez à jour le paramètre de pondération dans la direction du dégradé. 4 Répétez les étapes 1 à 3.

Ce qui précède est appelé ** descente de gradient stochastique (SVD) **.

-En illustrant la fonction de perte et l'itération (nombre de répétitions), la transition de la fonction de perte (progression de l'apprentissage) peut être visualisée.

・ ** Epoch **: 1 Epoch est une unité et correspond au nombre de fois où toutes les données sont épuisées. Si vous vous entraînez avec 100 mini-lots pour 10 000 données, vous verrez toutes les données d'entraînement lorsque vous répéterez 100 fois. En d'autres termes, 100 fois = 1 époque.

Recommended Posts

Fiche d'apprentissage 4 (8e jour)
Fiche d'apprentissage 9 (13e jour)
Fiche d'apprentissage 3 (7e jour)
Fiche d'apprentissage 5 (9e jour)
Fiche d'apprentissage 6 (10e jour)
Fiche d'apprentissage 1 (4e jour)
Fiche d'apprentissage 7 (11e jour)
Fiche d'apprentissage 2 (6e jour)
Fiche d'apprentissage 16 (20e jour)
Dossier d'apprentissage 22 (26e jour)
Fiche d'apprentissage 13 (17e jour) Kaggle3
Dossier d'apprentissage n ° 10 (14e jour)
Fiche d'apprentissage 12 (16e jour) Kaggle2
Dossier d'apprentissage n ° 24 (28e jour)
Dossier d'apprentissage n ° 25 (29e jour)
Dossier d'apprentissage n ° 26 (30e jour)
Dossier d'apprentissage n ° 20 (24e jour)
Dossier d'apprentissage n ° 14 (18e jour) Kaggle4
Dossier d'apprentissage n ° 15 (19e jour) Kaggle5
Enregistrement d'apprentissage de la programmation 2ème jour
Dossier d'apprentissage n ° 17 (21e jour)
Dossier d'apprentissage
Dossier d'apprentissage n ° 18 (22e jour)
Dossier d'apprentissage n ° 3
Dossier d'apprentissage n ° 1
Dossier d'apprentissage n ° 19 (23e jour)
Dossier d'apprentissage n ° 28 (32e jour)
Dossier d'apprentissage n ° 27 (31e jour)
Fiche d'apprentissage (2ème jour) Scraping par #BeautifulSoup
Dossier d'apprentissage jusqu'à présent
Fiche d'apprentissage (4e jour) #Comment obtenir le chemin absolu à partir du chemin relatif
Fiche d'apprentissage Linux ① Planifier
<Cours> Apprentissage en profondeur: Day2 CNN
<Cours> Apprentissage en profondeur: Jour 1 NN
Sujets> Deep Learning: Day3 RNN
Fiche d'apprentissage (3e jour) Méthode de description du sélecteur #CSS #Scraping avec BeautifulSoup
Enregistrement d'apprentissage (6ème jour) #Set type #Dictionary type #Conversion automatique de l'ensemble de taples de liste #ndarray type #Pandas (type DataFrame)
Étudiez en profondeur le Deep Learning [DW Day 0]
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C3W1)
[Rabbit Challenge (E qualification)] Apprentissage en profondeur (jour2)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C1W3)
Enregistrez les étapes pour comprendre l'apprentissage automatique
[Rabbit Challenge (E qualification)] Apprentissage en profondeur (jour3)
[1 exemplaire par jour] Classify_images_Using_Python & Machine Learning [Daily_Coding_003]
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C1W4)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C2W1)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C1W2)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C3W2)
[Enregistrement d'apprentissage Leet Code] Résolution de la conversion en ZigZag