Tabla de contenido:

Análisis de componentes principales: 4 pasos
Análisis de componentes principales: 4 pasos

Video: Análisis de componentes principales: 4 pasos

Video: Análisis de componentes principales: 4 pasos
Video: Análisis de componentes principales | | UPV 2024, Noviembre
Anonim
Análisis de componentes principales
Análisis de componentes principales

El análisis de componentes principales es un método estadístico que convierte un conjunto de variables posiblemente correlacionadas en un conjunto de valores no correlacionados linealmente mediante el uso de transformaciones ortogonales. En palabras simples, dado un conjunto de datos con múltiples dimensiones, ayuda a reducir el número de dimensiones, lo que hace que los datos sean más fáciles de leer.

Paso 1: planes originales

Llegué a esta clase con la idea de que quería entender y, con suerte, escribir un algoritmo que pudiera realizar el reconocimiento facial cuando se le proporcionaran imágenes. No tenía experiencia previa ni conocimiento de nada que ver con el reconocimiento facial y no tenía idea de lo difícil que es lograr algo como esto. Después de hablar con el profesor Malloch, me di cuenta de que tengo que aprender muchas cosas antes de poder comprender completamente la tarea que finalmente planeé lograr.

Después de un poco de investigación, finalmente decidí que más que nada necesitaba aprender álgebra lineal y algunos conceptos básicos del aprendizaje automático y me decidí por PCA (análisis de componentes principales) como mi objetivo para esta clase.

Paso 2: investigación

Investigar
Investigar

El primer paso fue visitar la biblioteca y encontrar cualquier libro que me introdujera en el aprendizaje automático y, más específicamente, en el procesamiento de imágenes. Esto resultó ser mucho más difícil de lo que pensaba y terminé sin mucho de eso. Entonces decidí preguntarle a un amigo que trabajaba en el Laboratorio de Visión, quien me pidió que investigara el álgebra lineal y, más específicamente, los autovectores y los autovalores. Tenía algo de experiencia con álgebra lineal de una clase que había tomado en mi segundo año, pero no entendía cómo los autovectores o autovalores podían ser útiles al tratar con imágenes. A medida que investigaba más, entendí que las imágenes no eran más que conjuntos de datos enormes y, por lo tanto, podían tratarse como matrices y me quedó un poco más claro por qué los vectores propios eran relevantes para lo que estaba haciendo. En este punto, decidí que debería aprender a leer imágenes usando Python ya que iba a usar Python para mi proyecto. Inicialmente, comencé usando CV2.imread para leer las imágenes, pero resultó ser muy lento y, por lo tanto, decidí usar glob y PIL.image.open para hacerlo, ya que es mucho más rápido. Este proceso en papel parece relativamente poco lento, pero en realidad tomó una buena cantidad de tiempo, ya que tuve que aprender a instalar e importar diferentes bibliotecas en PyCharm (IDE) y luego leer la documentación en línea para cada biblioteca. En el proceso de hacerlo, también aprendí cómo usar las instrucciones de instalación de pip en el símbolo del sistema.

Después de esto, el siguiente paso fue averiguar qué quería hacer y aprender exactamente en el procesamiento de imágenes e inicialmente, estaba planeando hacer una coincidencia de plantillas, pero mientras investigaba, aprendí sobre PCA y me pareció más interesante, así que decidí ir con PCA en su lugar. El primer término que siguió apareciendo fue el algoritmo K-NN (K- vecino más cercano). Esta fue mi primera exposición a un algoritmo de aprendizaje automático. Aprendí sobre los datos de entrenamiento y prueba y lo que significa el 'entrenamiento' de un algoritmo. Comprender el algoritmo K-NN también fue un desafío, pero fue muy satisfactorio comprender finalmente cómo funciona. Actualmente estoy trabajando para que funcione el código para K-NN y estoy muy cerca de completarlo.

Paso 3: Dificultades enfrentadas y lecciones aprendidas

La primera gran dificultad fue el alcance del proyecto en sí. Esto fue más orientado a la investigación que físico. A medida que pasaban las semanas, algunas veces miraba el progreso que estaban haciendo mis compañeros y sentía que no estaba haciendo lo suficiente o que no estaba progresando lo suficientemente rápido y eso a veces era muy desmotivador. Hablar con el profesor Malloch y simplemente asegurarme de que estaba aprendiendo cosas que eran muy nuevas para mí me ayudó a seguir adelante. Otro problema fue que conocer las cosas teóricas y aplicarlas son dos cosas diferentes. Aunque sabía lo que tenía que hacer, codificarlo en Python era una historia diferente. Aquí es donde el simple hecho de leer documentación en línea y preguntar a amigos que lo sabían más ayudó mucho a finalmente idear un plan de acción.

Personalmente, creo que tener una biblioteca más grande de libros y documentos en M5 podría ayudar a las personas que están trabajando en proyectos. Además, tener un registro digital en tiempo real de los proyectos que están realizando los estudiantes para que otros estudiantes y el personal puedan verlo e involucrarse si les interesa es una buena idea para M5.

A medida que el proyecto llega a su fin, he aprendido mucho en tan poco tiempo. He adquirido un conocimiento muy práctico del aprendizaje automático y siento que he dado los primeros pasos para involucrarme más en él. Me he dado cuenta de que me gusta la visión por computadora y que podría querer seguir con esto incluso en el futuro. Lo más importante es que he aprendido qué es la PCA, por qué es tan importante y cómo utilizarla.

Paso 4: Pasos siguientes

Para mí, esto fue solo arañar la superficie de algo mucho más vasto y muy importante en el mundo actual, es decir, el aprendizaje automático. Planeo tomar cursos relacionados con el aprendizaje automático en un futuro próximo. También planeo construir mi camino hacia el reconocimiento facial, ya que ahí es donde comenzó todo este proyecto. También tengo ideas para un sistema de seguridad que utiliza una combinación de características (una de ellas es la cara de la persona) para hacerlo realmente seguro y esto es algo en lo que quiero trabajar en el futuro cuando tenga una comprensión más amplia de las cosas..

Para cualquier persona como yo que esté interesada en el aprendizaje automático y el procesamiento de imágenes, pero que no tenga experiencia previa, le sugiero que primero aprenda y comprenda el álgebra lineal junto con las estadísticas (especialmente las distribuciones). En segundo lugar, sugeriría leer el reconocimiento de patrones y el aprendizaje automático de Christopher M. Bishop. Este libro me ayudó a comprender los conceptos básicos de lo que me estaba metiendo y está muy bien estructurado.

Recomendado: