[PYTHON] Mémorandum d'apprentissage profond

Fondamentalement, il s'agit d'un mémorandum de contenu de Deep Learning fait à partir de zéro d'O'Reilly J'ai une balise python, mais je ne vois pas beaucoup de code python.

perceptron

En termes simples, circuit logique

ET porte

Une porte qui fonctionne comme suit

x_1 x_2 y
0 0 0
0 1 0
1 0 0
1 1 1

Atteindre la porte ci-dessus en changeant le poids (w_1, w_2) $ de $ b + w_1x_1 + w_2x_2 Idem pour les autres portes

Perceptron multicouche

La porte XOR ne peut pas être reproduite avec Perceptron 1 couche

Porte XOR

x_1 x_2 y
0 0 0
0 1 1
1 0 1
1 1 0

Je n'entrerai pas dans les détails, mais cela ne peut être réalisé avec un seul Perceptron. Ceci peut être réalisé en empilant des couches (perceptron multicouche) C'est la base du réseau neuronal

réseau neuronal

L'idée de base est avec Perceptron

Alors quelle est la différence?

Perceptron sortie 1 si la sortie de la fonction mentionnée plus haut dépasse 0, sinon elle sort 0. En d'autres termes, la sortie d'une couche est sortie vers la couche suivante à l'aide de la fonction step. La fonction d'étape est appelée ici la ** fonction d'activation **.

Cette fonction d'activation se remplace dans le réseau neuronal

Fonction Sigmaid

h(x)=\frac{1}{1+exp(-x)}

Une fonction est une fonction qui renvoie une sortie lorsqu'une certaine entrée est donnée. La fonction sigmoïde n'est également qu'une fonction

Qu'est-ce qui est bon contrairement à la fonction step?

Très simplement, la forme de la fonction est lisse

Fonction ReLU

Je ne l'ai pas encore fait

Réseau neuronal simple

Si l'entrée est $ X $, le poids de la première couche est $ W $, et le biais de la première couche est $ B $, La somme pondérée de la première couche peut être exprimée comme $ A = XW + B $ Donnez ce vecteur $ A $ comme entrée de la fonction sigmoïde et donnez sa sortie comme entrée suivante La sortie de la dernière couche utilise une autre fonction au lieu de la fonction sigmoïde

def sigmoid(x):
  return 1/(1+np.exp(-x))

def init_network():
  network = {}
  network['W1'] = np.array([[0.1, 0.3, 0.5],[0.2, 0.4, 0.6]])
  network['B1'] = np.array([0.1, 0.2, 0.3])
  # ...Initialisez également les autres couches
  return network

def forward(network, x):
  W1 = network['W1']
  B1 = network['B1']
  a1 = np.dot(x, W1)
  z1 = sigmoid(a1) 
  # ...Continuer
  y = identity_function(a3)
  return y

#Je pense que ce sera orienté objet à l'avenir
network = init_network()
x = np.array([1.0, 2.0])
y = forward(network, x)

Couche de sortie

Utiliser la fonction d'égalité ou la fonction softmax La fonction d'égalité est une fonction qui sort l'entrée telle quelle La fonction softmax est exprimée par la formule suivante

y_k = \frac{exp(a_k)}{\sum_{i=1}^{n}exp(a_i)}

Cependant, lors de l'implémentation de la fonction Softmax par programme, vous devez faire attention au débordement, donc Soustrayez la valeur maximale du vecteur de la valeur de a.

Qu'est-ce qu'une fonction softmax?

Il convertit la sortie du réseau neuronal en probabilité de le classer dans une certaine classe. Cependant, comme la relation d'amplitude de la sortie ne change pas, elle est généralement omise dans la phase d'inférence. La fonction Softmax est utilisée dans la phase d'apprentissage

Recommended Posts

Mémorandum d'apprentissage profond
L'apprentissage en profondeur
Commencer l'apprentissage en profondeur
Apprentissage en profondeur Python
Apprentissage profond × Python
Premier apprentissage profond ~ Lutte ~
Python: pratique du Deep Learning
Fonctions d'apprentissage en profondeur / d'activation
Deep learning 1 Pratique du deep learning
Apprentissage profond / entropie croisée
Premier apprentissage profond ~ Préparation ~
Première solution d'apprentissage en profondeur ~
[AI] Apprentissage métrique profond
J'ai essayé le deep learning
Python: réglage du Deep Learning
Technologie d'apprentissage en profondeur à grande échelle
Fonction d'apprentissage profond / softmax
Un mémorandum d'étude et de mise en œuvre du Deep Learning
[Mémorandum d'apprentissage] Introduction à vim
Apprentissage profond à partir de zéro 1 à 3 chapitres
Essayez l'apprentissage en profondeur avec TensorFlow
Deep Learning Gaiden ~ Programmation GPU ~
<Cours> Apprentissage en profondeur: Day2 CNN
Reconnaissance d'image par apprentissage profond 1 théorie
Apprentissage profond / code de travail LSTM
<Cours> Apprentissage en profondeur: Jour 1 NN
Apprentissage profond du noyau avec Pyro
Mémorandum d'apprentissage pour moi w
Essayez le Deep Learning avec FPGA
Apprentissage profond pour la formation composée?
Présentation d'Udacity Deep Learning Nanodegree
Sujets> Deep Learning: Day3 RNN
Introduction au Deep Learning ~ Règles d'apprentissage ~
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Générez des Pokémon avec Deep Learning
Introduction au Deep Learning ~ Rétropropagation ~
Distillateur de bibliothèque d'éclaircissement de modèles d'apprentissage profond
Deep learning / Deep learning from scratch 2 Chapitre 4 Mémo
Essayez le Deep Learning avec les concombres FPGA-Select
Deep learning / Deep learning made from scratch Chapitre 3 Mémo
Faites de l'art ASCII avec l'apprentissage en profondeur
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 5 Mémo
Implémenter le deep learning / VAE (Variational Autoencoder)
Introduction à l'apprentissage en profondeur ~ Approximation des fonctions ~
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Apprentissage profond à partir de zéro (calcul des coûts)