Создайте автоэнкодер с глубоким убеждением для уменьшения размерности
Я работаю с большим набором данных (около 50 000 наблюдений x 11 000 функций), и мне хотелось бы уменьшить размерность. В конечном итоге это будет использоваться для классификации нескольких классов, поэтому я хотел бы выделить функции, которые полезны для разделения данных. До сих пор я пробовал PCA (выполняется нормально с общей точностью в Linear SVM около 70%), LDA (выполняется с очень высокой точностью обучения около 96%, но точность тестирования составляет около 61%) и автоэнкодер (3 кодировщик с плотным слоем с 13000 - 1000 - 136 единиц соответственно, который работает примерно так же, как PCA). Меня попросили попробовать в этой задаче сеть Deep Belief (стек ограниченных машин Больцмана).
Пока я предвижу две проблемы. Во-первых, у меня есть доступ к графическому процессору, который можно использовать, но я не вижу многих реализаций DBN от основных игроков в сообществе нейронных сетей (например, TensorFlow / Keras, PyTorch), а это означает, что это необходимо реализован на центральном процессоре, поднимая проблему номер два. Во-вторых, реализация этого потребует значительного объема памяти и будет довольно медленной. Это вызывает у меня вопрос: существуют ли какие-либо реализации автоэнкодера DBN на Python (или R), которым можно доверять и которые оптимально используют графический процессор? Если нет, то какой метод построения DBN в Python предпочтительнее? Стоит ли использовать sklearn?
Ответы
В отличие от автоэнкодеров, машины Ботцмана (с ограничениями или без них) не имеют выходного слоя и, следовательно, классифицируются как глубокие генеративные модели.
В Pytorch есть множество реализаций. Этот совместим с графическим процессором (https://github.com/GabrielBianconi/pytorch-rbm), и в прошлом я находил это особенно полезным.
УКР могут быть весьма полезны в различных задачах, таких как
- Снижение размерности
- Совместная фильтрация для рекомендательных систем
- Особенности обучения и другие.
Это было интересное чтение, если вы хотите узнать больше об УКР. https://heartbeat.fritz.ai/guide-to-restricted-boltzmann-machines-using-pytorch-ee50d1ed21a8