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

Что такое искусственные нейронные сети?
Искусственные нейронные сети, также называемые нейронными сетями, представляют собой форму алгоритмов машинного обучения со структурой, основанной на человеческом мозге. Как и другие виды алгоритмов машинного обучения, они могут решать проблемы методом проб и ошибок, не будучи явно запрограммированными правилами, которым нужно следовать.
В нейронных сетях компьютер учится выполнять задачу, анализируя данные обучения, данные, которые должны быть обучены, предварительно помечаются ожидаемым выходом, прежде чем вводить его в модель. Поскольку нейронная сеть структурирована в человеческом мозгу, в ней есть тысячи узлов, которые связаны между собой факторами важности, называемыми весами. Типичная нейронная сеть обычно состоит из входного слоя, множества скрытых слоев и выходного слоя. Входной уровень состоит из обучающих данных, на которых обучается алгоритм, которые, в свою очередь, передаются на скрытый слой, узлы которого связаны с весами, именно на этом слое наш алгоритм точно настраивает наши веса до тех пор, пока предел погрешности не станет минимальным. выходной слой выполняет классификации, которые отображает наш алгоритм.

Зачем объединять анализ главных компонентов и нейронные сети?
Прежде чем ответить на этот вопрос, мы должны понять, почему мы выполняем нейронные сети для набора данных, предположим, что у нас есть огромный набор данных, содержащий изображения кошек и собак, мы вводим эти данные в нашу модель и обучаем ее классифицировать изображения кошек и собак, которые она получит. в будущем, поэтому для классификации модели между двумя исходами (бинарными) или множеством результатов (категориальными) мы будем использовать технику нейронных сетей. Теперь, переходя к вопросу об объединении PCA и NN, мы используем PCA для уменьшения размеров нашего набора данных, чтобы при применении полученного набора данных в алгоритме машинного обучения время вычислений уменьшалось при обучении алгоритма. Как объяснялось выше, PCA уменьшает размеры нашего набора данных до значения, эквивалентного количеству переменных или функций, в зависимости от того, что меньше.
Пример: у меня есть обучающий набор, состоящий из 150 изображений «я в очках» и «я без очков» с 4096 функциями на изображение, когда я напрямую применяю NN к моему набору данных, для его обучения потребуется огромное количество времени. , но если я предварительно обработаю свои данные с помощью PCA, это уменьшит размеры моего набора данных до (150,150) от исходного (150,4096), поэтому, когда я применяю NN к моему результирующему набору данных, время, необходимое для обучения набора данных, значительно сократится. , без большой потери точности.


Определение того, носит ли человек очки или не использует нейронные сети, и предварительная обработка данных с помощью анализа главных компонентов.
Набор данных состоял из 100 изображений человека в очках и 100 изображений человека без очков.
После загрузки данных значения пикселей всех изображений масштабируются, и изображение изменяется до размеров 64 * 64, и оба типа изображений объединяются вместе.
Теперь изображения добавлены в наборы данных для обучения и тестирования.

Применение анализа главных компонентов
Теперь мы применяем PCA к набору обучающих данных и видим среднее изображение.

После того, как мы получили среднее лицо, мы видим форму собственного лица и видим само собственное лицо.


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

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

После обучения модели и тестирования ее с новыми данными тестирования мы получили точность 100% как на обучающем наборе, так и на тестовом наборе.

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