Análise do componente principal: 4 etapas
Análise do componente principal: 4 etapas
Anonim
Análise do componente principal
Análise do componente principal

A Análise de Componentes Principais é um método estatístico que converte um conjunto de variáveis possivelmente correlacionadas em um conjunto de valores linearmente não correlacionados usando transformações ortogonais. Em palavras simples, dado um conjunto de dados com várias dimensões, ajuda a reduzir o número de dimensões, tornando os dados mais fáceis de ler.

Etapa 1: Planos Originais

Eu vim para esta aula com a ideia de que queria entender e, com sorte, escrever um algoritmo que fosse capaz de realizar o reconhecimento facial quando fornecido com imagens. Eu não tinha experiência anterior ou conhecimento de qualquer coisa a ver com reconhecimento facial e não tinha ideia de como é difícil conseguir algo assim. Depois de conversar com o professor Malloch, percebi que tenho que aprender muitas coisas antes de ser capaz de compreender totalmente a tarefa que planejei realizar.

Depois de um pouco de pesquisa, finalmente decidi que mais do que qualquer coisa precisava aprender álgebra linear e alguns conceitos básicos de aprendizado de máquina e me decidi pela PCA (análise de componentes principais) como meu objetivo para esta aula.

Etapa 2: Pesquisa

Pesquisar
Pesquisar

A primeira etapa foi visitar a Biblioteca e encontrar algum livro que me introduzisse no aprendizado de máquina e, mais especificamente, no processamento de imagens. Isso acabou sendo muito mais difícil do que eu pensava e acabei sem quase nada disso. Decidi então pedir a um amigo que trabalhava no Vision Lab que me pediu para estudar álgebra linear e, mais especificamente, autovetores e autovalores. Tive alguma experiência com álgebra linear em uma aula que fizera no segundo ano, mas não entendia como eigenvetores ou eigenvalues poderiam ser úteis ao lidar com imagens. À medida que pesquisava mais, entendi que as imagens nada mais eram do que enormes conjuntos de dados e, portanto, podiam ser tratadas como matrizes e ficou um pouco mais claro para mim por que os eigenvetores eram relevantes para o que eu estava fazendo. Neste ponto, decidi que deveria aprender a ler imagens usando Python, pois usaria Python em meu projeto. Inicialmente, comecei usando CV2.imread para ler as imagens, mas isso acabou sendo muito lento e, portanto, decidi usar glob e PIL.image.open para fazer isso, pois é muito mais rápido. Este processo no papel parece relativamente não demorado, mas na verdade demorou bastante porque eu tive que aprender como instalar e importar diferentes bibliotecas para o PyCharm (IDE) e então ler a documentação online de cada biblioteca. Nesse processo, também aprendi como usar as instruções pip install no prompt de comando.

Depois disso, a próxima etapa foi descobrir o que exatamente eu queria fazer e aprender no processamento de imagens e, inicialmente, estava planejando fazer a correspondência de modelos, mas enquanto pesquisava, aprendi sobre PCA e achei mais interessante, então decidi vá com o PCA. O primeiro termo que sempre apareceu foi o algoritmo K-NN (K- vizinho mais próximo). Esta foi a primeira vez que tive contato com um algoritmo de aprendizado de máquina. Aprendi sobre os dados de treinamento e teste e o que significa "treinamento" de um algoritmo. Compreender o algoritmo K-NN também foi desafiador, mas foi muito satisfatório finalmente entender como ele funciona. Atualmente, estou trabalhando para que o código do K-NN funcione e estou muito perto da conclusão.

Etapa 3: dificuldades enfrentadas e lições aprendidas

A primeira grande dificuldade foi o escopo do projeto em si. Isso era mais voltado para a pesquisa do que físico. Com o passar das semanas, algumas vezes eu olhava para o progresso que meus colegas estavam fazendo e sentia que não estava fazendo o suficiente ou que não estava progredindo rápido o suficiente e isso às vezes era muito desmotivador. Conversar com o professor Malloch e apenas me assegurar de que estava realmente aprendendo coisas que eram muito novas para mim me ajudou a continuar. Outro problema era que saber o material teórico e aplicá-lo são duas coisas diferentes. Embora eu soubesse o que precisava, na verdade, codificá-lo em python era uma história diferente. É aqui que apenas ler documentações online e perguntar a amigos que sabiam mais sobre isso ajudou muito a finalmente descobrir um plano de ação.

Pessoalmente, acho que ter uma biblioteca maior de livros e documentos no M5 poderia ajudar as pessoas que estão trabalhando em projetos. Também ter um registro digital em tempo real dos projetos que estão sendo realizados pelos alunos para que outros alunos e funcionários possam ver e se envolver, se lhes interessar, é uma boa ideia para o M5.

Conforme o projeto chega ao fim, aprendi muito em tão pouco tempo. Adquiri um conhecimento prático do aprendizado de máquina e sinto que dei os primeiros passos para me envolver mais nele. Percebi que gosto de visão computacional e que posso querer persegui-la ainda no futuro. Mais importante ainda, aprendi o que é PCA, por que é tão importante e como usá-lo.

Etapa 4: Próximas etapas

Para mim, isso foi apenas arranhar a superfície de algo muito mais vasto e muito importante no mundo de hoje, ou seja, o aprendizado de máquina. Planejo fazer cursos relacionados ao aprendizado de máquina em um futuro próximo. Eu também planejo construir meu caminho para o reconhecimento facial, já que foi aí que todo o projeto começou. Também tenho ideias para um sistema de segurança que utiliza uma combinação de recursos (sendo um deles o rosto da pessoa) para torná-lo realmente seguro e é algo que quero trabalhar no futuro, quando tiver uma compreensão mais ampla das coisas.

Para qualquer pessoa como eu que está interessada em aprendizado de máquina e processamento de imagens, mas não tem experiência anterior, eu sugiro primeiro aprender e entender álgebra linear junto com estatísticas (especialmente distribuições). Em segundo lugar, sugiro a leitura de Pattern Recognition and Machine Learning, de Christopher M. Bishop. Este livro me ajudou a entender o básico do que eu estava me metendo e está muito bem estruturado.