Se aborda la distribución de probabilidad de Bernoulli, su uso y un ejemplo de la manera en que se implementa en redes neuronales para predicción de clases binarias.
Uno de los primeros modelos probabilísticos que se usan para explicar las redes neuronales es el modelo de Bernoulli, esto debido a su baja complejidad en comprenderlo y a su naturaleza de estudiar fenómenos en los que solo se pueden obtener dos posibles resultados, como por ejemplo determinar si un paciente está o no enfermo, si mañana lloverá o no, si un producto está o no defectuoso, y cualquier tipo de experimento en el que podamos obtener solo dos posibles resultados.
Para comprender el modelo de Bernoulli, vamos a realizar un ejemplo muy práctico; supongamos que tenemos una moneda, llamaremos a cada uno de sus lados como “cara” y “sello”, establecemos que solo pueden existir estos dos resultados por lanzamiento y definimos a la probabilidad de obtener cara en un lanzamiento como “p” y a la probabilidad de obtener sello como “1-p”, pues la suma de las probabilidad de todos los posibles eventos deberá ser siempre de 1, esto bajo el argumento de que cada lanzamiento de la moneda es independiente de los anteriores, es decir si es un evento independientes e idénticamente distribuido.
Si sumamos ambas probabilidades veremos que siempre dará uno, aplicando el principio de la regla de la suma, se tiene.
\[\large P(cara \cup sello) = P(cara) + P(sello) = p + (1-p) = 1 \]
Con lo anterior aclarado, se puede definir por medio de una ecuación por partes las probabilidades de obtener cara o sello en un lanzamiento de la moneda, de la siguiente manera.
\[\large P(X=x)= \left\{ \begin{array}{lcc} p & & x=cara \\ \\ 1-p & & x=sello \end{array} \right. \]
Si definimos qué cara es “1” y que sello es “0”, la anterior definición se podría escribir tanto en forma de ecuación por partes como en su forma convencional, obteniendo lo siguiente.
\[\large P(X=x)= \left\{ \begin{array}{lcc} p & & x=1 \\ \\ 1-p & & x=0 \end{array} \right. \]
\[\large P(X=x) = p^{x} \cdot (1-p)^{(1-x)} \qquad x \in \{0,1\} \]
Y de esta manera llegamos a la ecuación del modelo probabilístico de Bernoulli. Si evaluamos esta ecuación en sus dos posibles resultados, obtendremos lo siguiente.
\[\large P(X=1) = \textrm{Probabilidad de que sea cara} = p^{1} \cdot (1-p)^{(1-1)} = p^{1} \cdot (1-p)^{0} = p \]
\[\large P(X=0) = \textrm{Probabilidad de que sea sello} = p^{0} \cdot (1-p)^{(1-0)} = p^{0} \cdot (1-p)^{1} = 1-p \]
Como se observa, la ecuación permite describir la probabilidad de éxito o fallo, en escenarios donde solo contamos con dos posibles eventos como resultados.
En este punto te preguntarás cómo se aplica este modelo a una red neuronal para que un sistema aprenda, para ello vamos a empezar con un ejemplo sencillo.
Supongamos que hacemos parte de un equipo de calidad en donde verificamos si un producto está defectuoso o no defectuoso, para eso definimos una lista de chequeo con dos criterios de validación, que llamaremos item 1 e ítem 2, se nos da la indicación de que si y sólo si todos los item se cumplen, el producto es aprobado de lo contrario está defectuoso, lo anterior se puede ver de manera visual a continuación.

A simple vista, es un proceso fácil de desarrollar y que inclusive la lógica escrita al interior del recuadro expresa el funcionamiento de este sistema por medio de condicionales, ahora vamos a aumentar el número de parámetros de la lista de chequeo a 225 (15x15) por ejemplo, se tendría lo siguiente.

Por el momento se podría decir que en principio la aplicación anterior sería igual, solo que aumentamos el número de parámetros. Si ahora definimos que cada uno de los ítems de la lista de chequeo, puede tener un valor que varía entre 0 y 255, la situación se pone un poco compleja, pues por cada ítem tenemos que hacer la misma tarea de validación para determinar si cumple o no ese ítem, sin embargo podemos seguir diciendo que simplemente subió un grado de complejidad y hasta aquí es válido, una forma de verlo sería.

De la gráfica anterior, cada uno de los ítem de la lista de chequeo puede obtener un valor entre 0 y 255 pues así lo definimos, y cada uno de estos valores pasa por un proceso de criterio, para determinar si se encuentran en un rango definido y en caso de cumplirlo este arroja un 1, de no cumplirlo arroja 0, y finalmente todos los resultados de los criterios pasan al proceso condicional definido anteriormente, en el que si todos los criterios cumplen, el producto es aprobado.
Sin embargo supongamos que los criterios de validación cambian en función de los valores que tengan los ítems de la lista de chequeo, es decir son criterios dinámicos y que está fuertemente relacionados a los valores de ingreso; aquí el tema ya se torna bastante complejo, pues al no tener unos criterios definidos, no permite la elaboración de una aplicación que pueda evaluar el estado del producto en función de sus criterios, y se torna en una problema que requiere de otro enfoque y paradigma, es allí donde entran en juego las redes neuronales, las cuales algunas de ellas permiten clasificar imágenes que es el problema que tenemos ahora, sin embargo ese enfoque lo abordaremos en otro capítulo.
Lo importante aquí, es comprender que independiente de la cantidad de ítems que tenga la lista de chequeo, lo que necesitamos es una caja negra que acepte cualquier tipo de valor como entrada, y tras algún tipo de procedimiento que desconocemos, nos arroje la probabilidad de que el valor que ingresamos sea exitoso o no, aprobado o no aprobado, rechazado o no rechazado, etc; es decir una caja negra que halle el valor de “p” del modelo Bernoulli en función de la entrada; y así es como se emplea el concepto en una red neuronal; en capítulos posteriores se abordará este ejemplo de manera más completa y detallada, para un sistema de clasificación de imágenes binario.