Table des matières:

Analyse en Composantes Principales : 4 Étapes
Analyse en Composantes Principales : 4 Étapes

Vidéo: Analyse en Composantes Principales : 4 Étapes

Vidéo: Analyse en Composantes Principales : 4 Étapes
Vidéo: Analyse de données : ACP (Analyse en Composantes Principales) 2024, Novembre
Anonim
Analyse des composants principaux
Analyse des composants principaux

L'analyse en composantes principales est une méthode statistique qui convertit un ensemble de variables éventuellement corrélées en un ensemble de valeurs non corrélées linéairement en utilisant des transformations orthogonales. En termes simples, étant donné un ensemble de données à plusieurs dimensions, cela permet de réduire le nombre de dimensions, ce qui facilite la lecture des données.

Étape 1: Plans originaux

Je suis entré dans cette classe avec l'idée que je voulais comprendre et, espérons-le, écrire un algorithme qui serait capable d'effectuer une reconnaissance faciale lorsqu'il est fourni avec des images. Je n'avais aucune expérience ou connaissance préalable de quoi que ce soit à voir avec la reconnaissance faciale et je n'avais aucune idée à quel point il est difficile de réaliser quelque chose comme ça. Après avoir discuté avec le professeur Malloch, je me suis rendu compte que je devais apprendre beaucoup de choses avant de pouvoir comprendre pleinement la tâche que j'avais finalement prévu d'accomplir.

Après quelques recherches, j'ai finalement décidé que j'avais plus que tout besoin d'apprendre l'algèbre linéaire et quelques bases de l'apprentissage automatique et j'ai choisi l'ACP (analyse en composantes principales) comme objectif pour ce cours.

Étape 2: Recherche

Recherche
Recherche

La première étape a été de visiter la bibliothèque et de trouver un livre qui m'a initié à l'apprentissage automatique et plus particulièrement au traitement d'images. Cela s'est avéré beaucoup plus difficile que je ne le pensais et j'ai fini par ne rien en retirer. J'ai alors décidé de demander à un ami qui travaillait au Vision Lab qui m'a demandé de me pencher sur l'algèbre linéaire et plus particulièrement les vecteurs propres et les valeurs propres. J'avais une certaine expérience de l'algèbre linéaire dans un cours que j'avais suivi en deuxième année, mais je ne comprenais pas en quoi les vecteurs propres ou les valeurs propres pouvaient être utiles lorsqu'il s'agissait d'images. Au fur et à mesure de mes recherches, j'ai compris que les images n'étaient rien d'autre que d'énormes ensembles de données et pouvaient donc être traitées comme des matrices et il est devenu un peu plus clair pour moi pourquoi les vecteurs propres étaient pertinents pour ce que je faisais. À ce stade, j'ai décidé d'apprendre à lire des images en utilisant python car j'allais utiliser python pour mon projet. Au départ, j'ai commencé par utiliser CV2.imread pour lire les images, mais cela s'est avéré très lent et j'ai donc décidé d'utiliser glob et PIL.image.open pour le faire car c'est beaucoup plus rapide. Ce processus sur papier semble relativement rapide, mais a en fait pris beaucoup de temps car j'ai dû apprendre à installer et à importer différentes bibliothèques sur PyCharm (IDE), puis à lire la documentation en ligne pour chaque bibliothèque. Ce faisant, j'ai également appris à utiliser les instructions d'installation pip dans l'invite de commande.

Après cela, l'étape suivante consistait à déterminer ce que je voulais exactement faire et apprendre dans le traitement d'images et au départ, je prévoyais de faire une correspondance de modèles, mais en faisant des recherches pour cela, j'ai découvert la PCA et l'ai trouvée plus intéressante, j'ai donc décidé de aller avec PCA à la place. Le premier terme qui n'a cessé d'apparaître était l'algorithme K-NN (K- plus proche voisin). C'était ma toute première exposition à un algorithme d'apprentissage automatique. J'ai découvert les données d'entraînement et de test et ce que signifie « l'entraînement » d'un algorithme. Comprendre l'algorithme K-NN était également un défi, mais c'était très satisfaisant de comprendre enfin comment il fonctionne. Je travaille actuellement à faire fonctionner le code pour K-NN et je suis très proche de l'achèvement.

Étape 3: Difficultés rencontrées et leçons apprises

La première grande difficulté était la portée du projet lui-même. Il s'agissait plus d'une recherche que d'une recherche physique. Au fil des semaines, je regardais parfois les progrès de mes pairs et je sentais que je n'en faisais pas assez ou que je ne progressais pas assez vite et c'était parfois très démotivant. Parler au professeur Malloch et simplement me rassurer sur le fait que j'apprenais effectivement des choses qui étaient très nouvelles pour moi m'a aidé à continuer. Un autre problème était que connaître la théorie et l'appliquer sont deux choses différentes. Même si je savais ce que je devais faire, le coder en python était une autre histoire. C'est là que le simple fait de lire des documentations en ligne et de demander à des amis qui en savaient plus a beaucoup aidé à enfin trouver un plan d'action.

Personnellement, je pense qu'avoir une plus grande bibliothèque de livres et de documents à M5 pourrait aider les personnes qui travaillent sur des projets. Avoir également un enregistrement numérique en temps réel des projets réalisés par les étudiants afin que les autres étudiants et le personnel puissent le consulter et s'impliquer si cela les intéresse est une bonne idée pour M5.

Alors que le projet touche à sa fin, j'ai tellement appris en si peu de temps. J'ai acquis une connaissance très pratique de l'apprentissage automatique et j'ai l'impression d'avoir fait les premiers pas pour m'y impliquer davantage. J'ai réalisé que j'aime la vision par ordinateur et que je pourrais vouloir poursuivre cela même à l'avenir. Plus important encore, j'ai appris ce qu'est le PCA, pourquoi il est si important et comment l'utiliser.

Étape 4: prochaines étapes

Pour moi, cela ne faisait qu'effleurer la surface de quelque chose de beaucoup plus vaste et de très important dans le monde d'aujourd'hui, c'est-à-dire l'apprentissage automatique. Je prévois de suivre des cours liés à l'apprentissage automatique dans un proche avenir. Je prévois également de progresser vers la reconnaissance faciale, car c'est là que tout ce projet a commencé. J'ai également des idées pour un système de sécurité qui utilise une combinaison de fonctionnalités (l'une d'elles étant le visage de la personne) pour le rendre vraiment sécurisé et c'est quelque chose sur lequel je veux travailler à l'avenir lorsque j'aurai une compréhension plus large des choses.

Pour toute personne comme moi qui s'intéresse à l'apprentissage automatique et au traitement d'images mais qui n'a aucune expérience préalable, je suggère fortement d'abord d'apprendre et de comprendre l'algèbre linéaire ainsi que les statistiques (en particulier les distributions). Deuxièmement, je suggérerais de lire Pattern Recognition and Machine Learning par Christopher M. Bishop. Ce livre m'a aidé à comprendre les bases de ce dans quoi je m'engageais et est très bien structuré.

Conseillé: