Уменьшение размерности - Pyspark - PullRequest
0 голосов
/ 06 января 2020

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

Я хочу выяснить, выглядит ли 伊 более похожим на 達 или более похожим на 市. Это упражнение должно быть выполнено для 13 108 персонажей.

Чтобы решить эту проблему, мы преобразовали все эти символы в изображения в оттенках серого, используя библиотеку рисования в python. Затем мы пропустили всех персонажей через VGG-16 (слой CNN), чтобы получить для них набор функций. Вывод набора функций для VGG-16 (слой CNN) имеет 512x7x7 (25088) элементов. Мы собрали все это в один файл. Теперь у нас есть около 13 108 строк и 25 088 столбцов, и моя цель - запустить кластеризацию на них, чтобы найти оптическое сходство среди всех символов. Чтобы сделать то же самое, я должен уменьшить количество переменных (столбцов).

Какой самый оптимальный способ сделать то же самое, и определить, сколько переменных (столбцов) следует ожидать для сохранения для финальная модель?

1 Ответ

1 голос
/ 06 января 2020

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

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...