Gracias a algunos algoritmos, una serie de clics (en Instagram, Facebook, etc.) te han podido llevar a esta particular noticia de Univerzoom. Además, en el momento que entraste, el algoritmo tomó nota de eso. Por otro lado, algunos algoritmos pueden decidir lo que te aparece cuando ves la página de inicio en Instagram (a veces puedes ver ofertas en alguna tienda que buscaste por otra red social). Asimismo, los algoritmos pueden ayudarte a buscar entre tus fotos y a veces hacer una pequeña película con ellas. Pueden encargarse de vigilar que todas tus transacciones y retiros en los bancos estén libres de fraudes.

Estos algoritmos no solo moldean tu mundo, sino el de toda la población con acceso a Internet. Tienen que supervisar millones de operaciones bancarias, establecer infinidad de preferencias para los usuarios de una red social, o fijar  precios para diversos asientos en vuelos en todo el globo. Son operaciones complejas que se repiten infinitamente en todo el mundo.

Es evidente que la forma clásica de los algoritmos como procesos lineales con algunos bucles condicionales no serviría para resolver estas titánicas labores. Es necesario tener varias entradas de información, que realicen varias operaciones al mismo tiempo, sopesen qué datos tienen más valor que otros, y luego den la respuesta más probable.

Decision-Trees-modified-1

Una serie de pasos que se suceden a partir de respuestas dicotómicas, es un ejemplo clásico de algoritmo. Sin embargo, hay tareas mucho más complejas, que dejan este tipo de mecanismos obsoletos

Con el fin de ver esto con un poco más de detenimiento, me remitiré al ejemplo clásico que se da al introducirnos al mundo de las redes neuronales en el machine learning. Este es el reconocimiento de algún número representado en una cantidad determinada de píxeles. Por supuesto, para nosotros, el realizar esta actividad es fácil; sin embargo, nuestros avances en el campo de la neurociencia todavía no nos han permitido entender toda la complejidad de nuestras redes nerviosas y, por tanto, replicar nuestra función biológica.

Aunque podría hacer una analogía con las redes neuronales biológicas

Aunque podría hacer una analogía con las redes neuronales biológicas

Cada píxel de información de toda la imagen es recibido por un conjunto de celdas (neuronas artificiales) que son el canal input por el cual se determinará la característica de algún píxel, según algún criterio como la luminosidad. Cabe destacar que cada celda input esta asignada a un solo píxel, y esta le otorgará un valor específico, si este valor es suficientemente alto (el límite establecido es algo arbitrario al inicio). Esta información pasará a ser procesada por un siguiente conjunto de celdas, el cual capturará el patrón de valores que han logrado superar el umbral establecido, se asignarán nuevos valores a estas respuestas, y se procederá a trasladar la información a un siguiente conjunto de celdas.  Cabe destacar, que al igual que en el cerebro humano, muchas conexiones tienen mayor peso que otras, es decir, muchas veces algunos resultados tendrán mayor impacto en la asignación de valores en un siguiente nivel de procesamiento (en un nuevo conjunto de celdas).

Cada píxel de información de toda la imagen es recibido por un conjunto de celdas (neuronas artificiales) que son el canal input por el cual se determinará la característica de algún píxel, según algún criterio como la luminosidad. Cabe destacar que cada celda input está asignada a un solo píxel, y esta le otorgará un valor específico si este valor es suficientemente alto (el límite establecido es algo arbitrario al inicio). Esta información pasará a ser procesada por un siguiente conjunto de celdas, el cual capturará el patrón de valores que han logrado superar el umbral establecido. Se asignarán nuevos valores a estas respuestas, y se procederá a trasladar la información a un siguiente conjunto de celdas.  Cabe destacar que, al igual que en el cerebro humano, muchas conexiones tienen mayor peso que otras; es decir, muchas veces algunos resultados tendrán mayor impacto en la asignación de valores en un siguiente nivel de procesamiento (en un nuevo conjunto de celdas).

Existe una clara analogía entre el procesamiento de esta información y una red neuronal, por la gran cantidad de interconexiones y el movimiento de información condicionado al hecho de superar un umbral (como las sinapsis). Sin embargo, aún falta explicar cómo es que estas redes aprenden a identificar efectivamente un dígito.

Está interconectado en varias capas, todo un patrón de activaciones se dirige a una sola neurona artifical que luego emitirá su valor respuesta

Está interconectado en varias capas, todo un patrón de activaciones se dirige a una sola neurona artifical que luego emitirá su valor respuesta

Para esto, le entregaremos un número a la red y, si se obtiene un resultado erróneo (como decir que un 9 es un 7 o un 8), le diremos “¡mala computadora!”, en forma de una penalidad numérica, con el fin de que la computadora tenga como objetivo transformar los valores que esta asigna para no conseguir la penalidad la siguiente vez y, así, poder mejorar su reconocimiento. Este proceso se repetirá infinidad de veces, En la industria de la programación, esto funciona a manera de una granja tecnológica. Crías varias redes neuronales, las pones a prueba con millones de imágenes, seleccionas las que aciertan más (y desechas las peores), cambias algunos parámetros, y vuelves  a ponerlas a prueba, hasta encontrar la mejor red posible, y hacer millones de dólares a costa de invadir la privacidad de la gente.

¿Es este proceso un desarrollo de inteligencia en una máquina? Si bien la idea de inteligencia artificial es un término paraguas para conceptos como el de machine learning, tenemos que tener en cuenta que estos algoritmos se dedican muchas veces a solo una labor, puede que exista una máquina que descifre el lenguaje con mucho más tino que una mente humana, y sin embargo, no puede discernir entre una abeja o un mono. En el cerebro humano, muchas de estas funciones comparten rutas neuronales. Sería una labor épica el poder tener en un programa una idea mínima de lo que ocurre en el cerebro humano (y las imperfecciones de su función). Sin embargo, el hecho de que podamos aproximarnos un poco algún mecanismo específico en nuestras redes neuronales mediante la programación, es en sí valioso al intentar dilucidar un poco más la naturaleza del hombre.