Críticas al aprendizaje profundo

El aprendizaje profundo es la manera que tenemos de definir cómo “aprende” un algoritmo. Se basa, de manera resumida, en la idea de que puedes ajustar un algoritmo a medida que comete errores. De manera repetida se prueba si el algoritmo está teniendo un resultado deseado cuando se le pide realizar una actividad. Cada una de las “operaciones” que realiza en cada una de las “capas” por las que es separado es medida y ajustada en función de su efectividad a la hora de ejecutar aquella tarea que se le ha pedido. A medida que se van ajustando las capas y se va corrigiendo a sí misma, será más eficaz, al menos en teoría, a la hora de realizar las tareas que se le piden.

Sin embargo, uno ya puede ver qué implica el realizar estas actividades de manera repetida. Es fácil ver que la cantidad de información que necesita para ir mejorando su actividad es enorme. No sólo eso, sino que requiere de realizar una actividad de manera repetida millones de veces para mejorar. A esto hay que sumarle el tipo de actividades a los que ello le limita, que tienen que ser por fuerza aquellas que se puedan realizar fácilmente mediante el aprendizaje por prueba y error, que suelen ser aquellas relacionadas con conceptos que tengan características muy definidas (lenguaje, cálculo, imágenes...) y que aún así, como estos tienden a tener variaciones (modismos, interpretaciones, improvisación...) errarán o generalizarán para no errar, haciendo que la creatividad se marchite y los resultados sean limitados.

Algo similar decía Gary Marcus, experto en redes neuronales. Especifica que las redes neuronales (sistemas que usan aprendizaje profundo) son buenas realizando actividades de clasificación. Sería así sencillo para un sistema neuronal identificar un sonido con una palabra, incluso si el sonido está un poco alterado, aunque cuanto más se aleje de los sonidos con los que está entrenado, más errará (por ejemplo, acentos extraños o palabras que se empleen en pocos lugares, que uno podría identificar por asociación, pero no estas máquinas). Lo mismo ocurre con las imágenes. Sabiendo interpretar elementos concretos de una imagen, podrías proporcionar a una red neuronal la imagen de un avión y sabrá identificarlo como avión, pero si le pides que te “dibuje” un avión, te lo hará tan estereotípico como le hayan enseñado y si le especificas las características, serán esas y no otras las que modificará (aunque podría ajustar en relación a lo que asocie a esas especificaciones, pero ese es otro tema).


Concepto de una red neuronal simple, sustituyendo nodos por personas. Fuente: Pixabay

En general, le encontraba varias limitaciones, que podemos asociar con lo mencionado más arriba. Las resumía en 10. La primera es que como requieren muchos datos para “aprender” a hacer algo, cuando los datos sobre un tema escasean, no es posible “enseñarle” correctamente. La segunda es que “no entienden”. Es decir, si les pides algo que no sea lo que se les haya enseñado específicamente, si lo varías un poco, por lo general dan respuestas muy genéricas. La tercera es que no son buenas con las jerarquías, no se les da bien identificar en una frase las partes más importantes, sino que dan la misma importancia a todas las palabras o fragmentos de la frase. La cuarta es que no se le da bien “leer entre líneas”. Mientras que es perfectamente capaz de identificar cada elemento de un texto, no es capaz de deducir la tendencia de la historia, las intenciones de los personajes, aquellas partes que se encuentran de manera implícita, en general, sólo aquellas que son explícitas. La quinta es que debido a las capas de las que están formadas las redes neuronales, la mayoría de sus procesos quedan ocultos y resultan sistemas muy opacos e inaccesibles, a diferencia del código de programación convencional. La sexta es que no son entrenadas con el conocimiento previo necesario para “comprender” un concepto. Mediante el análisis de miles de casos de derrumbes, podrá predecir cómo caerá una estructura u otra, pero sin saber de las leyes que gobiernan esas caídas (las Leyes de Newton). La séptima es que no son capaces de distinguir causalidad y correlación (para ser justos, muchos humanos tampoco). Podría asociar una cosa con otra sin saber si una implica la otra o no. La octava es que su utilidad se limita bastante a situaciones predecibles. Mientras que no será eficaz en deducir las variaciones que tendrá la bolsa, o predecir el clima, será capaz de indicar el resultado de una operación matemática o la jugada óptima en un juego de mesa. La novena es que por razones dadas anteriormente, su uso se limita a realizar aproximaciones, ya que no son del todo fiables. Por último tenemos la décima, que es que no pueden emplearse en ingeniería, ya que aunque se les entrene con ciertos casos y con los datos de estos, se puedan emplear es casos similares, en cuanto se varíen algunos datos los resultados dejan de ser fiables, haciendo que no se puedan emplear en ingeniería robusta.

A todo esto, yo quisiera añadir el consumo de energía y agua que requieren estos sistemas. Son entrenados de manera repetida y continua, haciendo que haya que mantener los sistemas que los sostienen en activo y refrigeradas durante todo ese tiempo. En general, aunque en un futuro se desarrollen sistemas que superen las limitaciones que hemos visto, me parece sensato limitar su uso a investigación para impedir un consumo desmedido de recursos y ya cuando se tenga la tecnología necesaria para paliar las limitaciones mencionadas y sean más amables con el medio ambiente, entonces me parece que podríamos empezar a pensar que pueden ser realmente útiles y, siempre que sea de manera responsable, emplearlos en diversos entornos para beneficio de todos (y no de unos pocos como suele ocurrir).

Comentarios

Entradas populares de este blog

Cultura Científica en base a tres definiciones

Límites al Algoritmo A* (A-Estrella)

"No mires arriba", el análisis del análisis