Tecnología
Foto: rawpixel.com
Luego del receso veraniego es hora de retomar el tema que comenzamos en el artículo anterior, la inteligencia artificial. Por supuesto este es un tema demasiado vasto como para tratarlo en un par de artículos. Así que en ellos solo intentamos hacer una aproximación a este asunto cada vez mas popular en la tecnología.
Como comentamos en el artículo anterior, la característica principal de un programa informático es que se trata de un conjunto de órdenes que cubren todas las posibles opciones a las que se enfrenta una máquina. Incluso si se produce un error. Con un programa informático, una máquina no piensa. Simplemente, hace exactamente lo que le dicen. Por eso la gran revolución detrás de la IA (Inteligencia Artificial) es que las máquinas no necesiten recibir órdenes de un programa para obtener un resultado.
Existen tres conceptos básicos de inteligencia artificial: aprendizaje automático, aprendizaje profundo y redes neuronales.
Aprendizaje automático
Hablamos de este tipo de aprendizaje en el artículo anterior. En los términos más simples, las máquinas reciben una gran cantidad de ejemplos de prueba para realizar una tarea. A medida que pasan por estas pruebas, aprenden y adaptan su estrategia para alcanzar esos objetivos. Sigue los pasos clásicos de la IA: aprendizaje, entrenamiento para generar experiencia, y la puesta en práctica informando si la tarea ha sido exitosa o no.
Un buen ejemplo de aprendizaje automático es Quick, Draw!. Se trata de un "juego" alojado en Google que te propone dibujar imágenes simples para que el algoritmo adivine de qué se trata. Millones de personas han contribuido más de 50 millones de dibujos a la aplicación.
Aprendizaje profundo
Los sistemas de aprendizaje profundo mejoran su rendimiento al poder acceder a un mayor número de datos, o lo que es lo mismo, hacer que la máquina tenga más experiencia. Las aplicaciones basadas en el aprendizaje profundo se siguen volviendo más precisas cuanto más las usamos. Cuando adquieren suficiente experiencia entonces están listas para realizar tareas específicas como conducir un coche, detectar yuyos en un campo de cultivo, detectar enfermedades y más.
Para entender de qué va el aprendizaje profundo podemos utilizar un famoso ejemplo. Imagina a un niño cuya primera palabra es "perro". El niño aprende lo que es (y lo que no es) un perro señalando objetos y diciendo la palabra "perro". El padre dice "Sí, eso es Perro" o "No, eso no es un perro". Mientras el niño continúa apuntando a los objetos, se vuelve más consciente de las características que poseen todos los perros. Lo que el niño hace, sin saberlo, es aclarar una abstracción compleja: el concepto de perro (Tiene patas, 4 patas; tiene 4 patas y orejas, 2 orejas; tiene 4 patas, 2 orejas y cola; etc.). Así construye una jerarquía en la que cada nivel de abstracción se crea con el conocimiento que se obtuvo de la capa precedente de la jerarquía.
Los programas informáticos que utilizan el aprendizaje profundo pasan por el mismo proceso. Cada algoritmo en la jerarquía aplica una transformación en su entrada y utiliza lo que aprende para crear un modelo estadístico como salida. Las iteraciones continúan (millones) hasta que la salida ha alcanzado un nivel de precisión aceptable. El número de iteraciones a través de las cuales los datos deben pasar es lo que inspiró el nombre "profundo".
Redes neuronales
Una red neuronal artificial intenta simular los procesos de las células cerebrales densamente interconectadas. Las redes neuronales contienen tres capas: una capa de entrada, una capa oculta y una capa de salida. Estas capas contienen miles y hasta millones de conexiones.
La información se alimenta en la capa de entrada. Cada conexión asigna una importancia (peso) a la información que recibe. Así la información comienza a viajar a través de las "neuronas" (nodos) interconectados. Si la unidad de información alcanza un cierto valor preestablecido (umbral), entonces puede pasar a la siguiente capa. Para aprender de la experiencia, las máquinas comparan el resultado así obtenido con el resultado correcto y entonces modifican las conexiones, los pesos y los umbrales en función de las diferencias entre ellos.
Pongamos un caso muy simple en referencia al ejemplo de los perros mencionado antes: una conexión a la capa de entrada con valor=1 dice que los perros "tienen 4 patas". Supongamos que el peso asignado a esta conexión es 5, entonces el nodo trasmitirá esta información con valor 5 (1 x 5). Supongamos ahora que el valor determinado para el umbral es 5. Si es así, entonces la información seguirá adelante como buena. El resultado entonces, luego de pasar por esta red es: Correcto, los perros tienen 4 patas. Sin embargo, al compararlo con la realidad el resultado es erróneo. Hay perros con 3 o menos patas debido a una enfermedad o accidente. La red necesita volver a empezar. La información puede ser correcta pero hay que asignar valores diferentes al peso de esta información o al umbral fijado. De esta forma la red adquirirá experiencia.
Hay mucho por hacer y por aprender en esta materia. El tiempo dirá hasta donde será posible o necesario llegar. Mientras tanto, utilicemos la inteligencia que ya tenemos para tomar buenas decisiones antes de que las máquinas las tomen por nosotros!
