Sommario:

Analisi dei componenti principali: 4 passaggi
Analisi dei componenti principali: 4 passaggi

Video: Analisi dei componenti principali: 4 passaggi

Video: Analisi dei componenti principali: 4 passaggi
Video: Cos'è l'ANALISI delle COMPONENTI PRINCIPALI? | METAFORA SPREMUTA D'ARANCIA! 2024, Dicembre
Anonim
Analisi del componente principale
Analisi del componente principale

L'analisi delle componenti principali è un metodo statistico che converte un insieme di variabili possibilmente correlate in un insieme di valori linearmente non correlati utilizzando trasformazioni ortogonali. In parole semplici, dato un set di dati con più dimensioni, aiuta a ridurre il numero di dimensioni, rendendo così i dati più facili da leggere.

Passaggio 1: piani originali

Sono entrato in questa classe con l'idea che volevo capire e, si spera, scrivere un algoritmo che sarebbe in grado di eseguire il riconoscimento facciale quando fornito con le immagini. Non avevo alcuna esperienza precedente o conoscenza di nulla a che fare con il riconoscimento facciale e non avevo idea di quanto fosse difficile ottenere qualcosa del genere. Dopo aver parlato con il professor Malloch mi sono reso conto che devo imparare molte cose prima di poter comprendere appieno il compito che alla fine avevo pianificato di realizzare.

Dopo un po' di ricerche, alla fine ho deciso che più di ogni altra cosa avevo bisogno di imparare l'algebra lineare e alcune nozioni di base sull'apprendimento automatico e ho deciso che la PCA (analisi dei componenti principali) fosse il mio obiettivo per questa classe.

Fase 2: ricerca

Ricerca
Ricerca

Il primo passo è stato visitare la Biblioteca e trovare qualsiasi libro che mi avesse introdotto all'apprendimento automatico e più specificamente all'elaborazione delle immagini. Questo si è rivelato molto più difficile di quanto pensassi e alla fine non ho ottenuto molto da esso. Ho quindi deciso di chiedere a un amico che lavorava nel Vision Lab che mi ha chiesto di esaminare l'algebra lineare e più specificamente autovettori e autovalori. Ho avuto una certa esperienza con l'algebra lineare da una classe che avevo seguito nel mio secondo anno, ma non capivo come gli autovettori o gli autovalori potessero essere utili quando si trattava di immagini. Mentre facevo più ricerche, capivo che le immagini non erano altro che enormi set di dati e potevano quindi essere trattate come matrici e mi è diventato un po' più chiaro il motivo per cui gli autovettori erano rilevanti per quello che stavo facendo. A questo punto, ho deciso che avrei dovuto imparare a leggere le immagini usando Python poiché stavo per usare Python per il mio progetto. Inizialmente, ho iniziato utilizzando CV2.imread per leggere le immagini, ma si è rivelato molto lento e quindi ho deciso di utilizzare glob e PIL.image.open per farlo poiché è molto più veloce. Questo processo su carta sembra relativamente non dispendioso in termini di tempo, ma in realtà ha richiesto una buona quantità di tempo poiché ho dovuto imparare come installare e importare diverse librerie su PyCharm (IDE) e quindi leggere la documentazione online per ciascuna libreria. Nel farlo, ho anche imparato a usare le istruzioni di installazione di pip nel prompt dei comandi.

Dopo questo, il passo successivo è stato capire cosa esattamente volevo fare e imparare nell'elaborazione delle immagini e inizialmente stavo pianificando di eseguire la corrispondenza dei modelli, ma durante la ricerca ho appreso della PCA e l'ho trovata più interessante, quindi ho deciso di vai con PCA invece. Il primo termine che continuava a spuntare era l'algoritmo K-NN (K-più vicino). Questa è stata la mia prima esperienza con un algoritmo di apprendimento automatico. Ho imparato a conoscere i dati di training e test e cosa significa "training" di un algoritmo. Anche comprendere l'algoritmo K-NN è stato impegnativo, ma è stato molto soddisfacente capire finalmente come funziona. Attualmente sto lavorando per far funzionare il codice per K-NN e sono molto vicino al completamento.

Passaggio 3: difficoltà affrontate e lezioni apprese

La prima grande difficoltà è stata la portata del progetto stesso. Questo era più orientato alla ricerca che fisico. Con il passare delle settimane, a volte guardavo i progressi che stavano facendo i miei colleghi e sentivo che non stavo facendo abbastanza o che non stavo facendo progressi abbastanza velocemente e questo a volte era molto demotivante. Parlare con il professor Malloch e rassicurarmi sul fatto che stavo davvero imparando cose che erano molto nuove per me mi ha aiutato ad andare avanti. Un altro problema era che conoscere le cose teoriche e applicarle sono due cose diverse. Sebbene sapessi cosa dovevo, in realtà codificarlo in Python era una storia diversa. È qui che leggere la documentazione online e chiedere agli amici che ne sapevano di più ha aiutato molto a capire finalmente un piano d'azione.

Personalmente penso che avere una biblioteca più ampia di libri e documenti all'M5 potrebbe aiutare le persone che stanno lavorando a progetti. Anche avere una registrazione digitale in tempo reale dei progetti svolti dagli studenti in modo che altri studenti e personale possano guardarlo e essere coinvolti se interessa loro è una buona idea per M5.

Al termine del progetto, ho imparato così tanto in così poco tempo. Ho acquisito una conoscenza molto pratica del machine learning e sento di aver fatto i primi passi per essere più coinvolto in esso. Mi sono reso conto che mi piace la visione artificiale e che potrei volerlo perseguire anche in futuro. La cosa più importante è che ho imparato cos'è la PCA, perché è così importante e come utilizzarla.

Passaggio 4: passaggi successivi

Per me, questo è stato solo scalfire la superficie di qualcosa di molto più vasto e molto importante nel mondo di oggi, ovvero l'apprendimento automatico. Ho intenzione di seguire corsi relativi all'apprendimento automatico nel prossimo futuro. Ho anche intenzione di costruire la mia strada verso il riconoscimento facciale poiché è lì che è iniziato l'intero progetto. Ho anche idee per un sistema di sicurezza che utilizzi una combinazione di funzioni (una delle quali è il volto della persona) per renderlo davvero sicuro e questo è qualcosa su cui voglio lavorare in futuro quando avrò una comprensione più ampia delle cose.

Per chiunque come me sia interessato all'apprendimento automatico e all'elaborazione delle immagini ma non ha esperienza precedente, suggerirei caldamente di prima imparare e comprendere l'algebra lineare insieme alle statistiche (in particolare le distribuzioni). Secondo, suggerirei di leggere Pattern Recognition and Machine Learning di Christopher M. Bishop. Questo libro mi ha aiutato a capire le basi di ciò che stavo entrando ed è strutturato molto bene.

Consigliato: