Оглавление:

Анализ главных компонентов: 4 шага
Анализ главных компонентов: 4 шага

Видео: Анализ главных компонентов: 4 шага

Видео: Анализ главных компонентов: 4 шага
Видео: Лекция 10. Факторный анализ и метод главных компонент. SVD разложение 2024, Ноябрь
Anonim
Анализ главных компонентов
Анализ главных компонентов

Анализ главных компонентов - это статистический метод, который преобразует набор возможно коррелированных переменных в набор линейно некоррелированных значений с помощью ортогональных преобразований. Проще говоря, учитывая набор данных с несколькими измерениями, это помогает уменьшить количество измерений, что упрощает чтение данных.

Шаг 1. Исходные планы

Я пришел в этот класс с идеей, что я хочу понять и, надеюсь, написать алгоритм, который сможет выполнять распознавание лиц при наличии изображений. У меня не было предыдущего опыта или знаний в области распознавания лиц, и я понятия не имел, насколько сложно добиться чего-то подобного. После разговора с профессором Маллоком я понял, что мне нужно многому научиться, прежде чем я смогу полностью понять задачу, которую в конечном итоге планировал выполнить.

После небольшого исследования я, наконец, решил, что больше всего мне нужно изучить линейную алгебру и некоторые основы машинного обучения, и остановился на PCA (анализе главных компонентов), который станет моей целью для этого класса.

Шаг 2: Исследование

Исследовать
Исследовать

Первым делом я должен был посетить библиотеку и найти любую книгу, которая знакомит меня с машинным обучением и, в частности, с обработкой изображений. Это оказалось намного сложнее, чем я думал, и в итоге у меня ничего не вышло. Затем я решил спросить друга, который работал в Vision Lab, который попросил меня изучить линейную алгебру и, в частности, собственные векторы и собственные значения. У меня был некоторый опыт работы с линейной алгеброй из класса, который я посещал на втором курсе, но я не понимал, как собственные векторы или собственные значения могут быть полезны при работе с изображениями. По мере того, как я исследовал больше, я понял, что изображения - это не что иное, как огромные наборы данных и, следовательно, их можно рассматривать как матрицы, и мне стало немного яснее, почему собственные векторы имеют отношение к тому, что я делал. На этом этапе я решил, что мне следует научиться читать изображения с помощью python, поскольку я собирался использовать python для своего проекта. Изначально я начал с использования CV2.imread для чтения изображений, но это оказалось очень медленным процессом, поэтому я решил использовать glob и PIL.image.open для этого, поскольку это намного быстрее. Этот процесс на бумаге кажется относительно нетрудным, но на самом деле потребовал немало времени, так как мне пришлось научиться устанавливать и импортировать различные библиотеки в PyCharm (IDE), а затем читать онлайн-документацию для каждой библиотеки. В процессе этого я также узнал, как использовать операторы установки pip в командной строке.

После этого следующим шагом было выяснение того, что именно я хочу делать и чему научиться при обработке изображений, и изначально я планировал выполнить сопоставление шаблонов, но, исследуя его, я узнал о PCA и обнаружил, что это более интересно, поэтому я решил вместо этого используйте PCA. Первым постоянно всплывавшим термином был алгоритм K-NN (K-ближайший сосед). Это было мое первое знакомство с алгоритмом машинного обучения. Я узнал о данных обучения и тестирования и о том, что означает «обучение» алгоритма. Понимание алгоритма K-NN также было непростым, но было очень приятно наконец понять, как он работает. В настоящее время я работаю над тем, чтобы код для K-NN работал, и я очень близок к завершению.

Шаг 3: встретившиеся трудности и извлеченные уроки

Первой большой трудностью был масштаб самого проекта. Это было больше исследовательское, чем физическое. По прошествии нескольких недель я смотрел на прогресс, которого добивались мои сверстники, и чувствовал, что я делаю недостаточно или что я не добиваюсь достаточно быстрого прогресса, и это иногда очень демотивировало. Разговор с профессором Мэллоком и просто уверение себя в том, что я действительно изучаю вещи, которые были для меня очень новыми, помогли мне продолжить. Другая проблема заключалась в том, что знание теоретических материалов и их применение - это разные вещи. Хотя я знал, что мне нужно, на самом деле кодирование на python было другим делом. Именно здесь просто чтение документации в Интернете и расспросы друзей, которые знали об этом больше, очень помогли, наконец, придумать план действий.

Я лично считаю, что наличие в M5 более крупной библиотеки книг и документов могло бы помочь людям, которые работают над проектами. Также хорошая идея для M5 - иметь цифровую запись в реальном времени о проектах, выполняемых студентами, чтобы другие студенты и сотрудники могли посмотреть на нее и принять участие, если это им интересно.

По мере того, как проект подходит к концу, я многому научился за такой короткий промежуток времени. Я получил очень практические знания о машинном обучении и чувствую, что сделал первые шаги, чтобы более активно участвовать в нем. Я понял, что мне нравится компьютерное зрение, и что, возможно, я захочу заниматься этим даже в будущем. Самое главное, я узнал, что такое PCA, почему он так важен и как его использовать.

Шаг 4. Дальнейшие действия

Для меня это было всего лишь поверхностным прикосновением к чему-то гораздо более обширному и очень важному в современном мире, то есть к машинному обучению. В ближайшем будущем планирую пройти курсы, связанные с машинным обучением. Я также планирую проложить свой путь к распознаванию лиц, поскольку именно с этого и начался весь этот проект. У меня также есть идеи для системы безопасности, которая использует комбинированные функции (одна из них - лицо человека), чтобы сделать ее действительно безопасной, и это то, над чем я хочу работать в будущем, когда у меня будет более широкое понимание вещей..

Для всех, кто, как я, интересуется машинным обучением и обработкой изображений, но не имеет предыдущего опыта, я настоятельно рекомендую сначала изучить и понять линейную алгебру вместе со статистикой (особенно с распределениями). Во-вторых, я бы посоветовал прочитать Кристофера М. Бишопа «Распознавание образов и машинное обучение». Эта книга помогла мне понять основы того, чем я занимался, и очень хорошо структурирована.

Рекомендуемые: