Apprentissage inductif appliqué Introduction à MATLAB
Transcription
Apprentissage inductif appliqué Introduction à MATLAB
Apprentissage inductif appliqué Introduction à MATLAB Gilles Louppe Université de Liège 11 octobre 2010 Gilles Louppe (ULg) Matlab 11 octobre 2010 1 / 14 Lancement de MATLAB MATLAB est installé sur les machines du réseau 8. Taper matlab dans un terminal pour lancer MATLAB. Gilles Louppe (ULg) Matlab 11 octobre 2010 2 / 14 Variables Scalaires >> i = 42 i = 42 Vecteurs >> v = [1 2 3] v = 1 2 % ou encore, v = [1, 2, 3] 3 Matrices >> m = [1.5 3 4.5; 10 15 20] m = 1.5000 3.0000 4.5000 10.0000 15.0000 20.0000 Gilles Louppe (ULg) Matlab 11 octobre 2010 3 / 14 Opérations standards Opérations arithmétiques >> A+B; A*B; A^k; ... Opérations élément par élément >> A.*B; A.^k Transconjuguée, Transposée >> A’; A.’ Résolution de systèmes linéaires A*x = b >> x = A\b Séquences >> 1:5 % de 1 à 5 ans = 1 2 3 4 5 >> 1:0.5:2.5 % de 1 à 2.5, avec un pas de 0.5 ans = 1.0000 1.5000 2.0000 2.5000 Gilles Louppe (ULg) Matlab 11 octobre 2010 4 / 14 Accès aux éléments Les indices commencent à partir de 1 (plutôt qu’à partir de 0). Accès à un élément individuel >> m(2, 3) % élément situé en (ligne 2, colonne 3) Accès à une colonne, à une ligne >> m(:, 3) >> m(2, :) % 3ème colonnne % 2ème ligne Accès par vecteurs >> m(:, 2:2:end) % Toutes les colonnes paires >> m([1 5 2], :) % Lignes 1, 5 et 2 Gilles Louppe (ULg) Matlab 11 octobre 2010 5 / 14 Structures de contrôles if for if condition1 statements elseif condition2 statements else statements end for variable = vector statements end Gilles Louppe (ULg) while while condition statements end Matlab 11 octobre 2010 6 / 14 Fonctions prédéfinies zeros, ones, eye, rand, ... ndims, size exp, log, cos, sin, tan, ... sum, mean, max, min, ... help, doc Gilles Louppe (ULg) Matlab 11 octobre 2010 7 / 14 Graphiques >> x = 0:0.1:10; >> plot(x, sin(x), x, cos(x)) Gilles Louppe (ULg) Matlab 11 octobre 2010 8 / 14 Scripts Un script MATLAB est un fichier .m contenant une suite de commandes. Appel en tapant le nom du fichier (sans le .m). >> myscript % Exécution du script "myscript.m" Toutes les variables sont globales et interagissent avec le workspace. Gilles Louppe (ULg) Matlab 11 octobre 2010 9 / 14 Définition de fonctions function [out1, out2, ...] = func_name(in1, in2, ...) % Function documentation statements out1 = ... out2 = ... Une fonction est définie dans un fichier .m du même nom (e.g., func_name.m). Appel en tapant le nom du fichier/de la fonction. >> func_name(42) Toutes les variables sont locales et n’interagissent pas avec le workspace. Gilles Louppe (ULg) Matlab 11 octobre 2010 10 / 14 Arbres de régression Ajouter path(path, ’/home/glouppe/aia/’); en début de script. Utiliser la fonction rt_predict pour créer un arbre de régression sur un ensemble d’apprentissage LS et l’évaluer sur un ensemble de test TS. y hat ts = rt predict(x ls, y ls, nmin, x ts, verbose) x_ls : valeurs d’entrées du LS (matrice n1 × m) ; y_ls : valeurs de sorties du LS (matrice n1 × 1) ; nmin : paramètre contrôlant le nombre minimal d’individus dans un noeud de l’arbre ; x_ts : valeurs d’entrées du TS (matrice n2 × m) ; verbose : 1 pour verbose, 0 sinon ; y_hat_ts : prédictions pour TS (matrice n2 × 1). Gilles Louppe (ULg) Matlab 11 octobre 2010 11 / 14 k-nearest neighbor Ajouter path(path, ’/home/glouppe/aia/’); en début de script. Utiliser la fonction knn_predict pour évaluer un ensemble de test TS à partir d’un modèle kNN construit sur un ensemble d’apprentissage LS. y hat ts = knn predict(x ls, y ls, k, x ts, verbose) x_ls : valeurs d’entrées du LS (matrice n1 × m) ; y_ls : valeurs de sorties du LS (matrice n1 × 1) ; k : nombre de voisins à considérer ; x_ts : valeurs d’entrées du TS (matrice n2 × m) ; verbose : 1 pour verbose, 0 sinon ; y_hat_ts : prédictions pour TS (matrice n2 × 1). Gilles Louppe (ULg) Matlab 11 octobre 2010 12 / 14 Réseaux de neurones artificiels Construction d’un réseau feedforward net = newff(x_ls, y_ls, [10]); % Une couche, 10 neurones net.divideFcn = ’’; % (Résoud un bug) net.trainParam.epochs = 100; % Nombre d’itérations Entraı̂nement net = train(net, x_ls, y_ls); Évaluation y_hat_ts = sim(net, x_ts); Gilles Louppe (ULg) Matlab 11 octobre 2010 13 / 14 Réseaux de neurones artificiels (cont.) Plusieurs couches cachées ? net = newff(x_ls, y_ls, [3 3 3]); Les éléments d’un dataset sont orientés en colonnes. Pour un ensemble de n objets composés de m attributs et associés à p valeurs de sortie I I I l’ensemble d’entrée x ls est une matrice m × n ; l’ensemble de sortie y ls est une matrice p × n ; l’ensemble de test x ts est une matrice m × n0 . Documentation abondante (Neural Network Toolbox) Gilles Louppe (ULg) Matlab 11 octobre 2010 14 / 14