El proceso de reconocer cosas, como un sonido, comida, un depredador, una imagen, un amigo, un sabor, entre otras cosas, es algo que lo hacemos de forma inconsciente, pero que nos permite adaptarnos a nuestro entorno y puede ser clave en el momento de la supervivencia [1].
Esta habilidad natural que tiene prácticamente todo ser vivo nos lleva a varias preguntas que nos pueden llevar al terreno filosófico: ¿cómo identificamos cosas?, ¿qué proceso hace que nuestra mente resuelva fácilmente este tipo de problemas?, ¿cómo podemos abstraer conceptos?, o más globalmente, ¿cómo y por qué funciona nuestro cerebro?
Estas preguntas son importantes para varias ramas de la ciencia, como la biología, la psicología y la neurología las cuales, en menor o en mayor medida, tienen como objeto de estudio la mente. Sin embargo, esta pregunta es también importante para las personas que trabajamos en las ciencias de la computación, dado que desde un principio la computadora se pensó como un intento por simular el cerebro humano, con el fin realizar tareas que pudieran ser tediosas, complejas o simplemente para facilitar nuestra forma de vivir. Éstas, entre otras razones, han llevado a gente que trabaja en psicología y neurología a inmiscuirse en la computación y viceversa, pero... las preguntas siguen sin respuesta.
Una de las principales cosas que observamos quienes nos dedicamos a tratar de resolver este tipo de problemas en una computadora, es que la solución general es muy complicada, dado que son muchos los factores que están involucrados en el proceso de reconocer.
Se recomienda al amable lector que haga un ejercicio: observe cualquier objeto, digamos un auto, y piense en todas las posibles características que lo hacen ser un auto; encontrará que tal vez tenga un color de pintura, que usa algún tipo de combustible, que usa neumáticos, que tiene transmisión automática o estándar, que tiene un cierto rango de dimensiones, y otras muchas características.
Note usted que la descripción de cada una de estas características (que llamaremos rasgos), a su vez implica una descripción y que algunas pueden medirse para obtener un valor numérico (como las dimensiones) y otras no (como la belleza).
Ahora piense en un camión, mencione sus características y a su vez piense en cómo se diferencia del auto. A continuación trate de imaginar cómo resolver el problema de diferenciar (clasificar) entre un auto y un camión, usando una computadora, y seguramente usted se percatará de que hay rasgos que nos ayudan a diferenciar mejor que otros. De estos procesos, que consisten en la extracción y selección de rasgos, depende en gran medida si podemos resolver o no el problema en la computadora.
Una vez que sabemos qué rasgos utilizar, necesitamos encontrar un método que pueda simularse en la computadora que de alguna forma compare el conjunto de rasgos (que llamaremos patrón) del auto con los del camión y es aquí donde nos topamos con otro problema: ¿qué método ocupar?, y ¿cómo le hago para, en una computadora, comparar cosas que no se pueden medir?.
El problema se hace más complejo cuando nos damos cuenta de que el proceso que se utilice, tal vez ya no funcione si ahora también queremos diferenciar entre un auto deportivo y uno sedán, y así podríamos enumerar un sinfín de problemas relacionados con objetos, seres vivos, conceptos e ideas abstractas, que están presentes en el entorno en que se desenvuelven los seres humanos.
La rama interdisciplinaria de las ciencias de la computación que se encarga de resolver este tipo de problemas se denomina Reconocimiento de Patrones, el cual incluye entre sus principales tareas a la clasificación y a la recuperación de patrones.
Los principales enfoques de Reconocimiento de Patrones son los siguientes:
Se recomienda al amable lector que continúe en la sección: Clasificadores de Patrones: Asociativos y k-NN
[1] Sánchez Garfias, F.A., Díaz-de-León Santiago, J.L. & Yáñez Márquez, C. (2004). New Results on the Lernmatrix Properties, in Figueroa-Nazuno, J., Gelbukh-Kahn, A., Yáñez-Márquez, C. & Camacho-Nieto, O. (Eds.) "Advances in: Artificial Intelligence, Computing Science, and Computer Engineering", Special Edition, Research on Computing Science Series, Vol. 10, ISBN 970-36-0194-4, CIC-IPN, México, pp. 91-102.