¿Cuál es una buena manera de construir un algoritmo de aprendizaje automático para reconocer patrones?

Los algoritmos de aprendizaje automático (ML) actualmente no son buenos para el tipo de reconocimiento de patrones al que se refiere:

It9s = Es

You9ll = Vas a

Don9t =?

Esto parece requerir razonamiento y no solo mapeo de un espacio vectorial a otro. Los modelos ML actuales son excelentes para mapear vectores de entrada a vectores de salida, pero no razonan. Por lo tanto, para resolver este problema, necesitamos una forma de razonamiento en las máquinas y muchos de esos datos de entrenamiento.

Por lo tanto, el modelo cercano a lo que estamos buscando es una red de memoria que es básicamente una red neuronal típica (NN) conectada a un bloque de memoria para el almacenamiento de datos. Las redes de memoria pueden razonar hasta cierto punto y una de las versiones más interesantes de NN aumentadas de memoria es la computadora neural diferenciable (DNC). Estos sistemas pueden aprender a descubrir algunos hechos y patrones que de otro modo serían difíciles de descubrir para un modelo de ML de mapeo.

Las redes neuronales recurrentes (RNN) también se están completando. Por lo tanto, pueden aprender ese patrón cuando se les proporcionen suficientes ejemplos. De hecho, la memoria a corto y largo plazo (LSTM) es un tipo de red de memoria y, por lo tanto, de alguna manera puede razonar, bueno, un poco. Turing completo significa poder evaluar cualquier función computacional.

Por lo tanto, el siguiente es el enfoque que puede utilizar para construir dicho modelo de ML.

  • Use incrustaciones de palabras usando word2vec como la primera etapa de procesamiento. Las palabras se pueden representar de manera compacta de esa manera en lugar de usar un vector largo codificado en caliente.
  • Utilice una red de memoria, como la máquina de tural neural (NTM) o el DNC. Estos sistemas se están completando y pueden descubrir patrones interesantes en los datos. También pueden aprender un método para resolver problemas como los acertijos. Por lo tanto, es más probable que resuelvan este.
  • O use un RNN, especialmente aquellos que no tienen problemas de dependencia a largo plazo, como el LSTM y las redes de unidad recurrente cerrada (GRU). Al estar también completa, estas redes también pueden resolver el problema.

Pero no estoy seguro de cómo tal modelo puede funcionar en ese problema anterior. La única forma de saberlo es compilarlo y probarlo con los datos.

Espero que esto ayude.

La forma de hacerlo es crear un gran conjunto de datos de entradas y las salidas apropiadas.

Luego, le aplicaría algoritmos: podría mirar n-gramas (parece la opción obvia), pero la nueva novedad en este espacio es el aprendizaje profundo de secuencia a secuencia (se puede encontrar un buen artículo en Machine Learning is Fun) Parte 5: Traducción de idiomas con aprendizaje profundo y la magia de las secuencias).

Mediante el proceso de eliminación, se puede encontrar la ‘buena manera’ de construir un reconocedor de patrones. Primero intente todas las ‘malas maneras’, luego continúe, hasta que tenga éxito. Con paciencia y práctica, encontrará cada vez menos métodos “malos”.

El ejemplo proporcionado es un cifrado de sustitución. Afortunadamente se puede resolver mediante el método de Markov Chain Monte Carlo. Lea: Descifrar texto de cifrado clásico usando la cadena de Markov Monte Carlo por Jian Chen y Jeffrey S. Rosenthal

Espero eso ayude

Entonces, en primer lugar, este patrón es obvio para un humano. En general, estas son las tareas en las que ML no está bien diseñado, ya que ML generalmente encontrará dicho patrón, pero lo ofuscará debido a los otros datos que probablemente no le interesen, pero el algoritmo no tiene forma de entenderlo. En cambio, aquí debería usar un clasificador elemental o algún tipo de técnica lingüística / PNL, ya que esto es muy básico y ML no es la herramienta adecuada. El hecho de que ML sea una herramienta poderosa no significa que sea apropiado para todas las tareas, a pesar de lo que Quora pueda hacerle creer. En general, el reconocimiento de patrones es algo que las redes profundas entre otras herramientas de ML están bien equipadas para su manejo, pero para algo como esto, podría escribir una simple pieza de código en cualquier idioma para descifrar esto. Alternativamente, si usara ML, usar algo extremadamente elemental como un MLP haría el trabajo (este es un problema de clasificación lineal, por lo que es posible que ni siquiera la parte ML de MLP …)

More Interesting

Cómo pasar de ser 'cero' a 'héroe' en Machine Learning usando Python

¿Cuáles son algunos buenos proyectos potenciales de IA?

¿Puede la inteligencia artificial crear otra inteligencia artificial más inteligente que todas las inteligencias artificiales?

¿Cómo funciona la inteligencia artificial?

¿Cuáles son las mejores pruebas de Turing en línea para engañar a un humano?

¿Hay una IA que no pasó la prueba de Turing intencionalmente?

¿Está explorando diferentes algoritmos de aprendizaje automático y qué tipo de conjunto de datos funcionan mejor con un buen tema de Math HL IA?

¿Por qué la IA más avanzada es naturalmente más agresiva?

¿La API abierta de Seldon para algoritmos de aprendizaje automático acelerará las mejoras en las IA?

¿Hasta qué punto podrían Stephen Hawking y Elon Musk tener razón sobre los peligros de la inteligencia artificial? ¿Cuáles son tus pensamientos?

Si Sophia the Android obtuvo la ciudadanía, ¿puede un sistema que ejecute la IA de Sophia también obtener la ciudadanía?

¿Cómo pueden los robots reemplazar a los humanos? ¿Cuándo se estima que esto ocurra?

¿Qué universidades debe considerar un indio con obligaciones familiares para su doctorado en Machine Learning / Deep Learning / AI?

¿Puede una red neuronal tener datos no estructurados y estructurados al mismo tiempo que una entrada (por ejemplo, si uno está usando el NN para la atención médica)?

Cuando la gente dice que la teoría de la red neuronal artificial es incompleta, ¿qué quieren decir?