DIGITALIA

Por Sebastián García  

Es casi imposible no haber escuchado, alguna vez, el concepto de algoritmo. Su definición  en un perfecto criollo no es más que un conjunto de instrucciones ordenadas, las cuales  tienen elementos de entrada y elementos de salida. Un perfecto ejemplo es la receta de  cocina, tenemos una lista de ingredientes, una serie de instrucciones – los que somos  novatos con el arte de la cocina las seguimos al pie de la letra – y una salida, el plato.  

Sin saberlo, desde niños nos están enseñando algoritmos. En la escuela hemos aprendido  a sumar y dividir, nuestros padres nos enseñaron a lavarnos los dientes y a cruzar la calle.  

Todos conjuntos de instrucciones, que repetimos una y otra vez para obtener un mismo  resultado.  Desde hace décadas, los informáticos se han especializado en convertir todo lo que han  podido en algoritmos. Siendo esto posible, se alcanza el deseado objetivo de tener un  conjunto de instrucciones para que las tareas puedan ser automatizadas. La diferencia con  la receta de cocina es que las instrucciones no se escriben en lenguaje natural, sino es un  lenguaje de programación, un lenguaje que una computadora pueda comprender. Los  ingredientes y el plato, esto es, la entrada y salida del algoritmo, son simplemente datos.  

Gracias a este ejercicio, se han podido automatizar tareas, a partir del conocimiento  humano. A modo de ejemplo, a partir de la experiencia de frenado de un automóvil, fue  posible programar un algoritmo para que la computadora del vehículo pueda activar el  sistema de frenado tal como si quien presiona el freno fuera siempre un experto y  experimentado conductor. Los aviones disponen, desde hace décadas, de sistemas de  piloto automático. Dicho de otra forma, la experiencia de pilotos convertida en una serie de  algoritmos.  

Muy buena parte del funcionamiento del mundo hoy depende de los algoritmos. Decenas de  millones, desarrollados por miles de personas. Algoritmos que interactúan, como cajas  negras que se conectan unas con las otras, desarrolladas por personas que jamás se  conocieron, conformando complejísimos sistemas que conectan miles de algoritmos. A  modo de ejemplo, un celular Android tiene como mínimo 12 millones de líneas de código y  un Boing 787 6.5 millones. Estas líneas de código componen miles de algoritmos que  interactúan, colaboran y son constantemente mantenidos por miles de ingenieros.  

Como mencionamos líneas más arriba, los algoritmos son la experiencia humana convertida  en una serie clara de instrucciones, que se ejecutarán millones de veces, siempre  efectuando la misma tarea. Desde hace ya medio siglo, el mundo habla – seriamente – de  inteligencia artificial.

Pensemos por un momento, en la inteligencia artificial como la  habilidad que tienen las computadoras en imitar la capacidad cognitiva de los seres  humanos. Hace décadas que ya existen juegos de computadora, por ejemplo, ajedrez, que  intentan desafiar al jugador humano ¿Cómo está hecho esto? Con algoritmos. La  experiencia de uno o varios jugadores de ajedrez convertidas en un conjunto de  instrucciones. El dato de entrada, la movida del jugador humano y las posiciones de las  piezas en el tablero. La salida, cuál es la próxima movida del jugador artificial.  Un conjunto  de algoritmos está intentando imitar al jugador de ajedrez, pues claro, su comportamiento se  basa en el conocimiento de éstos.   

Todos los sistemas que estamos describiendo tienen una característica clara, ejecutan  acciones tal como un autómata. Sigamos por un momento con el juego de ajedrez. 

La  computadora podría ganarle decenas o cientos de veces a un jugador humano, pero en  algún momento va a perder. Aquí, en este preciso momento, la experiencia del jugador  humano prevaleció. En otras palabras, el jugador humano incorporó a su experiencia el  conocimiento que fue adquiriendo de las diferentes partidas jugadas contra la computadora.  

Es éste un aspecto muy relevante y que juega a favor del humano ¡Él logró aprender! La  computadora seguirá ejecutando sus algoritmos, exactamente de la misma monótona  manera, gane o pierda, no cambiará su algoritmo. Éste, es como si fuera un conjunto de  cables y circuitos soldados, no cambiarán su forma de acuerdo a los cambios en el contexto  que lo rodea. La inteligencia artificial emuló la capacidad del ser humano en jugar partidas  de ajedrez, pero no logró incorporar un aspecto fundamental: aprender. No fue capaz de  incorporar nuevo conocimiento al que le fue transmutado en algoritmos por sus creadores.  

Desde fines de los años 50 los científicos han estado trabajando en incorporar a la  inteligencia artificial la capacidad de aprender, y aún hoy lo siguen haciendo bajo el auspicio  de importantes fondos económicos para investigación y desarrollo. Esta subárea de la  inteligencia artificial fue acuñada por Arthur Samuel en 1959 como Aprendizaje Automático.  

En los últimos 60 años se han desarrollado diferentes abordajes teóricos y prácticos para  que las computadoras tengan la capacidad de incorporar conocimiento y experiencia, y no  es en absoluto exagerado afirmar que esta idea cambió para siempre la historia de la  humanidad. La capacidad de aprender que hoy tienen las máquinas no deja de sorprender  ni a los propios ingenieros que trabajan en el área. Las aplicaciones de nuestros teléfonos,  solo a modo de ejemplo, aprenden de nuestro comportamiento y se adaptan a nosotros,  detrás de esto se esconde la mayor industria de nuestra era, este tema lo abordaremos en  profundidad en otras columnas.  

Para diluir – y en lo posible hacer desaparecer – el halo de misticismo que rodea a la  

