Rappel Mathématique -- Algèbre linéaire

Algébre Linéaire

Rappel Mathématique -- Algèbre linéaire

Algébre Linéaire

Notations générales

Définitions

1. Vecteur

On note un vecteur à entrées, où est la entrée :

=

2. Matrice

image

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:

image

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])

image

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])

image

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 !

Share: Twitter Facebook LinkedIn

Leave a Comment

Your email address will not be published. Required fields are marked *