2009-07-20 13 views
38

Estoy interesado en obtener más información sobre el reconocimiento de patrones. Sé que es algo así como un campo muy amplio, por lo que voy a enumerar algunos tipos específicos de problemas me gustaría aprender a lidiar con:Cómo: reconocimiento de patrones

  • Búsqueda de patrones en un conjunto aparentemente aleatoria de bytes.
  • Reconocimiento de formas conocidas (como círculos y cuadrados) en las imágenes.
  • patrones de movimiento Notando dan una corriente de posiciones (Vector3)

Ésta es una nueva área de experimentación para mí personalmente, y para ser honesto, simplemente no sé por dónde empezar :-) I' Evidentemente, no busco las respuestas que se me proporcionarán en bandeja de plata, pero algunos términos de búsqueda y/o recursos en línea en los que puedo comenzar a familiarizarme con los conceptos de los dominios problemáticos anteriores serían asombrosos.

Gracias!

PS: Para el crédito adicional, si dichos recursos proporcionan ejemplos de código/discusión en C# sería gran :-) pero no tiene por qué ser

+2

Me alegro de que esta pregunta interesante no haya sido etiquetada como demasiado amplia o "Pedir tutoriales no esté relacionado con el tema" como claramente lo es, porque me beneficio de los enlaces en las respuestas. – Roland

+0

@Roland de hecho ... Pregunté esto en los primeros días de StackOverflow, cuando querían tener preguntas y respuestas canónicas que se mejorarían con el tiempo y se indexarían en consecuencia. Ojalá las cosas vuelvan a eso, he aprendido mucho de las respuestas aquí también :) –

Respuesta

26

ocultos de Markov son un gran lugar para buscar, así como Artificial Neural Networks.

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

Edición 2: También puede consultar ITK, también es de código abierto e implementa muchos de estos tipos de algoritmos.

Edición 3: Aquí hay una muy buena intro to neural nets. Cubre muchos de los conceptos básicos e incluye el código fuente (aunque en C++). Implementó un algoritmo de aprendizaje no supervisado, creo que puede estar buscando un backpropagation algorithm supervisado para entrenar su red.

Editar 4: Otro good intro, evita las matemáticas realmente pesadas, pero proporciona referencias a un montón de ese detalle en la parte inferior, si quieres profundizar en él. Incluye pseudocódigo, buenos diagramas y una larga descripción de la retropropagación.

1

yo no soy un experto en esto, pero leer sobre Hidden Markov Models es una buena manera de comenzar.

0

el aprendizaje de patrones recoginition es más fácil en Matlab ..

Hay varios ejemplos y no son funciones para su uso.

es bueno para los conceptos de comprensión y experimentos ...

Modelos
+2

No hay información en tu respuesta ... – LordT

4

OpenCV tiene algunas funciones para el reconocimiento de patrones en las 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 llamaría documentación útil para un principiante - ver otras respuestas)

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

2

Lote de enlaces útiles en this page en reconocimiento de patrones relacionados con la visión artificial.Algunos de los enlaces parecen estar rotos ahora, pero puede que les resulte útil.

4

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

Puedes comenzar con la wikipedia.

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

4

Esta es una especie de una vieja pregunta, pero es relevante por lo que pensé que había puesto aquí :-) Stanford comenzó a ofrecer una clase de máquina de aprendizaje en línea aquí - http://www.ml-class.org

0

lo recomiendo comenzando con alguna caja de herramientas de MATLAB. MATLAB es un lugar especialmente conveniente para empezar a jugar con cosas como esta debido a su consola interactiva. Una buena caja de herramientas que usé personalmente y 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 también hay muchas otras cajas de herramientas que puedes probar (incluso hay un proprietary toolbox de Mathworks)

Cuando te sientas cómodo con las diferentes herramientas (y descubres qué clasificador está desempeñando mejor para su problema), puede comenzar a pensar en implementar el aprendizaje automático en una aplicación diferente.

1

¡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 inversión de moneda. Ningún buen proceso para el reconocimiento de patrones debe ser 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 referencia para la fuerza de un patrón que se puede encontrar en datos aleatorios (a.k.a "null"). Este tipo de técnica puede ayudarlo a evaluar la "tasa de descubrimiento falso" de sus hallazgos.

Cuestiones relacionadas