Cómo: Reconocimiento De Patrones


Estoy interesado en aprender más sobre el reconocimiento de patrones. Sé que es un campo amplio, así que enumeraré algunos tipos específicos de problemas con los que me gustaría aprender a lidiar:

  • Encontrar patrones en un conjunto aparentemente aleatorio de bytes.
  • Reconocer formas conocidas (como círculos y cuadrados) en imágenes.
  • Notando patrones de movimiento dado un flujo de posiciones (Vector3)

Esta es una nueva área de experimentación para mí personalmente, y ser honestamente, simplemente no sé por dónde empezar: -) Obviamente no estoy buscando las respuestas que se me proporcionen en bandeja de plata, pero algunos términos de búsqueda y/o recursos en línea donde pueda comenzar a familiarizarme con los conceptos de los dominios de problemas anteriores serían increíbles.

Gracias!

pd: Para obtener crédito adicional, si dichos recursos proporcionan ejemplos de código / discusión en C # sería grandioso: -) pero no necesita ser

Author: Janusz, 2009-07-20

9 answers

Los Modelos ocultos de Markov son un gran lugar para buscar, así como Las Redes Neuronales Artificiales.

Editar: Puedes echar un vistazo a NeuronDotNet, es de código abierto y puedes hurgar en el código.

Edit 2: También puedes echar un vistazo a ITK, también es de código abierto e implementa muchos de estos tipos de algoritmos.

Editar 3: Aquí hay una bastante buena introducción a las redes neuronales. Cubre muchos de los conceptos básicos e incluye código fuente (aunque en C++). Implementó un algoritmo de aprendizaje no supervisado, creo que puede estar buscando un algoritmo de backpropagation supervisado para entrenar su red.

Edit 4: Otra buena introducción, evita las matemáticas muy pesadas, pero proporciona referencias a muchos de esos detalles en la parte inferior, si quieres profundizar en ello. Incluye pseudo-código, buenos diagramas, y una larga descripción de retropropagación.

 28
Author: Gabe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-20 15:24:56

Esto es como decir "Me gustaría aprender más sobre electrónica.. ¿alguien me dijo por dónde empezar?"El reconocimiento de patrones es todo un campo - hay cientos, si no miles de libros por ahí, y cualquier universidad tiene al menos varios (probablemente 10 o más) cursos a nivel de posgrado sobre esto. Hay numerosas revistas dedicadas a esto también, que han estado publicando durante décadas ... Congreso ..

Puede comenzar con el wikipedia.

Http://en.wikipedia.org/wiki/Pattern_recognition

 4
Author: Larry Watanabe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-20 14:20:17

Esta es una pregunta antigua, pero es relevante, así que pensé en publicarla aquí :-) Stanford comenzó a ofrecer una clase de Aprendizaje Automático en línea aquí - http://www.ml-class.org

 4
Author: Joel Martinez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-17 13:43:05

OpenCV tiene algunas funciones para el reconocimiento de patrones en imágenes.

Es posible que desee ver esto: http://opencv.willowgarage.com/documentation/pattern_recognition.html . (enlace roto: lo más cercano en el nuevo documento es http://opencv.willowgarage.com/documentation/cpp/ml__machine_learning.html , aunque ya no es lo que yo llamaría documentación útil para un principiante-ver otras respuestas)

Sin embargo, también recomiendo comenzar con Matlab porque OpenCV es no es intuitivo de usar.

 4
Author: levesque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-12 20:46:07

Muchos enlaces útiles en esta página en el reconocimiento de patrones relacionados con la visión por computadora. Algunos de los enlaces parecen estar rotos ahora, pero puede que te resulte útil.

 2
Author: Indy9000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-20 14:13:25

No soy un experto en esto, pero leer sobre Modelos ocultos de Markov es una buena manera de comenzar.

 1
Author: Otto Allmendinger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-20 13:58:52

Cuidado con los patrones falsos! Para cualquier conjunto de datos decentemente grande, encontrará subconjuntos que parecen tener un patrón, incluso si se trata de un conjunto de datos de giros de monedas. Ningún buen proceso para el reconocimiento de patrones debe estar sin técnicas estadísticas para evaluar la confianza de que los patrones detectados son reales. Cuando sea posible, ejecute sus algoritmos en datos aleatorios para ver qué patrones detectan. Estos experimentos le darán una línea de base para la fuerza de un patrón que se puede encontrar en aleatorio (también conocido como " null") datos. Este tipo de técnica puede ayudarlo a evaluar la "tasa de descubrimiento falso" para sus hallazgos.

 1
Author: Brian Risk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-11 18:44:08

Learning pattern-recoginition es más fácil en matlab..

Hay varios ejemplos y hay funciones para usar.

Es bueno para la comprensión de conceptos y experimentos...

 0
Author: ufukgun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-20 14:01:06

Recomendaría comenzar con alguna caja de herramientas de MATLAB. MATLAB es un lugar especialmente conveniente para comenzar a jugar con cosas como esta debido a su consola interactiva. Una buena caja de herramientas que personalmente usé y que realmente me gustó es PRTools (http://prtools.org ); tienen una implementación de casi todas las herramientas de reconocimiento de patrones y también algunas otras herramientas de aprendizaje automático(Redes Neuronales, etc.). Pero lo bueno de MATLAB es que hay muchas otras cajas de herramientas también puede probar (incluso hay una caja de herramientas propietaria de Mathworks)

Cada vez que se sienta lo suficientemente cómodo con las diferentes herramientas (y descubrió qué clasificador funciona mejor para su problema), puede comenzar a pensar en implementar el aprendizaje automático en una aplicación diferente.

 0
Author: Gerard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-18 22:26:33