Mostrando entradas con la etiqueta Perceptrón. Mostrar todas las entradas
Mostrando entradas con la etiqueta Perceptrón. Mostrar todas las entradas

sábado, 18 de julio de 2026

IA. Modelos

Perceptrón V. Distribución lineal

IA. Modelos y paradigmas. Machine Learning

En la entrada anterior definimos el problema y desarrollamos una solución basada en un procedimiento heurístico, =SI(Y(C5=1;C6=1);1;0) en su expresión mediante funciones Calc.

También enunciamos la posibilidad de abordar este problema desde el paradígma de la IA Machine Learning. En este enfoque el sistema trata de aprender a partir de ejemplos previamente resueltos, casos históricos en los que se conoce la información y la decisión que finalmente se adoptó.

Antes de estudiar cómo se produce ese aprendizaje conviene detenerse en una cuestión previa: ¿qué tipo de problema queremos resolver? La respuesta determina qué modelos de aprendizaje se pueden aplicar y cómo se deben representar los datos.

Observa esta representación gráfica.

Si sustituyes X por criterio 1 e Y por criterio 2 tienes representado nuestro problema anterior, siendo cada uno de los puntos (azules y rojos) las observaciones que hemos recogido y presentado al algoritmos para que los procese. La posibilidad de trazar una línea recta que diferencie dos sub-espacios o hemiplanos indica que estamos ante un problema de clasificación binaria cuya distribución de ejemplos es linealmente separable.

Para ser un poco más precisos diremos que estamos ante una distribución binaria que se describe separable mediante una línea recta dado que disponemos de dos variables o datos de entrada (los criterios 1 y 2). Si sólo dispusiéramos de un criterio la división se establecería mediante un punto de corte; si las variables fueran tres los datos se ubicarían en un espacio tridimensional y se podría separar mediante un plano. Y si dispusiéramos de más de tres variables hablaríamos de un espacio multidimensional separable por un hiperplano.

Dicho esto, observemos estas dos figuras:

Mientras que la de la derecha representa una distribución claramente identificable según los criterios anteriores como binaria lineal, la de la izquierda sigue siendo un problema de clasificación binaria, pero las clases no son linealmente separables.

El algoritmo de aprendizaje del perceptrón únicamente converge si las clases son linealmente separables. En caso contrario, el aprendizaje nunca terminará de estabilizarse.

En este caso, el perceptrón no podrá encontrar una separación lineal perfecta al problema que plantea una distribución como la anterior porque algunos ejemplos aparecen en posiciones incompatibles con ese tipo de separación. Esto puede deberse a ruido en los datos, errores de medición, errores de etiquetado o simplemente a que el fenómeno real no admite una separación completamente lineal.

Pero la razón aquí es diferente de la que se observa en la distribución del caso B de la imagen que precede a la ésta: en ese caso estamos ante una distribución no lineal; en la actual existen datos que no se ajustan a los criterios que definen las combinaciones predominantes y se comportan como "extraños" en su ubicación en función de los valores que adoptan en una de sus dos variables.

Lo que todas estas imágenes muestran evidencian las diferencias entre este enfoque y el heurístico. Empezando por la importancia de los datos sobre la fórmula y lo que aporta las posibilidad de representarlos gráficamente en cuanto que facilita comprender el objetivo que persigue el algoritmos y los límites que esa misma representación muestra en cuanto a la simplicidad del planteamiento de la clasificación binaria lineal.

Como lo que sigue requiere detenerse en cada uno de los componentes y de los pasos que se diferencian en la estructura del preceptrón, considero necesario tratarlos en entradas diferenciadas. Por ello finalizo aquí la presente.

miércoles, 15 de julio de 2026

IA. Modelos

Perceptrón (II)

IA. Modelos y paradigmas. Machine Learning

Damos continuidad aquí a la entrada precedente. Una vez expuesta en ella el esquema de la arquitectura del perceptrón, vamos a desarrollar la forma en que se concreta cada una de sus partes. Empezaremos por cómo obtenemos z a partir de X₁ y X₂; de dónde procede esa operación, por qué se define del modo en que se define y cuál es el efecto esperado.

