Cómo implementar Data Compression + Denoising usando Machine Learning

Codificadores automáticos.

Las técnicas de compresión de datos como PCA, LDA estaban limitadas en términos de sus asignaciones por linealidad. Los codificadores automáticos (un tipo de red neuronal) son más fuertes debido a sus asignaciones no lineales innatas. Puede usar codificadores automáticos para asignar sus entradas a un vector de características de menor dimensión y luego recuperar (al menos en gran medida) sus entradas de estas características de dimensiones reducidas. Los codificadores automáticos también se usan ampliamente para eliminar el ruido de los datos (esta variante es famosa como Denoising-Autoencoders, acertadamente). Por lo tanto, seguramente puede agrupar estas 2 características juntas y obtener vectores de características comprimidos sin ruido para sus datos. Casi todos los marcos de aprendizaje profundo con los que he trabajado admiten codificadores automáticos, por lo que es simplemente una elección basada en su preferencia de lenguaje de programación. Si no tiene mucha experiencia con la codificación, sugeriría comenzar con Caffe (tiene binarios preconstruidos para todo), de lo contrario, puede usar Torch (Lua), Theano / Keras (Python) o Tensorflow (Python) si tiene familiarizado con la programación.

DESCARGO DE RESPONSABILIDAD: No estoy seguro de en qué nivel está familiarizado con los conceptos de Aprendizaje automático o Aprendizaje profundo, por lo que mi respuesta es algo que no debería enfrentar muchos problemas para implementar, incluso si es muy nuevo en este paradigma. ¡Esto NO es lo mejor que puedes hacer!

Qué tipo de datos desea comprimir es una pregunta más importante. Normalmente, la compresión de datos no se trata solo de obtener una buena representación de baja intensidad, sino también de recuperar una buena versión de la imagen. Supongamos que está trabajando en imágenes para esta discusión.

Si está trabajando en un conjunto de datos simple y pequeño como MNIST, algo como Denoising Autoencoders https://www.iro.umontreal.ca/~vi … es lo suficientemente bueno. Sin embargo, esto no funcionará principalmente en imágenes complejas como técnica de compresión de datos, aún podría estar bien para la reducción de la dimensionalidad. Existen enfoques como Ladder Nets https://scholar.google.com/citat … que aumentan el enfoque de autoencoder.

Hay mejores enfoques más nuevos ahora, específicamente aquellos que implican un nuevo trabajo con convoluciones dilatacionales para decodificar como [1606.05328] Generación de imagen condicional con decodificadores PixelCNN y Open Review que personalmente me gustan mucho y también hay enfoques basados ​​en RNN para ello. Redes neuronales

¿Cuál sería la mejor manera de implementar reducción de ruido + compresión de datos? Autoencoder o algo más? Por ejemplo, considere un satélite que captura datos. Estos datos se comprimen y se envían a través de un cuello de botella de red a la estación espacial. En la estación receptora, estos datos se descomprimen y eliminan. Esto puede funcionar para transmisión de video en línea, almacenamiento en disco, etc. El objetivo es que, al igual que Deep Mind, este sistema funcione para todo tipo de datos. Pero digamos que comenzamos con imágenes. Además, ¿cómo sabrá el sistema para una nueva información que hay un ruido en él? Los humanos pueden distinguir fácilmente el ruido.

El problema es que el autoencoder es bueno para eliminar ruidos pero no para comprimir datos. Entonces, ¿podemos diseñar un sistema híbrido? Y lo más importante, ¿cómo implementar esto?

La siguiente es la arquitectura de este sistema.