Algoritmia de IA – Introducción

Objetivo
Reconocer el funcionamiento y tratamiento de un algoritmo de Inteligencia Artificial.
Ejecutaremos un ejemplo pequeño para reforzar esta introducción a los Algoritmos de Inteligencia Artificial.
Algoritmo Tradicional vs Algoritmo de IA
En un algorimo tradicional tenemos entrada de datos, proceso (reglas y lógica) y salida.
En este tipo de programación, la operación que el algoritmo ejecutará con las entradas para obtener sus resultados, ya están definidas previamente.

En un Algoritmo de Inteligencia Artificial la operación no está definida. Entonces… ¿Qué hacemos?
En un algoritmo de IA se analizan datos de entrada y salida de históricos, es decir, datos de entrada y salida que ya tengamos disponibles para poder obtener un proceso que nos permita predecir futuros resultados de salida con nuevos datos de entrada.
¿Cómo Matemática estadística?
¡Efectivamente!

Los algoritmos de IA son en realidad matemática estadística, siempre ha existido, lo hemos usado para predecir el clima, futuros presidentes e incluso próximas pandemias; sin embargo, la aplicación práctica que le estamos dando ahora tiene un enfoque más orientado al usuario final, como capa de alto nivel.
Gracias a Python y el poder computacional que tenemos hoy en día, ejecutar algoritmos predictivos es bastante accesible para todos, nuestros computadores pueden ejecutar grandes volúmenes de cálculos complejos tales como matrices y vectores.
Volviendo a nuestro algoritmo tradicional, si deseamos un algoritmo que pueda calcular el perímetro de un círculo en cm, ejecutaríamos un proceso, donde r son los datos de entrada, también en cm:

En cambio, en un algoritmo de IA, no tenemos la fórmula matemática para calcular el perímetro de un círculo, lo que sí tenemos son datos de entrada y salida previos.
¿Qué podemos hacer con estos datos?
Pues muchísimo, podemos darle tratamiento matemático a estos datos de entrada y salida previos mediante una red neuronal para obtener una fórmula que esté en la capacidad de predecir datos futuros lo mejor posible…

Teniendo estos datos de entrada y salida, nuestro modelo de IA podría predecir, por ejemplo, ¿cuánto es el perímetro de un círculo para r=22
Mientras más datos de muestra tengamos y mientras mejor entrenemos nuestro modelo de red neuronal, más acertadas serán nuestras predicciones.
¿Que es una red Neuronal?

En el Aprendizaje automático, una red neuronal artificial es un modelo dentro de los llamados sistemas conexionistas, inspirado en la estructura y función de las redes neuronales biológicas en los cerebros animales.
Nos viene genial para nuestros modelos predictivos, ya que podemos trasladar sus componentes en matrices matemáticas.
Viéndolo de manera más amigable una Red Neuronal Artificial, es un modelo lógico/matemático que nos permite dar tratamiento a los datos de entrada y salida mediante pesos, sesgos y capas intermedias.

Las redes neuronales pueden llegar a ser muy grandes y complejas, con muchas capas intermedias.

Las redes neuronales en su expresión mínima se separan en capas:
Capa de Entrada
Capas intermedias u ocultas
Capas de Salida
Para nuestro ejemplo desarrollaremos una red neuronal pequeña de 2 neuronas que pueda predecir el área de un círculo lo mejor posible.

Nuestros datos de entrada son X
Nuestros datos de salida son Y
W es el peso (Weight) de la conexión entre ambas neuronas y b es el sesgo (Bias) que asignamos de manera aleatoria.
Nuestra red neuronal al ser entrenada irá ajustando estos valores para poder obtener una función matemática que se acerque lo mejor posible con los datos de muestra previamente brindados.
¿Dijimos función matemática?
Efectivamente, función matemática, nuestra red neuronal esta tratando la información como una función lineal.
Mediante Python y TensorFlow vamos a desarrollar un algoritmo de IA que nos permita poner en práctica lo aprendido.