Cuando Rosenblatt ideo el perceptrón planteó como primer elemento de su arquitectura la operación siguiente: z=(X1*w1) + (X2*w2) + b. La elección de esta operación no fue casual. El perceptrón se desarrolla dentro de una tradición que buscaba construir modelos matemáticos simplificados de la actividad neuronal, iniciada por McCulloch y Pitts y desarrollada posteriormente por Rosenblatt. En este planteamiento, una unidad recibe diferentes señales, las integra y determina su activación a partir del resultado. Rosenblatt incorpora a esta estructura la posibilidad de modificar los pesos de las conexiones mediante aprendizaje.

Esta aproximación permitió convertir una determinada hipótesis sobre el procesamiento neuronal en un modelo matemático susceptible de aprendizaje, pero también implicó una considerable simplificación de la actividad de una neurona biológica. Conviene, por tanto, entender el perceptrón como un modelo computacional inspirado en la neurona, y no como una representación de su funcionamiento biológico.

En nuestro caso, la operación que integra las entradas puede expresarse como una suma ponderada: z=(X1*w1) + (X2*w2) + b, pero los dos términos que aparecen en esta expresión corresponden a las dos variables de entrada de la tabla AND. La formulación matemática del perceptrón permite, no obstante, ser ampliada a tantas entradas como requiera el problema: z=i=1∑nXiwi+b. Por tanto, AND determina nuestro ejemplo, no la estructura general del perceptrón. Las entradas tampoco tienen por qué ser necesariamente variables binarias: lo que importa para esta operación es que puedan representarse numéricamente y participar en la suma ponderada.

La utilización de pesos en la operación responde a una necesidad básica: las distintas entradas no tienen por qué ejercer la misma influencia sobre el resultado. Cada wᵢ permite ponderar la contribución de su correspondiente entrada Xᵢ, incluso en sentido positivo o negativo. El término bias (b) cumple una función diferente: permite desplazar el resultado de la suma ponderada y ajustar el nivel a partir del cual las entradas pueden conducir a una determinada respuesta. Ambos son, por tanto, parámetros de la función que el perceptrón deberá ajustar mediante aprendizaje y que veremos más adelante. De momento, nos interesa dejar clara su función en la formulación de esta suma ponderada.

Concretando lo anterior en el primer registro de nuestra colección de datos, la fórmula anterior modifica la composición de la tabla al implicar la creación de espacios (columnas) para la ubicación de los pesos y del resultado de la suma ponderada, lo que nos obliga a reformular la original en la hoja de Calc que hemos elegido como soporte del siguiente modo: De la tabla original...

X₁ X₂ y
0 0 0

... pasamos a...

X₀ X₁ X₂ w₀ (b) w₁ w₂ z y
1 0 0 0 0 0 0 0

Como punto de partida debemos entender que el sumatorio original (X1*w1) + (X2*w2) + b es ahora equivalente a (x0*w0) + (X1*w1) + (X2*w2) (1). Ello se debe a la introducción de la variable X₀ y la reformulación o equivalencia de b como w₀. Ambas transformaciones obedecen al interés por facilitar la expresión de la operación (de la suma ponderada) como el producto escalar de vectores (2). Pero para que la operación X₀*w₀ sea siempre igual a w₀, esto es, a b,que es como debe ser según se deduce de la equivalencia entre las dos fórmulas de la suma ponderada, X₀ debe tener un valor constante e igual a 1 (3).

Se debe observar, además, que estamos manteniendo el valor de la etiqueta (y) diferenciado de z, que resulta de la suma ponderada. Esto implica que no existe equivalencia entre el resultado de esa operación y el resultado esperado y (la etiqueta), debido a que todavía falta aplicar una segunda función que convierta el valor z en un resultado comparable con y, al que llamaremos y'. Será entonces y' el que podamos comparar con el valor esperado y. Esta función es la llamada función escalón.

