¿Cuál es el mejor algoritmo de aprendizaje profundo sin supervisión para aprender características de los datos de secuencia biológica?

La mayoría de los enfoques de DL son discriminatorios, es decir, requieren etiquetas de clase para ayudar en la extracción de características. Para el aprendizaje no supervisado, su mejor opción son los codificadores automáticos (AE) [1], que pueden funcionar como modelos generativos para entrenar y extraer características genéricas o de alto nivel (si están apiladas). Hay varios sabores de EA como la eliminación de ruido AE, la AE apilada, la AE dispersa, etc. [2]. Puedes entrenarlos usando la máquina de Boltzman restringida [3]. Un nuevo enfoque probabilístico es utilizar AE variacional [4].

Una respuesta relacionada: la respuesta de Shehroz Khan a ¿Cuál es la mejor manera de hacer una red neuronal capaz de aprender sin supervisión, y cuáles son sus usos?

Editar:

Según la descripción de la pregunta y los comentarios, parece que el tamaño de los datos es muy pequeño. Por lo tanto, un enfoque plausible sería el Modelo Oculto de Markov (HMM). Sin embargo, los HMM son modelos generativos y no se utilizan para aprender características, sino que extrae características y las proporciona como entrada para los HMM.

Notas al pie

[1] Tutorial de aprendizaje de características y aprendizaje profundo sin supervisión

[2] Autoencoders denoising (dA)

[3] Comparación de rendimiento de tres tipos de redes neuronales de autoencoder

[4] [1606.05908] Tutorial sobre autoencoders variacionales

Un algoritmo común de aprendizaje profundo no supervisado es un “codificador automático”. Esencialmente, con una red neuronal normal, puede reducir las características al introducir un cuello de botella mientras realiza un aprendizaje supervisado o (reconstruye la entrada).

[1]

Aparentemente puede mirar los datos en bruto, creando características abstractas a partir de esto (es decir, la capa de cuello de botella) y luego generalizar a partir de estas características abstractas para tomar una decisión. ¿Cómo se usa esto en el aprendizaje no supervisado? Simplemente entrenar a la red en datos supervisados ​​(o reconstruir los datos de entrada) puede enseñarle cómo crear características abstractas. Si “corta” la segunda mitad de la red, puede ingresar nuevos datos y observar el conjunto de características reducidas para realizar un aprendizaje sin supervisión.

Para abordar su problema específico, es improbable que 500 instancias de datos de alta dimensión como el ADN funcionen bien para el aprendizaje profundo de cualquier tipo. Puede tener más sentido aumentar el número de instancias al recopilar más datos o al observar fragmentos más pequeños de ADN para extraer características.

Un ejemplo común de codificaciones automáticas es word2vec que aprende un vector de características de dimensionalidad reducida para cada palabra y le da propiedades interesantes.

Algo similar se está haciendo en bioinformática llamado “Biovectores” o
“Seq2Vec” [2] [3]

[4]

Notas al pie

[1] Descripción general del artículo: Aprendizaje no supervisado de la estructura visual utilizando Pre…

[2] Representación continua distribuida de secuencias biológicas para la proteómica profunda y la genómica.

[3] Aprendizaje profundo para biología computacional

[4] https://arxiv.org/pdf/1608.05949

Irónicamente, creo que con este pequeño conjunto de datos, un modelo de aprendizaje no profundo podría ser el mejor. Me centraría en modelos ocultos de Markov y posiblemente n-gramas.

More Interesting

¿Puedo aprender el algoritmo yo mismo?

¿Cuáles son las estructuras de datos utilizadas en el almacén de datos? ¿De qué manera difieren de las estructuras de datos utilizadas en la base de datos relacional?

¿Cuáles son algunos ejemplos de problemas que son: (1) NP pero no NP-Complete; (2) NP-Completo; (3) NP-Hard pero no NP-Complete?

¿Cuáles son los algoritmos más eficientes que resuelven de manera óptima un cubo de Rubik?

Cómo hacer que esta declaración se entienda a un chico de 18 años

Cómo saber si un algoritmo es [matemática] O (n) [/ matemática], [matemática] O (2n) [/ matemática] o [matemática] O (n ^ 2) [/ matemática]

¿Puedes ser bueno en la programación pero malo en los algoritmos?

¿Es una burbuja una forma muy lenta de ordenar los elementos en comparación con los otros tipos? En caso afirmativo, ¿por qué?

¿Cuál es la mejor manera de ordenar una matriz de objetos en javascript?

¿Qué tipos de problemas se pueden resolver usando algoritmos?

Cómo resolver problemas máximos de subarreglos de productos

¿Qué algoritmos gráficos (10-15, tal vez) sugeriría que hicieran bien en la programación competitiva?

¿Es cierto que si entendemos los algoritmos podemos entender todos los programas difíciles de todos los idiomas?

¿En qué tipo de índices de búsqueda y enfoque se debe trabajar para un sitio web con búsqueda basada en la ciudad (y localidad) de una palabra clave, un ejemplo típico es un directorio web?

Cómo escribir un algoritmo para la suma de n factoriales. es decir, 1! +2! +3! +… (N-1) + n