Introduction
Dans ce laboratoire, nous allons apprendre à utiliser les diagrammes de Hinton pour visualiser les matrices de poids. Les diagrammes de Hinton sont très utiles lorsque vous voulez visualiser un tableau 2D, tel qu'une matrice de poids. Les valeurs positives et négatives sont représentées respectivement par des carrés blancs et noirs, et la taille de chaque carré représente l'amplitude de chaque valeur.
Conseils sur la VM
Une fois le démarrage de la VM terminé, cliquez sur le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au Notebook Jupyter pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que le Notebook Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du Notebook Jupyter.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous réglerons rapidement le problème pour vous.
Importation des bibliothèques
Nous allons commencer par importer les bibliothèques nécessaires pour ce laboratoire. Dans ce cas, nous aurons besoin de matplotlib et de numpy.
import matplotlib.pyplot as plt
import numpy as np
Définition de la fonction Hinton
Ensuite, nous allons définir une fonction appelée hinton qui générera le diagramme de Hinton. Cette fonction prend une matrice, qui est la matrice de poids que nous voulons visualiser, et un paramètre max_weight, qui est un paramètre optionnel qui spécifie la valeur maximale de poids pour les fins de normalisation.
def hinton(matrix, max_weight=None, ax=None):
"""Draw Hinton diagram for visualizing a weight matrix."""
ax = ax if ax is not None else plt.gca()
if not max_weight:
max_weight = 2 ** np.ceil(np.log2(np.abs(matrix).max()))
ax.patch.set_facecolor('gray')
ax.set_aspect('equal', 'box')
ax.xaxis.set_major_locator(plt.NullLocator())
ax.yaxis.set_major_locator(plt.NullLocator())
for (x, y), w in np.ndenumerate(matrix):
color = 'white' if w > 0 else 'black'
size = np.sqrt(abs(w) / max_weight)
rect = plt.Rectangle([x - size / 2, y - size / 2], size, size,
facecolor=color, edgecolor=color)
ax.add_patch(rect)
ax.autoscale_view()
ax.invert_yaxis()
Génération d'un diagramme de Hinton
Maintenant, nous allons générer une matrice de poids aléatoire à l'aide de numpy puis utiliser la fonction hinton pour générer le diagramme de Hinton.
if __name__ == '__main__':
## Fixing random state for reproducibility
np.random.seed(19680801)
hinton(np.random.rand(20, 20) - 0.5)
plt.show()
Sommaire
Dans ce laboratoire, nous avons appris à utiliser les diagrammes de Hinton pour visualiser les matrices de poids. Nous avons défini une fonction appelée hinton qui génère le diagramme de Hinton puis l'avons utilisée pour générer une matrice de poids aléatoire. Les diagrammes de Hinton sont très utiles pour visualiser les tableaux 2D, tels que les matrices de poids, et peuvent être utilisés pour identifier rapidement les motifs et les tendances dans les données.