Inteligencia Artificial, parece mandatorio abordar los fundamentos sobre cómo funciona la  capacidad de aprendizaje de las computadoras. Como punto de abordaje, es interesante  analizarlo desde la perspectiva del aprendizaje humano. John Locke ya en el siglo XVII  abordó seriamente el sistema de aprendizaje humano en su Ensayo Sobre el Entendimiento  Humano.

En este magnífico trabajo, dividido en cuatro libros, profundiza sobre los  mecanismos a través de los cuales los humanos nos hacemos de conocimiento. En el  segundo libro aborda cómo nuestra especie adquiere el conocimiento a partir de la  experiencia, cosa que demuestra en una serie de enunciados. Se pregunta ¿De dónde se  hace la mente con ese prodigioso cúmulo [de conocimiento]?

Respondiendo a esto contesta  con una sola palabra: de la experiencia. Cuando somos niños, nuestros maestros no logran  transmitirnos todo el conocimiento a partir de algoritmos. Incluso, el conocimiento que  adquirimos de esta forma – por ejemplo, aprender a hacer una multiplicación – requiere de  experiencia para poder incorporarlo. Buena parte del conocimiento que anexamos a nuestra  mente, a decir de Lock, lo hacemos por medio de la observación. Intentemos pensar cómo  un adulto podría transmitirle a un niño qué cosa es un perro por medio de instrucciones o  descripciones ¿Un animal con pelo en todo el cuerpo, cuatro patas y que se alimenta de  carne? En esta descripción se cuelan muchas especies, es demasiado general.

La mejor  alternativa, parece ser la observación de “ejemplos”. El niño verá un perro, y luego otro y  otro. De esta forma adquirirá con mayor precisión las características del animal, ejercicio  que le permitirá identificarlo. Cualquier otro animal que vea, que se parezca a un perro, lo  identificará como tal.

No es de extrañar que, en nuestra sociedad, la mayoría de los niños -e incluso adultos- identifiquen a un lobo como a un perro. Pues bien, es razonable, no han  visto suficientes “ejemplos” de lobos como para identificarlos con precisión.  

El concepto detrás del aprendizaje de las computadoras se basa en este mismo sistema de  aprendizaje humano. Si una computadora tuviera la capacidad de escribir sus propios  algoritmos a partir de los ejemplos que observa, esto la acercará a la capacidad de  aprendizaje natural. Vamos a detenernos en este punto, este detalle ha cambiado el mundo.   

Pensemos que un equipo de humanos, que ya han incorporado la capacidad de identificar  perros, se toman el trabajo de clasificar miles de fotos de animales. En estas fotos no solo  aparecerán perros de diferentes especies, sino también gatos, elefantes, caballos y algún  otro animal exótico que no sabrá clasificar. Pero eso sí, sabrá afirmar con toda precisión de  que no es un perro. Por lo tanto, la tarea de estos humanos será ver una foto en una  computadora e indicar si se trata de un perro o no. Esta misma tarea la llevarán a cabo  miles de veces, generando miles de “ejemplos etiquetados”.  

Repasemos ahora el concepto de algoritmo. Una serie de instrucciones, ordenadas, que  reciben datos de entrada y generan datos de salida. Si prestamos mucha atención,  podremos ver que el equipo de humanos que está clasificando las fotos de los animales,  está tratando datos de entrada, la foto, y generando el dato de salida, perro o no perro. Aquí  no aparecen las instrucciones aún, es la experiencia humana quien efectúa el  reconocimiento.

Ahora bien, si a partir de los datos de entrada y los datos de salida, un  algoritmo de una computadora lograra escribir otro algoritmo a partir de los datos de entrada  y salida, de forma que este fuera capaz de identificar nuevas fotografías de animales que  nunca “vio”, estamos ante uno de los fenómenos más espectaculares de las últimas  décadas de las Ciencias de la Computación: la máquina está aprendiendo.   

En lugar de recibir la experiencia humana convertida en un algoritmo, recibe solo datos  clasificados por humanos y a partir de esto escribe su propia secuencia de instrucciones,  que le permitirá generalizar los patrones que identifica en las fotos donde aparecen perros.  

Quizás, cuando ese algoritmo, escrito por la propia computadora, comience a clasificar por  sí mismo fotografías de animales de las que nunca aprendió, puede llegar a equivocarse,  clasificando la foto como perro, cuando quizás, sea de la de un gato o la de un muffin. Sí,  leyó bien, el pequeño bizcochuelo con trocitos de chocolate.                                                                                           

En esta última frase incorporamos algunos conceptos fundamentales del aprendizaje de las  máquinas. Cuando pensamos en un algoritmo de división, no hay más de dos opciones de  salida, la computadora hace bien el cálculo o no se equivoca: 3 x 2 es igual a 6, cualquier  otro resultado será considerado como erróneo. Incluso más, no solo que ese resultado será  considerado erróneo, sino que descartamos todo el algoritmo, sin dudas que el programador  que lo escribió cometió algún error. Sin embargo, si la computadora no logra clasificar  correctamente la foto de un perro Chihuahua y sí lo hace correctamente con otros casos,  podemos afirmar que puede aprender más o dicho en términos más técnicos, que debe de  seguir siendo entrenado. Ser entrenado por nosotros, sí, los seres humanos. Se precisa  seguir clasificando algunos cientos o miles de fotos adicionales, quizás ahora con muffins,  pues el mundo real parece algo más complejo.

Más adelante, en otras columnas,  analizaremos cómo esta actividad humana de clasificar imágenes para entrenar  computadoras es el nuevo oficio del siglo XXI, y en algunos casos, hasta un nuevo tipo de  esclavitud moderna.