La función escalón convierte el resultado cuantitativo z, obtenido mediante la suma ponderada, en una salida binaria y'. Para ello, evalúa una condición lógica que, en términos de programación, se puede expresarse mediante una estructura if: if z >= 0 then y' = 1 else y' = 0.

A nivel operativo, en cuanto a su expresión en nuestra hoja de cálculo, estas operaciones obligan de nuevo a modificar la estructura de nuestra tabla. Ahora..

X₀ X₁ X₂ w₀ (b) w₁ w₂ z y' y
1 0 0 0 0 0 0 0 0

... entendiendo que en cada una de las celdas situadas bajo el encabezado y' de nuestra hoja Calc está la función built-in equivalente =SI(D2>=0;1;0)

Una vez obtenida la salida y' mediante la función escalón, ya podemos compararla con el valor esperado y, es decir, con la etiqueta de cada observación. Esta comparación permite determinar si la respuesta obtenida (y') coincide con la esperada (y), cuestión que resolvemos mediante una simple resta (y-y'), cuyo resultado es 0, si se produce tal coincidencia (concordancia) o diferente de 0 en caso contrario (divergencia).

En términos de nuestro soporte, esto implica que deberemos añadir una nueva columna donde quede recogido el resultado de esta resta...

X₀ X₁ X₂ w₀ (b) w₁ w₂ z y' y y-y'
1 0 0 0 0 0 0 0 0 0

... ubicándose la fórmula correspondiente a y-y' en cada una de las celdas que se sitúan en la columna encabezada por la expresión y-y'. En nuestro caso, como valor primero obtenemos que y-y'= 0, lo que implica que el resultado es el esperado.

Cuando se da esta circunstancia, y-y'=0, no es necesario modificar los pesos, ya que los parámetros actuales han producido la respuesta correcta. Traducimos esto en que no es necesario activar el mecanismo de aprendizaje.

Esta situación puede repetirse con la entrada siguiente y con otras posteriores, pero no podemos concluir por ello que el aprendizaje haya finalizado. Para comprobarlo, debemos completar una época, que consiste en procesar una vez todos los ejemplos que forman parte de los datos de entrenamiento. En el caso de AND, por ejemplo, una época comprende las cuatro combinaciones posibles de x1 y x2. Al finalizarla podemos comprobar si se han producido errores y, en función de ello, determinar si el proceso de aprendizaje ha convergido.

Tenemos, por tanto, identificado que el llamado "aprendizaje" algorítmicamente requiere ser concretado dentro de una estructura condicional if, que consta necesarimente de dos términos; el primero de ellos implica la condición y-y'=0 y se concreta como respuesta como que los valores siguientes para la matriz de pesos wi, son los mismos que los precedentes. Dicho de otro modo, para nuestro ejemplo actual y siendo r2 el registro que sigue al precedente r1...



IF (y - y') = 0 THEN
    w0(r2) = w0(r1)
    w1(r2) = w1(r1)
    w2(r2) = w2(r1)
ELSE


En términos de concreción en nuetro soporte Calc necesitamos añadir tres nuevas columnas, una para cada nuevo valor wi' y establecer mediante asignación de contenido el valor de las originales celdas de las columnas wi la relación entre estas celdas y las que contienen los valores wi'. Cada celda wi' deberá contener la fórmula built-in que expresamos antes, una vez esté plenamente desarrollada (que no es ahora el caso).

A pesar de ello, por ir avanzando, implementaremos la nueva modificación de nuestro soporte calc para dar cabida a la estructura que será plenamente funcional en breve. Observese que los nuevos valores de los pesos (incluido w0 o bias se identifican como wi', aunque su sóla ubicación diferenciada de los wi operativos lo hace innecesario.

X₀ X₁ X₂ w₀ (b) w₁ w₂ z y' y y-y' w₀' w₁' w₂'
1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0

Y no lo es porque aun nos falta por saber cómo se concreta el procedimiento de aprendizaje del perceptrón cuando no existe coincidencia entre y e y', dicho de otro modo, cuando es necesario activar el procedimiento de modificación de los valores que son modificables (los pesos y el bias).

Obsérvese también que en la nueva reformulación de la tabla hemos incluído lo que sería el inicio del segundo registro, incluyendo los valores conocidos de sus Xi, pero también los valores Wi que derivan, por asociación de los precedentes Wi' del registro que precede. En este caso, esos valores Wi se generan automáticamente mediante copia o mediante asociación, tomando, por ejemplo, W0(r2) su valor del contenido de la celda W0'(r1) (4).

Aun tenemos pendiente explicar como se expresa la regla de aprendizaje del perceptrón cuando no se produce la igualdad entre y e y', esto es, cómo se concrea la segunda rama (Else) del condicional anterior.



IF (y - y') = 0 THEN
    w0(siguiente) = w0(actual)
    w1(siguiente) = w1(actual)
    w2(siguiente) = w2(actual)
ELSE
    w0(siguiente) = w0(actual) + η * (y - y') * X0
    w1(siguiente) = w1(actual) + η * (y - y') * X1
    w2(siguiente) = w2(actual) + η * (y - y') * X2
    

Analicemos ahora la fórmula del llamado "aprendizaje" generalizándola a partir de una de sus concreciones. Para W0, por ejemplo, tenemos que W0'= W0 + η * (y - y') * X0, luego podemos decir que Wi' = Wi + η * (y - y') * X0, siendo...

  • Wi' el valor que adquirirá el peso en la siguiente etapa del cálculo de z
  • Wi el valor precedente del peso. Obsérvese que es el único elemento de la fórmula que se suma al producto de los restantes
  • η (eta) es una constante (es la misma en cada una de las expresiones y a lo largo del todo el entrenamiento) que introducimos en la fórmula y que identificamos como tasa de aprendizaje (learning rate), que determina el tamaño del ajuste cuando el perceptrón "se equivoca". Como constante no resulta del propio "aprendizaje", siendo introducida por el programador como parte del algoritmo. Como tal elemento requiere su espacio en nuestra configuración Calc, lo que nos obliga a realizar una última modificación de nuestra hoja, con la peculiaridad que implica su carácter de constante.
X₀ X₁ X₂ w₀ (b) w₁ w₂ z y' y y-y' w₀' w₁' w₂' η
1 0 0 0 0 0 0 0 0 0 0 0 0 0,2
1 1 0 0 0 0
  • (y - y') es, como ya sabemos, el resultado de la diferencia entre y e y' que, como vemos participa de nuevo en la arquitectura del preceptrón. Ahora determinando la dirección del producto η * (y - y') * Xi, esto es, del ajuste de los sesgos
  • Finalmente, Xi es el valor que tiene la variable de entrada correspondiente al peso que estamos ajustando. Su participación en la fórmula hace que la corrección de cada peso tenga en cuenta la presencia y el valor de esa variable en el ejemplo que produjo el error. De este modo, no todos los pesos tienen necesariamente que modificarse en la misma medida: el ajuste de cada uno depende también del valor que tenía su correspondiente Xi.

Para finalizar, diremos que se considera lograda la convergencia cuando, tras aplicar el procedimiento de aprendizaje las veces que sea necesario (siempre en términos de épocas), persiste la igualdad y' = y para todos los registros de una época, lo que se traduce en que todos los Wi' = 0.

Los valores Wi que deberemos tomar como referencia para la fase de aplicación serán los correspondientes a W0, W1 y W2 del primer registro a partir del cual se mantiene la igualdad y' = y y, por tanto, la diferencia y − y' = 0 y los pesos permanecen inalterados. Estos serán los valores definitivos de los diferentes pesos, incluida la bias o W0 (5).

Documento. Desde este enlace puedes descargar el archivo Calc que contiene la versión heurístico y perceptrón del abordaje de AND.

NOTAS
1 Que es la fórmula que contiene la celda situada debajo de la b>cabecera z
2 Esta reformulación permite expresar la suma ponderada como un producto escalar, proporcionando una formulación matemática compacta y general que no depende del número de entradas y que facilita tanto su implementación computacional como la formulación del mecanismo de aprendizaje.
3 Estamos hablando de la propiedad del elemento neutro de la multiplicación. El 1 es el elemento neutro multiplicativo, porque cualquier número multiplicado por 1 permanece inalterado.
4 Realmente este procedimiento de asociación que genera los nuevos valores Wi resulta más difícil de explicar que de ejecutar. Analizar el funcionamiento del soporte Calc te va a permitir comprender la sencillez con la que se realiza con mucha mayor facilidad que lo que esta enrevesada explicación da a entender.
5 Debemos tener en cuenta que esa posición, el momento en que se produce la convergencia, va a depender de varios factores, incluyendo el tamaño de la variable que implementemos como tasa de aprendizaje. Ello obliga a adaptar el procedimiento de uso del perceptrón de nuestro soporte Calc a la realidad concreta que resulte del proceso de aprendizaje.

martes, 14 de julio de 2026

IA. Modelos

Perceptrón (I)

IA. Modelos y paradigmas. Machine Learning

Cuando hablamos de Machine Learning en la introducción a esta subsección lo consideramos como un paradigma radicalmente diferenciado de la IA basada en la heurística, en tanto que, mientras que para esta última lo nuclear es la expresión explícita de la regla (o reglas), en el ML el objetivo es lograr que el algoritmo «aprenda» a partir de los datos.

El perceptrón, propuesto por Frank Rosenblatt en 1957, constituye una de las propuestas ML más sencillas y, al mismo tiempo, más coherente con esa diferenciación. Aunque hoy existen modelos mucho más potentes, el perceptrón conserva un extraordinario valor didáctico y práctico. Su comportamiento resulta lo suficientemente transparente como para comprender cómo aprende un modelo de Machine Learning y, al mismo tiempo, convertir el propio proceso de construcción y entrenamiento en una oportunidad para revisar críticamente la forma en que hemos definido el problema que intentamos resolver.

El perceptrón es un modelo de clasificación binaria que se entrena utilizando ejemplos (registros de datos) previamente etiquetados, por lo que pertenece al ámbito del aprendizaje supervisado. Su objetivo es aprender, a partir de esos ejemplos, una forma de asignar cada nuevo caso a una de dos categorías en función de los datos que lo describen. En su forma clásica, esa clasificación es binaria: sí o no, verdadero o falso, clase A o clase B.

Esta clasificación binaria resulta fundamental para comprender el funcionamiento del perceptrón, ya que el modelo de Rosenblatt determina la clase de un ejemplo mediante una frontera de decisión lineal. Por ello, para que un perceptrón simple pueda aprender correctamente una clasificación, las dos categorías deben ser linealmente separables: debe existir una recta, en el caso de dos variables de entrada, o un hiperplano en dimensiones superiores, capaz de separar los ejemplos pertenecientes a ambas clases.

Para entender mejor qué significa esto, una representación gráfica de lo que estamos diciendo bien podría ser la siguiente. En ella se diferencian dos categorías, representadas mediante puntos azules y rojos, entre las que podría trazarse una recta capaz de separarlas. Aunque la frontera de decisión no aparece dibujada, su posible existencia resulta intuitivamente apreciable a partir de la distribución de los datos.

Existen algunos problemas que, por su sencillez y valor didáctico, resultan especialmente adecuados para comprender el funcionamiento del perceptrón. Uno de los más habituales es la función lógica AND. Su estructura permite utilizar un mismo problema para mostrar dos formas radicalmente diferentes de abordarlo: podemos expresar explícitamente la regla que determina su resultado, como haríamos desde una aproximación heurística, o proporcionar al perceptrón los ejemplos correspondientes para que aprenda a reproducir esa clasificación a partir de los datos.

Empecemos por el paradigma heurístico, que ya nos es conocido de tratamientos anteriores.

Como bien sabemos, la función lógica AND solo resulta V/1 cuando las dos condiciones se cumplen simultáneamente. Si ninguna de ellas se cumple o solo se cumple una, el resultado es invariablemente F/0. Esta sencilla regla puede trasladarse fácilmente a un procedimiento algorítmico y, desde un punto de vista práctico, implementarse también en una hoja de cálculo como LibreOffice Calc, incluso mediante el uso de sus funciones incorporadas (built-in).

Procedamos, pues, a implementar nuestra Puerta lógica AND en Calc, por aquello de demostrar la teoría en la práctica, como corresponde a una buena lógica didáctica. El rsultado es algo tan sencillo como lo que muestra esta imágen que explico a continuación

Podemos apreciar dos regiones diferenciadas dentro de la hoja de cálculo, aunque sólo una de ellas tiene interés desde el punto de vista de la implementación del algoritmo. La primera, correspondiente a las celdas de Entrada de datos, cumple únicamente una función de input: nuestro algoritmo se basa en solicitar al usuario los valores (V-1 o F-0) de cada una de las variables (X1 y X2).

La segunda región, identificada como Solución, es la que contiene la implementación de la regla. En ella, sobre Condición se evalúa ésta mediante la fórmula =Y(E5=1;F5=1), que determina si ambas variables tienen simultáneamente el valor 1. En realidad, la celda Solución se limita a facilitar la visualización del resultado mediante la fórmula =SI(G5=1;1;0), transformando el resultado lógico de la condición en el valor numérico 1 o 0.

Falta, no obstante, una tercera región en nuestra hoja de cálculo: aquella destinada a recoger los resultados obtenidos tras la ejecución sucesiva de nuestro algoritmo. Podemos imaginar, por ejemplo, que ejecutamos el algoritmo 24 veces, proporcionando en cada ejecución una combinación diferente de valores para X1 y X2. En este caso, el resultado podría organizarse en forma de una tabla de doble entrada como la que se muestra a continuación, de la que hemos capturado únicamente los seis primeros casos o registros.

Podemos concluir este sencillo experimento heurístico señalando que, mediante la aplicación de la fórmula o función =Y(E5=1;F5=1), hemos obtenido un conjunto de resultados que podemos almacenar como registros en una tabla. El funcionamiento seguido responde al esquema habitual de un programa informático: definimos previamente el procedimiento que debe aplicarse y obtenemos los resultados como consecuencia de su ejecución: Algoritmo → procedimiento heurístico → resultados

Es este orden el que nos interesa retener, porque el aprendizaje automático (ML) va a introducir un cambio procedimental sustancial: proporcionar al algoritmo ejemplos de entradas y resultados para que, a partir de ellos, determine los parámetros de un modelo capaz de relacionarlos. De este modo, el ML, que concretaremos ahora en el perceptrón, no necesita explicitar la regla que resuelve el problema. En reumen: Datos → aprendizaje → modelo → resultados.

Empezaremos retomando los datos de la tabla AND, que ahora tomaremos como punto de partida para explicar la arquitectura de nuestro perceptrón, sin detenernos en su procedencia ya que, para nuestro propósito actual, su origen carece de interés.

Lo que sí nos interesa es que cada registro contiene dos valores de entrada, X₁ y X₂, asociados a una etiqueta o resultado y. Esta última es fundamental, ya que constituye la salida esperada que el modelo deberá aprender a producir a partir de las entradas. Esto sitúa al perceptrón dentro del ML de aprendizaje supervisado, característica que determina un aspecto esencial de su arquitectura: durante el entrenamiento, el modelo podrá comparar la salida que produce con la etiqueta conocida y, utilizando esa diferencia para ajustar sus parámetros.

Podríamos expresar esta estructura (arquitectura) como sigue:

  • X1 , X2 → z → comparación (z,y)
  • Si z <> y → ajuste (mecanismo de aprendizaje)

Con este esquema podemos identificar ya los elementos fundamentales del funcionamiento de un perceptrón: recibe unos valores de entrada, obtiene a partir de ellos un resultado, lo compara con la etiqueta conocida y, cuando ambos no coinciden, modifica sus parámetros. Hemos descrito así la lógica básica de su arquitectura, sin entrar todavía en la forma concreta en que se realizan estas operaciones. Próximamente nos ocuparemos de explicar todo lo que esto implica.