Nube de Etiquetas
(Ah?)

miércoles, enero 30, 2008

Máquinas de Aprendizaje ¿con Investigación de Operaciones?

El tema del "Machine Learning" o de las Máquinas de Aprendizaje es un tema que en principio está en el terreno de la inteligencia artificial, pues cuando queremos que una "máquina" (en general un "ente" artificial) aprenda, básicamente estámos tratando de emular la forma en que el ser humano, a partir de su experiencia, logra tomar deciciones apropiadas, y esto, evidentemente, es parte de lo que llamamos "inteligencia".

Claro que este blog no es un blog de inteligencia artificial, sino de Optimización y Máquinas de Aprendizaje. Así que de ahí se puede desprender una razonable sospecha de que no voy a tratar a las máquinas de aprendizaje de modo general, sino sólo en los aspectos que tiene en común con el área de la Opimización (métodos prescriptivos de Investigación de operaciones, que comenté en un post anterior).

¿Y cuáles son esos tópicos de Máquinas de Aprendizaje que tienen que ver con Optimización? No pretendo en esto mostrar una lista completa de los tópicos, ya que mis conocimientos no abarcan con suficiente profundidad todos los tópicos de las Máquinas de Aprendizaje. Simplemente diré en respuesta a ello, me referiré en particular a los Algoritmos de Aprendizaje Supervisado.

El Aprendizaje Supervisado, como casi todos los tópicos de Máquinas de Aprendizaje, ha sido atacado desde enfoques estadísticos, de redes neurales, y ciencias teóricas de la computación. Son raros los casos en los que se enfrentan estos problemas desde el enfoque de la optimización. En particular, el área del "Data Mining" o Minería de Datos tiene importantes exponentes del área de optimización como lo son las diferentes técnicas de las famosas SVM o Máquinas de Vectores de Soporte.

Estas tienen como particularidad que minimizan el error de clasificación empírico (de allí que sean de Aprendizaje Supervisado) al mismo tiempo que maximizan la distancia que tiene la superficie separadora de las dos clases respecto a los elementos de esas clases que separa. Los problemas de minimización o maximización siempre buscan el comportamiento óptimo de un sistema. En este caso, la función a optimizar es al mismo tiempo los errores y el mencionado margen. Esta optimización simultánea fue deducida por Vapnik como parte de los aportes colaterales de sus nuevas propuestas en el área de la estadística, con apoyo de Chervonenkis.

Hay otros métodos de optimización que atacan problemas de Minería de Datos, por supuesto. Uno de ellos que me parece extremadamente interesante, aunque luego de su surgimiento no ha habido grandes avances en ese respecto, son los métodos "multi-superficie". En ellos se generan, siguiendo una estrategia "golosa", múltiples superficies, que seccionan el espacio en el que se encuentran los elementos a ser clasificados. La máquina de aprendizaje resultante no hace otra cosa que evaluar en cuál de las áreas delimitadas por esas superficies está el individuo que se desea clasificar. La respuesta es: la misma clase que tienen mayoritariamente los individuos de esa área.

Este tipo de estrategias generan, como sub-producto de su uso, el diseño de una red neural (perceptrón multicapa), o un árbol de clasificación.

En mi opinión es muy interesante el hecho de que algoritmos como estos puedan generar redes neurales de clasificación binaria "sin intervención humana". Es bien sabido en la comunidad de las redes neurales, que resolver un problema con redes neurales, la mayor parte de los casos puede considerarse no sólo una ciencia sino un arte, debido a que hay muchas decisiones "arbitrarias" que tomar, y que por ende provocan largas sesiones de ensayo y error, tanteo, o entonamiento. Hay que decidir, cuantas neuronas usar, de qué tipo, conectadas en qué forma, y por si fuera poco, luego decidirse por una estrategia para el entrenamiento.

El uso de algoritmos que propongan ya de por si la estructura y parámetros de la red, hace que el proceso de construír una red neural de clasificación deje de ser un arte, para empezar a convertirse en un proceso ya automático.

Por último, en este post de reflexiones sobre el uso de la optimización para resolver problemas de máquinas de aprendizaje, quiero asomar una idea. Invariablemente, la construcción de máquinas que aprendan a hacer clasificación binaria, basándose en los errores, implica el uso de técnicas para conseguir parámetros óptimos para esas máquinas. En el caso de las redes neurales como los Perceptrones Multicapa, es común el uso de algoritmos asociados al Backpropagation. Mi comentario es el siguiente: desde el punto de vista de optimización, la forma en que se plantea el problema que resuelve la retropropagación, es el tipo de problemas que todo optimizador quiere evitar, ya que:
* la función a optimizar no es convexa
* hay abundancia de óptimos locales
* hay abundancia de puntos estacionarios en los que un algoritmo de optimización fácilmente "cree haber llegado".

Para evitar algunos de esos problemas, se "distorciona" la función de transferencia de las neuronas del perceptrón multicapa, para que la función sea una sigmoidal "suave", en lugar de una función tipo "escalón", lo que da orígen a clasificaciones difusas (sin que en ello esté involucrada la batería de herramientas de las que se aprovisiona la lógica difusa para resolver estas situaciones).

Bueno, es probable que el 99.99% de las personas que lean esto se pregunten ¿y cómo piensa Orestes entrenar un perceptrón sin usar los principios de la retropropagación? Bueno. La respuesta es: buscándole la vuelta al problema, para sólo resolver problemas convexos. Más adelante les seguiré contando.

No hay comentarios.: