Redes neuronales artificiales
Fatima Arámbula ● 5 min

En la actualidad, la inteligencia artificial es un tema muy sonado y muy hablado por muchos, pero a la vez es desconocido y de mucha controversia, pues no se suele entender qué es realmente, sus casos de aplicación y menos cómo se programa.
En esta ocasión te contaré un poco sobre redes neuronales artificiales, qué tienen que ver estas con inteligencia artificial y cómo puedes aprender a programar tu propia red neuronal de manera sencilla.
Para comenzar es necesario entender que la inteligencia artificial es un campo de la informática que combina algoritmos con el propósito de crear máquinas que presenten las mismas capacidades que el ser humano. Existen distintos tipos de inteligencia artificial; en este artículo nos enfocaremos en los sistemas que piensan como humanos, en este caso son los sistemas que automatizan actividades como la toma de decisiones, la resolución de problemas y el aprendizaje. Dentro de esta categoría es donde entran las redes neuronales artificiales.
Pero, a todo esto, ¿Qué son las redes neuronales artificiales?
Estas vienen de la idea de imitar el funcionamiento de las redes neuronales de los organismos vivos, un conjunto de neuronas conectadas entre sí que, con la experiencia van creando ciertas conexiones para aprender. Actualmente las redes neuronales artificiales se enfocan en las matemáticas y estadística para poder predecir un resultado según los datos que tengan. Estas se basan en una idea simple: según la información y los datos que les des como entrada existe una manera de combinarlos para predecir cierto resultado.
¿Qué significa eso en realidad?

Si queremos llegar del punto A (entrada) al punto B (salida) existe un camino para lograrlo que no sabemos a ciencia cierta cuál es. La red neuronal se encargará justo de hacer los cálculos necesarios para poder combinar los datos de entrada de manera que nos dé el resultado esperado.
Para lograr hacer estos cálculos es necesario tener varios datos de entrada relevantes y significativos que nos puedan hacer llegar al resultado esperado.

En este caso las X son las entradas y Y es la salida o el resultado esperado. Lo que ocurre entre estas dos por el momento es un misterio, solamente sabemos que lo realiza la red neuronal.
Un ejemplo de esto podría ser el cómo saber si una manzana es apta para comerla o no, algunos ejemplos de entrada podrían ser el número de días que lleva cortada la manzana, el número de días que ha estado la manzana en el refrigerador y del 1 al 10 qué tan mal huele la manzana (por mencionar algunos). El resultado esperado sería saber si la manzana se puede comer o no. Para que la red neuronal nos regrese esta información lo podríamos clasificar de 0 a 1, como 0 = apta para comer y 1 = manzana podrida. Si el valor que regresa la red neuronal es muy cercano a 1, como 0.9 o 0.8 significa que no es buena idea comerse esa manzana. Por el contrario, si la red neuronal regresa valores cercanos al 0 como 0.1, 0.2 o 0.3 lo más probable es que la manzana esté en buenas condiciones para disfrutarla.
Pero entonces, ¿Cómo sabrá nuestra red neuronal predecir si la manzana está o no echada a perder? Para encontrar la combinación que mejor se ajuste es necesario entrenar a la red neuronal con una buena cantidad de ejemplos para que empiece a formar estas conexiones y logre predecir buenos resultados. Las redes neuronales se entrenan con ejemplos en los que ya conocemos los datos de entrada y la salida esperada para esos datos. Por ejemplo, podríamos entrenar la red neuronal en el caso de las manzanas dando como ejemplo una manzana que apenas tiene 7 días de haber sido cortada, lleva 5 días en el refrigerador y del 1 al 10 huele un 1 de mal. La salida esperada para este ejemplo es 0, puesto que sabemos que es apta para comer. Otro ejemplo para entrenar la red neuronal sería una manzana que tiene 15 días de haber sido cortada, 0 de refrigeración y del 1 al 10 huele un 8 de mal. Claramente la salida para este ejemplo es 1, donde sabemos que la manzana ya está echada a perder. Es necesario dar varios ejemplos como estos para que la red neuronal pueda ir “entendiendo” cómo realizar los cálculos y predecir de manera correcta.
Una red ya entrenada se puede usar luego para hacer predicciones o clasificaciones, es decir, para “aplicar” la combinación.
Pero entonces, ¿Qué es lo que pasa en esa caja que realiza todos los cálculos? Para entender esto es necesario comprender el concepto de perceptrón. Un perceptrón es la unidad básica de la red neuronal, es de una sola capa y permite una clasificación lineal. Es la unidad que determina según los datos de entrada si la suma de estos por cada peso es mayor que un determinado número, la salida del perceptrón es un uno. Si es menor, la salida es cero.
Este perceptrón se utiliza cuando los elementos pueden ser separados por una sola línea como en la imagen siguiente. El perceptrón puede ser visto como una red neuronal artificial de una sola neurona o unicapa.

Al usar una sola capa las predicciones no son tan exactas puesto que puede haber elementos de un grupo que pasen al otro lado. Para lidiar con este problema se pueden agregar más capas ocultas a la red neuronal, lo que convertiría a nuestra red en multicapa; esto nos permite añadir información que no estaba antes y obtener predicciones más acertadas.
Por lo tanto al final nuestra red neuronal queda de la siguiente manera:

Entradas: Datos a partir de los cuales se requiere predecir un valor. (X)
Salida(s): Valores resultantes, puede ser un valor discreto o continuo. (Y)
Capas:
Capa de entrada: Neuronas que reciben la información directamente de la entrada.
Capa de salida: Neurona que envía el dato de salida.
Capa(s) oculta(s): Neuronas ordenadas en capas intermedias que realizan los cálculos necesarios para poder predecir.
La red aprende examinando los registros individuales, generando una predicción para cada registro y realizando ajustes a las ponderaciones cuando realiza una predicción incorrecta. Este proceso se repite muchas veces y la red sigue mejorando sus predicciones hasta haber alcanzado uno o varios criterios de parada.
Entonces, podemos concluir que las redes neuronales artificiales son parte de la inteligencia artificial que se encarga de automatizar la toma de decisiones, resolución de problemas y aprendizaje. Son los sistemas que “piensan” como humanos.
Estas redes neuronales se componen de datos de entrada, salida y una o varias capas.
En el siguiente artículo programaremos nuestra propia red neuronal para crear paletas de colores que combinen en una habitación, no te lo pierdas.
Fuentes de consulta:
https://www.xataka.com/robotica-e-ia/las-redes-neuronales-que-son-y-por-que-estan-volviendo
https://www.crehana.com/mx/blog/desarrollo-web/que-es-perceptron-algoritmo/#que-es-perceptron