Notations générales
Définitions
1. Vecteur
On note un vecteur à
entrées, où
est la
entrée :
=
2. Matrice
On note une matrice à
lignes et
colonnes, où
est l’entrée située à la
ligne et
colonne :
Remarque: le vecteur défini ci-dessus peut être vu comme une matrice de taille
, aussi appelé vecteur colonne.
3. Matrices particulières
3.1 Matrice identité
La matrice est une matrice carrée n lignes et n colonnes. Tous les éléments de sa diagonale sont égaux à 1 et tous les autres éléments sont égaux à 0.
Remarquons pour toute matrice , on a
=
=
. On peut le consider comme l’élément neutre de la multiplication.
3.2 Matrice diagonale
Une matrice diagonale est une matrice carrée dont les coefficients en dehors de la diagonale principale sont nuls.
3.3 Opérations matricielles
3.3.1 Multiplication
Multiplication vecteur vecteur
On distingue des types de multiplication vecteur-vecteur:
-
Produit scalaire: Le produit scalaire est différent de la multilication d’un vecteur par un scalaire puisque:
-le produit scalire de deux vecteurs est un nombre réel; les deux opérandes d’un produit scalaire sont des vecteurs;
-
les opérandes de la multiplication d’un vecteur par un scalaire sont un vecteur et un nombre réel; le résultat de la multiplication d’un vecteur par un scalaire est un vecteur.
-
L’expression « multiplication vectorielle », qui devrait référer à une opération interne dans l’ensemble des vecteurs et qui aurait pour résultat un vecteur, est inappropriée, car le produit scalaire de deux vecteurs est un nombre réel et non un vecteur, alors que la multiplication d’un vecteur par un scalaire est une opération externe.
-
Pour , on a :
- Produit dyadique : Le produit dyadique de deux vecteurs, dont chacun ayant la même dimension, est le produit tensoriel de ces vecteurs, lequel est un tenseur d’ordre deux et de rang un. Ce produit est souvent utilisé en mécanique des milieux continus
Pour
on a :
Matrice- vecteur
Le produit de la matrice et du vecteur
est un vecteur de taille de
, tel que:
où les
sont les vecteurs-ligne et
sont les vecteurs-colonne de
sont les entrées de x.
Matrice-Matrice.
Le produit des matrices est une matrice de taille
tel que :
Exemples:
Produit matriciel Sur python:
# On définit la fonction permettant de calculer le produit de deux matrices.
def produit(A, B):
return [[sum(L[k] * B[k][j] for k in range(len(L))) for j in range(len(B[0]))] for L in A]
# On définit les deux matrices A et B
A = [[1, 7], [2,4]]
B = [[3, 3], [5, 2]]
produit(A, B)
[[38, 17], [26, 14]]
produit(B, A)
[[9, 33], [9, 43]]
3.4 Autres opérations
Transposé
La transposée d’une matrice est notée
et est dans
tel que:
.
Remarque : pour des matrices on a
.
Inverse:
L’inverse d’une matrice carrée inversible est notée
et est l’unique matrice telle que:
.
Exemple
la matrice de départ
et la matrice transposée
import numpy as np
# On définit la matrice A
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
# On affiche la matrice A
print(A)
# La transposer de la matrice de A
tranposer (A) = A.T
#Avec la fonction transpose de numpy
np.transpose(A)
Trace
La trace d’une matrice carrée , notée
, est la somme de ses entrées diagonales:
.
Remarque: pour toutes matrices on a
et
.
4. Analyse matricielle
4.1 Gradient
Soit une fonction définie
dans
. Le gradient de
à la matrice
est une matrice de taille
, notée
tel que:
Remarque: Le gradient de f est seulement définit lorsque f est une fonction donnant un scalaire.
4.2 Hessienne
Soit une fonction définie
dans
et
un vecteur. La hessienne de de
par rapport à
est une matrice de taille
, notée
, telle que:
Remarque La hessienne de f est seulement définie lorsque f est une fonction qui donne un scalaire.
PSW
4.3 Application: Gradient Descent in Python (la descente du grndient)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use(['ggplot'])
Création de données
Soient
X = 2 * np.random.rand(100,1)
y = 4 +3 * X+np.random.randn(100,1)
Affichage des données
plt.plot(X,y,'b.')
plt.xlabel("$x$", fontsize=18)
plt.ylabel("$y$", rotation=0, fontsize=18)
_ =plt.axis([0,2,0,15])
Faisons une première approche de regression linéaire
X_b = np.c_[np.ones((100,1)),X]
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
print(theta_best)
[[3.8635763 ] [3.08973657]]
X_new = np.array([[0],[2]])
X_new_b = np.c_[np.ones((2,1)),X_new]
y_predict = X_new_b.dot(theta_best)
y_predict
array([[ 3.8635763 ], [10.04304945]])
affichage de la droite de regression
plt.plot(X_new,y_predict,'r-')
plt.plot(X,y,'b.')
plt.xlabel("$x_1$", fontsize=18)
plt.ylabel("$y$", rotation=0, fontsize=18)
plt.axis([0,2,0,15])
Gardient Descent
Dans un nouveau poste ! On verra comment implémenter l’équation du gradient et de la fonction coût sur python.
coming soon
Sources: From my friend at Stanford Shervine Amidi thanks for this !