capitulo3-aprendizaje

Anuncio
3. APRENDIZAJE
3.1. Introducción
¿Las máquinas pueden aprender?
Ada Augusta, filósofa de la computación (1961) dijo que “la máquina analítica
no pretende crear nada, puede hacer lo que sea si se le ha indicado la forma
de hacerlo”.
¿Qué es el aprendizaje?
Simon (1983), define el aprendizaje como “cambios en el sistema que se
adaptan de manera que permiten llevar a cabo la misma tarea de un modo más
eficiente y eficaz”.
En la práctica, el aprendizaje se usa para resolver problemas y puede
representar la diferencia entre la resolución rápida y la imposibilidad de
resolverlo. La idea de poder aprender de la propia experiencia en la resolución
de problemas nos lleva a esperar obtener mejores soluciones en un futuro.
El aprendizaje esta relacionado con el conocimiento. Puede definirse como el
proceso mediante el cual un ente adquiere conocimiento. Este conocimiento
puede ser suministrado por otro ente denominado profesor o puede adquirirse
sin la ayuda del mismo.
Hay distintas formas de aprendizaje, entre las cuales se verán:








Aprendizaje memorístico
Aprendizaje a través de consejos
Aprendizaje mediante experiencia en la resolución de problemas
Aprendizaje a partir de ejemplos o Inducción
Aprendizaje basado en explicaciones
Descubrimiento
Analogía
Redes Neuronales
3.2. Aprendizaje memorístico
El aprendizaje memorístico es la actividad de aprendizaje más básica y
rudimentaria. Consiste en el simple almacenamiento de la información
computada.
Este proceso al cual muchos no llamarían aprendizaje, puede considerarse
como tal desde el punto de vista que puede mejorar el rendimiento de un
programa existente. Produce un ahorro cuando el efectuar un cálculo
nuevamente resulta más caro que reutilizar su resultado conocido.
Samuel (1963), en su juego de damas, utiliza una combinación de aprendizaje
memorístico y aprendizaje mediante el ajuste de parámetros (sección 3.4.1).
Utiliza el algoritmo Minimax, memorizando el valor de evaluación de un tablero
raíz. Si en un futuro se llega a una situación similar, se reutiliza la evaluación
memorizada en lugar de aplicar la búsqueda nuevamente.
Surgen dos cuestiones importantes a considerar:
 Almacenamiento organizado de la información: para que resulte
conveniente reutilizar un valor almacenado debe resultar más rápido
buscarlo que recalcularlo, y por lo tanto el almacenamiento debe ser
organizado de acuerdo a algún criterio. Ej. En el programa de Samuel, se
ordenaba en índices las posiciones del tablero por medio de alguna de las
características importantes.
 Generalización de la información: para mantener en un nivel manejable el
número de objetos almacenados se necesita hacer alguna especie de
generalización de la información. Ej. detectar situaciones simétricas en el
tablero.
3.3. Aprendizaje a través de consejos
Otra forma de aprendizaje es a través de consejos. Estos son suministrados
por una persona en un lenguaje de alto nivel, por ej. “lucha por controlar el
centro del tablero de ajedrez”. El programa es capaz de traducir el consejo en
un lenguaje más operativo y usarlo para modificar su comportamiento, por ej.,
ajuste de la función de evaluación para introducir factor basado en el número
de cuadros del centro ocupados por piezas de un color.
Mostow (1983), define FOO, un programa que juega con naipes a “corazones”.
Ejemplo de consejo: “evitar hacer puntos”,
que puede darse en una notación más conveniente tipo LISP:
( evitar
(hacerme_puntos (baza) )
)
Después de un proceso de reemplazos, el programa traduce el consejo a
( llevar_a_cabo
( >=
(AND
( mismo_palo (carta_mia)
posible ( baza_tiene_puntos)
)
)
(carta_baja (carta_mia))
)
)
El programa ha convertido un consejo en una heurística específica que puede
utilizar al jugar, y que lo capacita para jugar mejor.
Una persona podría observar cómo juega el programa, detectar nuevos fallos, y
corregirlos mediante nuevos consejos.
3.4. Aprendizaje mediante experiencia en la resolución de
problemas
En la sección anterior se explica cómo un resolutor de problemas puede
mejorar a través de los consejos de un profesor. En esta sección se explica
cómo un programa puede mejorar sin ayuda externa sino mediante la
generalización de sus propias experiencias.
3.4.1. Aprendizaje por medio del ajuste de parámetros
Este procedimiento consiste en usar una función de evaluación f que combina
la información recibida de diferentes fuentes p1...pn , para formar un único
resumen estadístico.
En los juegos, usar una función de evaluación que combina muchos factores
importantes dando lugar a un único valor que refleje el deseo de ocupar una
posición particular del tablero. Por ej., Samuel (1963) en su juego de damas
usa una función de evaluación
f = c1 * p1 + ... + c16 * p16
con 16 características que contribuyen a la evaluación.
El problema principal es saber asignar a priori los coeficientes, pesos o
ponderaciones c1...cn. El problema de asignar el peso adecuado a cada
característica se denomina “problema de asignación de crédito”, y su solución
no resulta trivial. Una forma de hacerlo es comenzar con alguna estimación de
los valores correctos, y entonces, permitir que el programa los modifique en
base a su propia experiencia.
Existen dos cuestiones importantes al diseñar un programa de aprendizaje
basado en el ajuste de parámetros:
 Cuándo debe aumentar o disminuir el valor un coeficiente
 Cuánto debe cambiar el valor
Aquellas características que parezcan adecuadas deberán aumentar su peso, y
aquellas que no lo hagan, los disminuirán. Es decir, los coeficientes de los
términos que ayuden a predecir el final deben aumentar mientras que deben
disminuir los coeficientes que sean poco predictivos. En aquellos dominios
donde se tenga retroalimentación resulta fácil, por ej. un programa de
clasificación de patrones utiliza su función de evaluación para clasificar una
entrada y obtener la respuesta adecuada, entonces los términos que hayan
contribuido a alcanzar ese objetivo deben aumentar su peso.
En otros dominios, como los juegos, el programa no obtiene ninguna
retroalimentación de los movimientos individuales, y por lo tanto no es posible
saber si se ha ganado hasta el final del juego. El programa de Samuel, si bien
usa una técnica imperfecta, resolvía este problema. Inicialmente se comenzaba
con una función lo suficientemente buena, y a continuación ésta se usaba para
proporcionar una retroalimentación a sí misma. Las secuencias de movimientos
que llevan a posiciones con valores más altos se pueden considerar como
buenas, y los términos en la función que afectan deben reforzarse. Cuando el
programa se encontraba en modo aprendizaje, jugaba contra una copia
modificada de sí mismo que alteraba su función durante el juego. Si la copia
modificada ganaba, la función se tomaba como válida. En caso contrario, se
retenía la antigua. Si ésta última situación se repetía varias veces, se trataba
de dar un cambio drástico a la función. Periódicamente se eliminaba uno de los
16 términos de la función, y se cambiaba por otro elegido entre 38
características, produciendo un cambio súbito en la función.
Las mayores limitaciones de este proceso de aprendizaje son debidas a que no
se usa ningún conocimiento acerca de la estructura del problema y las
relaciones lógicas entre componentes del mismo. Dado que este proceso
puede verse como una variante de la escalada, experimenta las mismas
dificultades. Resulta una técnica útil combinada con el uso de conocimiento
adicional.
3.4.2. Aprendizaje con macro-operadores
Al igual que en el proceso de memorización, el uso de macro-operadores trata
de evitar el volver a realizar cálculos que ocupen mucho tiempo.
Se denomina macro-operador a una secuencia de acciones que se pueden
tratar en conjunto.
El programa STRIPS (Fikes & Nilsson, 1971), es un sistema de resolución de
problemas mediante robot. Existen un brazo mecánico, con el que se intenta
resolver problemas en el dominio del mundo de los bloques. Inicialmente los
operadores disponibles son APILAR (A,B), DESAPILAR (A,B), AGARRAR(A),
BAJAR(A). Un problema se describe mediante una precondición y una
postcondición. Por ejemplo, el siguiente problema:
SOBRE (C,B) AND SOBRE (A,MESA) =>SOBRE(A,B) AND SOBRE (C,MESA)
Este problema se soluciona con la siguiente secuencia de operadores:
DESAPILAR (C,B), BAJAR (C), AGARRAR(A), APILAR (A,B)
Después de cada resolución, el componente de aprendizaje toma el plan
computado y lo almacena en un macro-operador con las precondiciones y
postcondiciones correspondientes. En el futuro, este es un nuevo operador que
puede utilizarse para solucionar un subproblema con las mismas pre y
postcondiciones.
Si se generalizan los macro-operadores antes de almacenarlos, el programa
será capaz de hacer uso de él en situaciones no idénticas sino similares. Por
ej., la generalización del macro-operador del ejemplo anterior es:
DESAPILAR (x3,x2), BAJAR (x3), AGARRAR(x1), APILAR (x1,x2)
El cual tiene las siguientes pre y postcondiciones:
SOBRE (x3,x2) AND SOBRE (x1,MESA) => SOBRE(x1,x2) AND
SOBRE (x3,MESA)
3.4.2. Aprendizaje mediante troceado
Esta técnica denominada troceado o chunking es un proceso similar al de los
macro-operadores.
El programa SOAR (Laid, 1987) es una arquitectura general para construir
sistemas inteligentes que usa la técnica de chunking de modo que su
rendimiento puede aumentar con la experiencia. Se basa en un conjunto de
hipótesis específicas cognoscitivas y motivadas similares a la estructura de
resolución de problemas de los hombres.
El sistema cuenta de diferentes partes:
 Memoria de largo plazo: contiene reglas u operadores a aplicar
 Memoria de corto plazo: almacena hechos deducidos de la aplicación de
reglas.
 Actividades resolutoras: incluyen razonamiento de qué estados se deben
explorar y qué reglas se deben aplicar. En lugar de emplear una estrategia
fija, la elección de una regla depende de la utilidad que ésta presente frente
una situación dada.
Cuando el sistema detecta una secuencia de reglas útiles para resolver un
subproblema dado, estos resultados intermedios son almacenados o
“troceados” para referencia futura.
Dado que la resolución de problemas es uniforme, el troceado puede usarse
para aprender conocimiento de control de búsqueda general, además de
secuencia de operadores. Por ej., si SOAR prueba con varias reglas diferentes
pero sólo una le conduce por un camino adecuado en el espacio de búsqueda,
entonces SOAR puede construir nuevas reglas que le ayuden a elegir a su vez
los operadores de un modo más acertado en el futuro.
A diferencia de los macro-operadores, el troceado casi siempre se aplica en
dirección a cualquier estado objetivo en lugar de planearse para alcanzar un
estado objetivo o postcondición especial.
El principal problema consiste en que las reglas ocupan demasiado espacio, y
por lo tanto el tiempo de análisis de aplicación de reglas es grande. PRODIGY
(Minton, 1989) identifica el problema de la utilidad en los sistemas de
aprendizajes. Mantiene una medida de utilidad asociada a cada regla, la cual
toma en cuenta la frecuencia de aplicación de la misma, así como el tiempo y
memoria consumidos. Si una regla dada tiene una utilidad negativa, se la
ignora, por lo tanto se mejoran los tiempos de búsqueda y acceso.
3.5. Aprendizaje a partir de ejemplos o Inducción
La clasificación es el proceso de asignarle a una cierta entras concreta el
nombre de una clase a la que pertenece. Se emplea en tareas de
reconocimiento como por ej. reconocimiento de caracteres, de piezas
defectuosas, etc.
En primer lugar se deben definir las clases que utilizará la clasificación. Las
clases pueden describirse usando:
 Modelo estadístico: cada clase está definida por una función F que incluye
las características ci relevantes del dominio específico ponderadas por un
peso pi
F = c1 * p1 + ... + cn * pn
 Modelo estructural: cada clase está definida por una estructura compuesta
por las características relevantes del dominio específico. Ej. si la tarea es
definir clases de animales, el cuerpo puede verse como una estructura de
color, cantidad de patas, longitud, manchas, etc.
Dado que la tarea de construir manualmente las clases resulta un proceso
difícil, se pretende que el programa de clasificación incluya las definiciones de
sus propias clases.
El proceso de construir definiciones de clases se denomina aprendizaje de
conceptos o inducción. Si las clases se definen con un modelo estadístico, el
aprendizaje de conceptos se puede hacer utilizando una técnica conocida
como ajuste de parámetros (sección 3.4.1.). En esta sección se verán tres
técnicas de aprendizaje de conceptos para clases definidas de un modo
estructural.



Programa de aprendizaje de Winston
Espacios de versiones
Árboles de decisión
Estas técnicas tienen en común que comienzan el proceso de aprendizaje a
partir de una serie de ejemplos de entrenamiento de los que se conoce su
clasificación.
3.5.1. Programa de aprendizaje de Winston
Winston (1975) describe uno de los primeros programas de aprendizaje de
conceptos estructurales. Su objetivo consistía en construir representaciones de
las definiciones de conceptos del dominio del mundo de los bloques, por ej. los
conceptos “casa”, “arco”, etc. construidos a partir de la estructuración de otros
conceptos más simples como “ladrillo”, “cilindro”, etc.
El algoritmo tiene tres pasos:
1- Comenzar analizando una instancia conocida del concepto y construir su
descripción estructural.
2- Estudiar descripciones de otras instancias conocidas del concepto para
generalizar la definición hecha en el paso1. De esta manera, todas las
instancias están incluidas en la nueva descripción.
3- Examinar descripciones de “semejantes” u objetos que no son instancias
del concepto, para restringir la definición hecha en el paso 2. De esta
manera, todos los semejantes están excluidos en la nueva descripción.
Ejemplo: se quiere inducir el concepto “arco”. La figura 1 muestra dos
instancias de arcos A1 y A2, y una instancia de semejante S1 no considerado
arco.
A1
A2
FIGURA 1
S1
En el paso 1 se comienza analizando la instancia A1, cuya descripción podría
ser:
tiene_parte (A1,B1) AND tiene_parte (A1,C1) AND tiene_parte (A1,D1) AND
apoya (C1,B1) AND apoya (C1,D1) AND es_un (B1, ladrillo) AND
es_un(C1,ladrillo) AND es_un (D1, ladrillo) AND no_union (B1,D1)
En el paso 2 se analiza la otra instancia A2, cuya descripción podría ser:
tiene_parte (A2,B2) AND tiene_parte (A2,C2) AND tiene_parte (A2,D2) AND
apoya (C2,B2) AND apoya (C2,D2) AND es_un (B2, ladrillo) AND
es_un(C2,cilindro) AND es_un (D2, ladrillo) AND no_union (B2,D2)
Luego, la descripción se generaliza para incluir a ambas instancias:
tiene_parte (A,B) AND tiene_parte (A,C) AND tiene_parte (A,D) AND
apoya(C,B) AND apoya (C,D) AND es_un(B, ladrillo) AND es_un(C2,objeto)
AND es_un(D,ladrillo) AND no_union (B,D)
donde se consideró que tanto “ladrillo” como “cilindros” eran instancias de una
clase superior “objeto”.
En el paso 3 se considera la instancia del semejante S1:
tiene_parte (S1, T1) AND tiene_parte (S1, U1) AND tiene_parte (S1,V1) AND
apoya(U1,T1) AND apoya (U1,V1) AND es_un(T1, ladrillo) AND
es_un(U1,ladrillo) AND es_un(V1,ladrillo)
La definición del concepto debe ahora modificarse para que explícitamente el
semejante sea excluido de la misma. La relación no_union es la única
diferencia con las instancias del concepto. Dado que ésta puede haberse
establecido por casualidad debido al número pequeño de instancias
consideradas, la definición debe excluir de manera explícita al semejante
fortaleciendo la relación con “no_debe_union”: Por lo tanto, la descripción
queda de la siguiente manera:
tiene_parte (A,B) AND tiene_parte (A,C) AND tiene_parte (A,D) AND
apoya(C,B) AND apoya (C,D) AND es_un(B, ladrillo) AND es_un(C2,objeto)
AND es_un(D,ladrillo) AND no_debe_union (B,D)
Uno de los problemas de este enfoque de aprendizaje es que debe existir un
profesor que conduzca el programa mediante una serie de ejemplos escogidos
y ordenados cuidadosamente.
3.5.2. Espacios de versiones
Mitchell (1977) describe el aprendizaje llamado espacios de versiones
(version spaces).
El objetivo es el mismo que en el esquema anterior, es decir, producir una
descripción de un concepto a partir de un entrenamiento con ejemplos positivos
y negativos.
Difiere del esquema anterior en que no se ve afectado por el orden en que se
presentan los ejemplos. Además, en lugar de describir un único concepto este
esquema mantiene un conjunto de descripciones posibles hasta arribar a la
definición del mismo.
Para representar un concepto se usa un lenguaje de representación basado en
marcos. Por ejemplo, el concepto “coche” se representa:
origen = x1
marca = x2
color = x3
década = x4
tipo = x5
donde
x1  {Japón, EEUU, UK, Italia,...}
x2  {Honda, Toyota, Chrysler, Fiat,...}
x3  {azul, blanco, amarillo, verde,...}
x4  {1950,1960,1970,1980,1990,2000,...}
x5  {económico, lujo, deportivo,...}
Un ejemplo o instancia del concepto “coche” en particular:
origen = Japón
marca = Honda
color = azul
década = 1970
tipo = económico
La descripción de conceptos se puede poner en términos de ranuras y valores.
Por ejemplo, el concepto “coche económico japonés”
origen = Japón
marca = x2
color = x3
década = x4
tipo = económico
El objetivo es producir una descripción como la anterior que sea consistente
con todos los ejemplos de entrenamiento positivos y que no lo sea con los
ejemplos de entrenamiento negativos.
Dado que existen descripciones más generales que otras se puede establecer
un orden parcial entre ellas. La ordenación parcial completa se denomina
espacio de conceptos. La parte superior del espacio de conceptos se
denomina G y constituye la descripción nula que consta sólo de variables (ej.
concepto “coche”). La parte inferior denominada S la constituyen todas las
posibles instancias de entrenamiento que no contienen variables. El concepto
destino se encuentra en algún lugar del espacio de conceptos intermedio entre
los extremos G y S.
A medida que se procesan los ejemplos de entrenamiento se va refinando la
noción de dónde se encuentra el concepto destino. Existe un subconjunto del
espacio de conceptos llamado espacio de versiones constituida por todas las
descripciones por las que se va pasando a medida que se procesan los
ejemplos.
El algoritmo de eliminación de candidatos reduce el espacio de versiones a
medida que procesa los ejemplos, y se describe a continuación:
1- Inicializar G con la descripción nula.
2- Inicializar S con el primer ejemplo positivo.
3- Aceptar un nuevo elemento de entrenamiento.
 Si es ejemplo positivo, eliminar de G cualquier descripción que no lo
cubra. Actualizar S generalizándolo lo menos posible de manera que
cubra el ejemplo.
 Si es ejemplo negativo, eliminar de S cualquier descripción que lo
cubra. Actualizar G especificándolo lo menos posible de manera que
no cubra el ejemplo.
4- Si S y G con unitarios e iguales el concepto destino se alcanzó. Si en cambio
son unitarios y diferentes, los ejemplos de entrenamiento son inconsistentes.
En otro caso, repetir paso 3.
Ejemplo: inducir el concepto "coche económico japonés"
Se inicializa G con:
G = { (x1,x2,x3,x4,x5)}
-
El primer ejemplo positivo:
origen = Japón
marca = Honda
color = azul
década = 1970
tipo = económico
sirve para inicializar S con:
S = { (Japón,Honda,azul,1970,económico)}
-
El segundo ejemplo es negativo:
origen = Japón
marca = Toyota
color = verde
década = 1970
tipo = deportivo
y por lo tanto se especifica G para no incluirlo:
G = { (x1,Honda,x3,x4,x5), (x1,x2,azul,x4,x5), (x1,x2,x3,x4,económico)}
En este caso no se elimina ningún elemento de S pues este ejemplo no está
incluido.
-
El tercer ejemplo es positivo:
origen = Japón
marca = Toyota
color = azul
década = 1990
tipo = económico
y por lo tanto se eliminan de G las descripciones inconsistentes para incluirlo:
G = {(x1,x2,azul,x4,x5), (x1,x2,x3,x4,económico)}
y generalizo S lo mínimo posible para incluir este ejemplo:
S = { (Japón,x2,azul,x4,económico)}
-
El cuarto ejemplo es negativo:
origen = EEUU
marca = Chrysler
color = azul
década = 1980
tipo = económico
y por lo tanto se especifica G para no incluirlo:
G = { (Japón,x2,azul,x4,x5), (Japón,x2,x3,x4,económico)}
En este caso no se elimina ningún elemento de S pues este ejemplo no está
incluido.
-
El quinto ejemplo es positivo:
origen = Japón
marca = Honda
color = blanco
década = 1980
tipo = económico
y por lo tanto se eliminan de G las descripciones inconsistentes para incluirlo:
G = {(Japón,x2,x3,x4,económico)}
y generalizo S lo mínimo posible para incluir este ejemplo:
S = { (Japón,x2,x3,x4,económico)}
Dado que G y S convergen en un conjunto unitario se llegó a la descripción del
concepto buscada.
Los ejemplos negativos deberían ser lo más parecido a los positivos anteriores
(especifico G y elimino de S rápido), y los positivos lo más diferentes posible
(elimino de G y generalizo S rápido), para que la convergencia se produzca
más rápido.
Uno de los problemas de este esquema de aprendizaje es el ruido, es decir, un
error en el etiquetado de un ejemplo, puede causar que se pode del espacio de
versiones el concepto destino. Por ejemplo, si el coche ejemplo 3 se etiqueta
como negativo por error, no se llega al concepto de coche económico japonés.
Una forma de solucionar este problema (Mitchell, 1978) consiste en mantener
varios conjuntos G y S. Un conjunto G es consistente con todas las instancias
de entrenamiento, otro lo será con todas menos una, otro con todas menos
dos, etc. (idem para S). Cuando se presenta una inconsistencia, el algoritmo
cambia de conjuntos de entrenamiento. Sin embargo, mantener múltiples
espacios de versiones puede resultar muy costoso.
3.5.3. Árboles de decisión
Un tercer enfoque para el aprendizaje de conceptos a partir de ejemplos de
entrenamiento lo constituyen los árboles de decisión (decision trees).
El programa ID3 (Quinlan, 1986) utiliza una representación de árbol para los
conceptos. Para clasificar una entrada particular, se empieza por la parte
superior del árbol y se responden pregunta hasta llegar a una hoja en donde se
guarda la clasificación. Por ejemplo, la figura 2 muestra la especificación con
un árbol de decisión del concepto "coche económico japonés".
Origen?
EEUU
Italia
UK
(-)
(-)
(-)
Japón
Tipo?
deportivo
(-)
económico
lujo
(+)
(-)
FIGURA 2
El programa ID3 construye automáticamente un árbol de decisión dadas
diferentes instancias positivas y negativas del concepto destino. Es
básicamente un algoritmo iterativo, que comienza eligiendo un subconjunto
aleatorio de ejemplos de entrenamiento llamado "ventana". El algoritmo
construye un árbol que clasifica todos los ejemplos de la ventana, y prueba con
ejemplos de entrenamiento fuera de la ventana. Si todos los ejemplos son
correctamente clasificados, el algoritmo finaliza. En caso contrario, se añaden a
la ventana un número de ejemplos y el proceso se repite. Los árboles se
construyen creando nodos a partir de atributos que proporcionan más
información que otros. Por ejemplo, probar con el atributo color es menos útil
que el origen, pues el primero no ayuda a la hora de clasificar correctamente.
Cuando se llega a atributos que dividen perfectamente las instancias de
entrenamiento en subconjuntos cuyos miembros participan con una etiqueta
común (positivo o negativo) la ramificación ha terminado y los nodos hoja están
etiquetados.
3.6. Aprendizaje basado en explicaciones
En la sección anterior se explicó un aprendizaje basado en la inducción de la
descripción de un concepto a partir de una serie de ejemplos de entrenamiento
positivos y negativos. El problema de este enfoque es que se necesita un
número elevado de ejemplos para inducir conceptos complejos.
A veces se aprende mejor a partir de una única experiencia en lugar de miles
de ejemplos positivos y negativos. El uso de conocimiento específico permite
identificar los aspectos críticos del ejemplo de entrenamiento. Este enfoque se
denomina aprendizaje basado en explicaciones (explanation-based
learning EBL).
Tanto Mitchell (1986) como DeJong y Mooney (1986) describen algoritmos de
trabajo EBL que aceptan como entrada:




Una descripción de un ejemplo de entrenamiento
Una descripción de alto nivel del concepto objetivo que debe aprender el
programa
Un criterio de operatividad o descripción de qué conceptos son
aprovechables
Una teoría del dominio o conjunto de reglas específicas del dominio.
El algoritmo realiza dos pasos:
1- Explicación: realiza una explicación del por qué el ejemplo de entrenamiento
es una instancia del concepto objetivo. Usa el conocimiento de la teoría del
dominio y poda los aspectos del ejemplo de entrenamiento que no son
importantes respecto al concepto objetivo.
2- Generalización: realiza una generalización de la explicación del paso 1 para
describir el concepto objetivo.
Ejemplo: se quiere dar una explicación del concepto "copa".
A diferencia de la inducción a partir de ejemplos del concepto "arco" (sección
3.5.1.), se realizará la explicación del concepto "copa" a partir de un único
ejemplo de entrenamiento junto con el conocimiento que se tiene del dominio
específico de objetos.
Se tiene como entrada:
 Una descripción de un ejemplo de entrenamiento objeto1:
tiene_parte
(objeto1,fondo1)
AND
es(fondo1,
plano)
AND
tiene_parte(objeto1,asa1) AND tiene_parte (objeto1,concavidad1) AND
es(objeto1,ligero) AND propietario(objeto1,Pepe) AND color (objeto1, cristalino)
AND es(concavidad1, hacia_arriba) AND . . .

Una descripción de alto nivel del concepto objetivo que debe aprender el
programa
COPA (x) <=> se_puede_agarrar(x) AND estable (x) AND recipiente_abierto(X)

Un criterio de operatividad o descripción de qué conceptos son
aprovechables
El concepto debe expresarse en términos puramente estructurales (ej.
características como ligero, plano, etc. en lugar de otras como posesión, color,
etc.).

Una teoría del dominio o conjunto de reglas específicas del dominio.
-
es (x,ligero) AND tiene_parte (x,y) AND es_un (y,asa) =>
se_puede_agarrar(x)
tiene_parte(x,y) AND es_un(y,fondo) AND es(y,plano) => estable(x)
tiene_parte(x,y) AND es_un(y,concavidad) AND es (y, hacia_arriba) =>
recipiente_abierto(x)
etc.
-
En el paso 1 se trata de realizar la explicación de por qué el ejemplo de
entrenamiento objeto1 es una instancia del concepto destino COPA(x). Para
ello se realiza un proceso de demostración de teoremas usando la descripción
del objeto1 junto con el conocimiento del dominio. Se llega a afirmaciones
como las siguientes:
es (objeto1,ligero) AND tiene_parte (objeto1,asa1) AND es (asa1,asa)
=> se_puede_agarrar(objeto1)
AND
tiene_parte(objeto1,fondo1) AND es_un(fondo1,fondo) AND es (fondo1,plano)
=> estable(objeto1)
AND
tiene_parte(objeto1,concavidad1) AND es_un(concavidad1,concavidad) AND
es (concavidad1, hacia_arriba)
=> recipiente_abierto(objeto1)
por lo tanto
COPA(objeto1)
En esta demostración se observa que no aparecen los predicados propietario y
color, y que por lo tanto la prueba aísla las características relevantes del
ejemplo de entrenamiento.
En el paso 2, se sustituyen las constantes por variables generalizando la
demostración para obtener la siguiente descripción de una "copa":
COPA(x) <=> es (x,ligero) AND tiene_parte (x,y) AND es (y,asa) AND
tiene_parte(x,z) AND es_un(z,fondo) AND es (z,plano) AND tiene_parte(x,w)
AND es_un(w,concavidad) AND es(w,hacia_arriba)
A diferencia que el método de inducción que extrae todo el conocimiento de los
ejemplos, en este enfoque se centra todo el conocimiento en la teoría del
dominio. El EBL podría aplicarse sin tener en cuenta un ejemplo de
entrenamiento, ya que la teoría del dominio tiene toda la información requerida.
Esto caracterizaría el rango completo de objetos que satisfacen el concepto
objetivo, incluso aquellos que no existen en el mundo real. Para centrar el
aprendizaje en las operacionalizaciones importantes, se usa la descripción del
ejemplo de entrenamiento la cual acota y guía hacia el concepto objetivo
deseado.
3.7. Descubrimiento
Según se definió en la introducción, el aprendizaje es un proceso por medio del
cual una entidad adquiere conocimiento. Normalmente, otras entidades poseen
ese conocimiento y sirven de profesores. A veces, no existen entidades que
posean el conocimiento que se busca. El descubrimiento es una forma de
aprendizaje en la que una entidad adquiere conocimiento sin la ayuda de un
profesor.
En esta sección se verán tres tipos de
descubrimiento:
 Descubrimiento conducido por teorías
 Descubrimiento conducido por datos
 Clustering
sistemas automáticos de
3.7.1. Descubrimiento conducido por teorías
Lenat (1977;1982) realizó el programa AM el cual realiza el descubrimiento de
una gran cantidad de cosas sobre la teoría de números a partir de pocos
conceptos básicos de la teoría de conjuntos.
AM utiliza una búsqueda heurística con 250 reglas, las cuales son indicaciones
acerca de las actividades que probablemente servirán de guías para alcanzar
el descubrimiento. Por ej.
- Si f es función de A en B, y B está ordenado =>crear un nuevo concepto
que surge de considerar los elementos de A que se corresponden con los
extremos de B
- Si algunos ejemplos del concepto X también son ejemplos de otro concepto
Y => crear un nuevo concepto que represente la intersección entre X e Y
- Si hay muy pocos ejemplos de un concepto X => añadir a la lista de tareas
la de encontrar una generalización de X
- etc.
El programa utiliza generación y prueba para formar hipótesis basadas en
número pequeño de ejemplos, y luego prueba la hipótesis con un conjunto
mayor para comprobarla.
AM tiene una agenda de tareas sugeridas por las heurísticas de mayor interés,
y en cada paso se elige realizar la tarea más prometedora.
Ejemplo: AM llega a descubrir el concepto de números primos
1- AM exploró las operaciones de +, *, - y / de los números naturales.
2- AM creo el concepto de divisibilidad
3- AM encuentra que algunos números tienen pocos divisores
4- AM sigue la heurística de explorar extremos, y encuentra que:
- el conjunto de números que no tienen divisores esta vacío
- el conjunto de números que tienen 1 divisor es {1}
- el conjunto de números que tienen 2 divisores: crea nuevo concepto
"primos"
- el conjunto de números que tienen 3 divisores: encuentra el 49
5- AM trata de relacionar la propiedad descubierta del 49 con otras propiedades
como la de ser impar y ser cuadrado perfecto.
6- AM genera otros números impares y cuadrados perfectos para verificar la
hipótesis.
7- Con los últimos descubrimientos, AM eleva el interés del concepto de divisor.
AM investiga maneras en que un número puede descomponerse en factores o
componentes multiplicativos. AM descubre que hay sólo una manera de
descomponer un número en factores primos (Teorema de la factorización
única).
8- AM decide explorar lo mismo con componentes aditivos. Ademas de
descubrir cosas con poco interés (ej. un número se descompone como suma
de números 1), también descubre fenómenos como el de que muchos números
pueden expresarse como suma de dos primos. A base de listar casos descubre
que todos los números >= 2 tienen esa propiedad (Conjetura de Goldbach).
Una de las primeras preguntas sobre AM fue si era capaz de descubrir nuevos
hechos desconocidos por los matemáticos. La respuesta es negativa debido a
que la limitación de AM son las heurísticas fijas. Se propuso como solución a
este problema el considerar a las heurísticas como el propio dominio del
problema del que se quieren realizar nuevos descubrimientos. Siguiendo esta
idea, AM debería ser capaz de descubrir nuevas heurísticas.
Lamentablemente, debido a que los conceptos son más grandes y complejos
que en la teoría de números, estos experimentos no tuvieron el éxito esperado.
3.7.2. Descubrimiento conducido por datos
A diferencia del descubrimiento en un encuadre teórico visto en la sección
3.7.1., Langley (1981) realiza un modelo de descubrimiento científico
conducido por datos llamado BACON. Al igual que un científico empírico,
BACON diseña y ejecuta experimentos con datos para validar hipótesis. Tiene
heurísticas que le ayudan en el proceso, como por ejemplo buscar relaciones
lineales entre variables.
Ejemplo: estudio del comportamiento de los gases
1- BACON comienza con un conjunto de variables
P: presión del gas
V: volumen del gas
T: temperatura del gas
N: cantidad de gas
2- BACON considera como constantes las variables N y T, y realiza
experimentos variando P. Se da cuenta de que si aumenta P, la variable V
disminuye. Descubre que P * V = constante.
Continúa el proceso variando T, y encuentra que existe relación lineal entre
P*V y T.
Finalmente varía n y encuentra que existe relación lineal entre N y P*V/T,
descubriendo la ley de los gases ideales: P * V / N * T = 8.32
3.7.3. Clustering
Al igual que en el proceso de aprendizaje por inducción, se cuenta con
ejemplos de entrenamiento pero a diferencia de éste no existe un profesor que
proporcione la clasificación de los mismos.
El descubrimiento por medio de agrupamiento o clustering se basa en descubrir
las clases naturales que existen en los ejemplos de entrenamiento, sin la ayuda
de un profesor.
AUTOCLASS (Cheeseman, 1988) es un programa que acepta un número de
casos de entrenamiento y obtiene un conjunto de clases. Ante la presencia de
un nuevo caso para el cual el programa no fue entrenado, éste proporciona un
conjunto de probabilidades que predicen en qué clase irá incluido.
AUTOCLASS realiza el clustering utilizando el razonamiento Bayesiano
estadístico.
Resulta interesante saber que AUTOCLASS fue probado con datos del
espectro infrarrojo de las estrellas y encontró tan sólo 9 clases, dato aún
desconocido para los astrónomos.
3.8. Analogía
La analogía es una correspondencia entre conceptos aparentemente
diferentes. Es una herramienta de inferencia utilizada naturalmente en nuestro
lenguaje y razonamiento.
Por ejemplo, si tomamos la frase "el mes pasado la bolsa era como una
montaña rusa", por analogía podemos entender que la bolsa sufrió grandes
fluctuaciones. Para entender la frase debemos:
1- Escoger una propiedad clave de la montaña rusa, por ejemplo, que baja y
sube muy rápido.
2- Darse cuenta de que el viaje físico es una analogía para la fluctuación
numérica de la bolsa.
Este proceso no es tan fácil, pues el espacio de analogías es muy amplio y no
debe caerse en conclusiones erróneas como "la bolsa es como una montaña
rusa porque está hecha de metal".
Los hombres resuelven problemas haciendo analogías con cosas que ya
conocen. Este proceso es más complejo que el resolver problemas mediante
macro-operadores (sección 3.4.1.), dado que el nuevo problema resulta muy
diferente al problema primitivo ya resuelto.
Existen dos métodos de resolución de problemas por analogía:
 Analogía transformacional
 Analogía derivacional
3.8.1. Analogía transformacional
La idea de la analogía transformacional es transformar una solución de un
problema previo en la solución del nuevo problema a resolver (figura 3)
Problema
nuevo
Problema
viejo
Solución
nueva
Solución
vieja
transformar
FIGURA 3
Ejemplo: Anderson y Kline (1979) crearon un programa de resolución de
problemas de geometría plana. El programa ha visto demostraciones acerca de
puntos y segmentos lineales, y puede por ejemplo probar un teorema sobre
ángulos.
Problema viejo:
Problema nuevo:
Y
N
C
B
D
E
O
R
A
Solución al problema viejo:
Solución al problema nuevo:
A partir de
Sustituye la noción de punto por la de
línea, y la de segmento por la de
ángulo: R por AE, O por AD, N por AC,
Y por AB
RO = NY
Realiza la demostración de RN = OY:
RO = NY
ON = ON
RO + ON = ON + NY
RN = OY
EAD = CAB
DAC = DAC
EAD + DAC = DAC + CAB
EAC = DAB
3.8.2. Analogía derivacional
A menudo las peculiaridades involucradas en la resolución de un problema
antiguo son relevantes para resolver el nuevo. Al razonamiento por analogía
que toma en cuenta el historial detallado del episodio de resolución se le llama
analogía derivacional (figura 4). Este enfoque resulta un área extensa de
investigación en la actualidad (Hall, 1989).
Problema
nuevo
Problema
viejo
derivación nueva
derivación vieja
Solución
nueva
Solución
vieja
FIGURA 4
Ejemplo: se ha codificado en C++ una rutina de clasificación, y se pide
recodificar la misma rutina en LISP.
Una traducción línea por línea del programa no resulta adecuada, sino que se
deberían reutilizar el análisis, las principales decisiones estructurales y de
control que se tomaron al construir el programa en C++.
Una manera de modelar este comportamiento es tener un resolutor de
problemas que repita la derivación previa y que la modifique cuando sea
necesario.
3.9. Aprendizaje con Redes Neuronales
Los primeros esfuerzos en el aprendizaje de máquinas intentaron imitar el
aprendizaje animal a nivel neuronal. Las redes neuronales han visto su
resurgimiento en los años recientes, como resultado del descubrimiento de
nuevos y poderosos algoritmo de aprendizaje.
Dadas las amplias características que se pueden encontrar en las neuronas, la
gente que intenta entender y duplicar su comportamiento se centra en tan sólo
unas cuantas características notables de las mismas. En esta sección se verán
diferentes tipos de redes neuronales:
 Redes neuronales de alimentación positiva
 Perceptrones
 Redes de interpolación y de aproximación
3.9.1. Redes neuronales de alimentación positiva
Una neurona consta de las siguientes partes (figura 5):
- Un cuerpo;
- Muchas dendritas: protuberancias que facilitan la conexión con los axones
de otras neuronas;
- Un axón: protuberancia que transporta la salida de la neurona hasta las
conexiones de otras neuronas.
Una neurona es un dispositivo de todo o nada. La neurona no hace nada a
menos que la influencia colectiva de todas sus entradas (sinapsis) alcance un
nivel de umbral. En ese caso la neurona se dispara, es decir, produce una
salida de potencia completa, que se manifiesta como un pulso estrecho que se
desplaza del cuerpo por el axón, hasta las ramas de este.
dendritas
axón
cuerpo
FIGURA 5
Considerando estas características se puede realizar el modelo de neurona
indicado en la figura 6.
W1
W2
F=Σ si*wi
1 si F > umbral
0 si F<= umbral
Wi
FIGURA 6
Los pesos wi modelan las propiedades de las sinapsis; la sumatoria de la
función de activación modela la capacidad de combinar la influencia de todas
las dendritas; la función de umbral que da como resultado 1 ó 0 modela la
característica de todo o nada de los mecanismos del cuerpo de la célula.
columna i
columna j
FIGURA 7
columna k
columna z
Se puede realizar una red neuronal organizada por columnas según se muestra
en la figura 7. La primera columna de la red es la que recibe la alimentación
inicial. Cada neurona de una columna produce una salida que alimenta a las
neuronas de la siguiente columna. Finalmente la ultima capa de neuronas es la
única que produce una salida visible, y por esto el resto de las neuronas se
denominan nodos ocultos.
Ejemplo: la figura 8 muestra una red neuronal que, a partir de dos entradas
activadas entre los elementos A1,A2,A3, B1,B2,B3 (los tres primeros de la
clase A y los tres últimos de la clase B), reconoce si éstos son de igual o
distinta clase.
A1
A2
1
1
1
Nodo11
0.5
Nodo21
1
1.5
A3
Distinta
clase
1
-1
B1
B2
B3
1
1
1
0.5
-1
Nodo12
-1.5
Igual
clase
Nodo22
FIGURA 8
Para solucionar este problema se realiza la red neuronal mostrada en la figura
anterior, que consta de una capa de nodos ocultos y una capa de nodos de
salida que emiten las conclusiones. Se muestran los pesos asignados a las
entradas además de los umbrales de cada nodo.
Si por ejemplo, sólo se activan las entradas A1 y A3:




el nodo11 computa 1*A1+1*A2+1*A3 = 1*1+1*0+1*1 = 2, y como 2>0.5 su
salida S11=1
el nodo12 computa 1*B1+1*B2+1*B3 = 1*0+1*0+1*0 = 0, y como 0<=0.5 su
salida s12= 0
el nodo21 computa 1*S11+1*S12 = 1*1+1*0 = 1, y como 1<=1.5 su salida
S21=0.
el nodo22 computa (-1)*S11+(-1)*S12 = (-1)*1+(-1)*0 = -1, y como –1>(-1.5)
su salida S22=1.
La interpretación de las salidas nos indica que las entradas A1 y A3 son de
igual clase. Queda como ejercicio pendiente el probar con entradas de distinta
clase, por ejemplo A1 y B1.
Entrenamiento de redes neuronales
Luego de un primer ejemplo con redes neuronales se puede concluir que la
tarea más difícil es la asignación de los pesos wi y los umbrales para que la red
se comporte de la manera deseada.
En la práctica, las redes neuronales se entrenan con una serie de muestras de
entrenamiento de manera que realizan el aprendizaje automático de los pesos
y umbrales. Se consideran ejemplos de entrada de los que se conoce la salida
deseada. A continuación se realiza el entrenamiento iterativo de la red con
estos ejemplos. En cada paso se realizan pequeños ajustes a los valores de
pesos y umbrales para acercarlos a los valores que proporcionarán el
comportamiento deseado de la red. El entrenamiento finaliza cuando la salida
obtenida sea la deseada.
El algoritmo de entrenamiento usa una medida de calidad que indica la calidad
de la red actual, es decir, cómo se comporta la red con los ejemplos de
entrenamiento. La medida de calidad estará dada en función de los pesos y
umbrales, y por lo tanto puede considerarse una función en el campo vectorial
de los pesos y umbrales. En particular puede usarse la siguiente medida de
calidad P:
P = Σs Σz (-esz)2
donde
s: índice para las muestras de entrenamiento
z: índice para las salidas
esz =dsz - osz, es el error entre la salida z-ésima deseada dsz y la salida z-ésima
obtenida osz para la muestra s-ésima.
El objetivo del algoritmo de entrenamiento es obtener en cada paso, los
cambios de los valores de pesos y umbrales que proporcionen la máxima
mejora de la medida de calidad. Esto es lo que se denomina ascenso del
gradiente (el gradiente de una función indica la dirección en la que se
encuentra la máxima variante de la función).
Antes de seguir con el algoritmo de entrenamiento,
cuestiones:

se consideran dos
Es conveniente tratar a pesos y umbrales de manera similar, por esto se
unifica dicho tratamiento. En lugar de considerar una función de activación
1 si F=Σ si*wi > umbral
0 si F=Σ si*wi <= umbral
se considera una nueva F’
1 si F’=Σ si*wi – umbral > 0
0 si F’=Σ si*wi – umbral <= 0
De esta manera, el umbral es tratado como un peso de una entrada
extra que siempre está en –1.

Dado que la función de activación contiene un salto (figura 9.a) para tratarla
matemáticamente en el algoritmo a explicar, se transforma en una función
suave de derivada continua (figura 9.b).
1
1
0
0
0
0
a)
b)
FIGURA 9
La derivada de la función umbral F con respecto a su argumento se puede
expresar como:
F() = o (1-o)

ECUACIÓN 1
Recordemos el objetivo: se tienen una serie de pesos que se desean mejorar y
se tiene un conjunto de muestras de entrada junto con la salida deseada de
cada una.
La idea de ascenso del gradiente consiste en ascender la calidad o mejora de
la función P más rápidamente, mediante la alteración de todos los pesos en
proporción a la derivada parcial correspondiente. El cambio a cada peso en
particular se realiza en la medida que este conduzca a reducir el error
observado en la salida. En otras palabras, en cada paso, la variación de cada
peso wi->j (correspondiente a la conexión de un nodo de la columna i con otro
de la columna j) será proporcional a la derivada parcial de la medida de calidad
P con respecto al peso:
wi->j  P
wi->j
ECUACIÓN 2
La medida de calidad P está dado como una suma sobre todas las muestras de
entrada. A continuación se enfoca la atención a una muestra de entrada en
particular para reducir los subíndices, sabiendo que luego se realizará la suma
de los ajustes derivados de cada muestra.

Para realizar la derivada parcial de P con respecto a wi->j de manera
eficiente, se expresa usando la regla de la cadena, mediante la variable
intermedia o j (la salida del nodo de la columna j):
P = P o j
wi->j o j wi->j
ECUACIÓN 3

Dado que la salida de un nodo de la columna j, oj, es calculada en base a
las entradas (salidas de los nodos de la columna anterior i), mediante la
función umbral, se expresa como:
o j = F(i oi wi->j) = F(i)
ECUACIÓN 4
Luego se expresa la derivada parcial de la salida o j con respecto a wi->j
usando la regla de la cadena, mediante la variable intermedia i:
o j = F(i) i =
wi->j
i wi->j
o i o j(1-o j)
ECUACIÓN 5

Como el efecto de oj sobre P se efectúa a través de las salidas de los nodos
de la capa siguiente, las ok, se puede aplicar la regla de la cadena para
calcular la derivada parcial de P con respecto a oj :
P
oj
k
=
P ok
ok oj
ECUACIÓN 6
Cada salida ok se determina mediante la suma de todas las entradas al
nodo k, pasando el resultado a través de la función umbral F:
o k = F(j oj wj->k)= F(k)
ECUACIÓN 7
Se puede expresar entonces la derivada parcial de o k con respecto a oj
usando la regla de la cadena mediante la variable intermedia k como:
ok = F(k) k
oj
k
oj
=
wj->k ok (1- ok)
ECUACIÓN 8

Finalmente, la derivada de P con respecto a oj se expresa como:
P
oj
k
=
P wj->k ok (1- ok)
ok
ECUACIÓN 9.a
Se debe determinar la derivada parcial de P con respecto a la salida de la
última capa oz:
P
=
oz
P -(dz - oz)
2(dz - oz)
=
oz
ECUACIÓN 9.b

Si se sustituyen estos cálculos en la ecuación 3 de la derivada parcial de P
con respecto a wi->j y se multiplica por un factor de rapidez r, se obtiene:
P = r P oi oj (1-oj)
wi->j
o j
ECUACIÓN 10
En primer lugar, de la ecuación 10 se concluye que la derivada parcial de la
medida de calidad con respecto a un peso depende de la derivada parcial de la
medida de calidad con respecto a la salida. En segundo lugar, de la ecuación
9.a se concluye que la derivada parcial de la medida de calidad con respecto a
una salida depende de la derivada parcial de la medida de calidad con respecto
a las salidas de la capa siguiente. Por lo tanto, la derivada parcial de la medida
de calidad con respecto a variables de una capa dada, se da en términos de los
cálculos que ya se necesitaron dos capas a la derecha.
Algoritmo de retropropagación
1.- Tomar parámetro de rapidez r
2.- Inicializar los pesos
3.- Hasta que la medida de calidad P sea satisfactoria,
 por cada muestra de entrada:
a.- Calcular la salida resultante
b.- Para los nodos de la capa de salida, calcular ecuación 9.a
c.- Para los demás nodos ocultos, calcular ecuación 9.b
d.- Calcular los cambios en los pesos con la ecuación 10
e.- Acumular los cambios de los pesos
 Cambiar los pesos con los cambios acumulados para todas las
muestras
Los cambios en los pesos son proporcionales a los errores de salida, y las
salidas tenderán a 1 y 0, en consecuencia la medida de calidad normalmente
se considera satisfactoria cuando, todas las salidas cuyo valor deseado es:
-
1, muestran valores > 0.9
0, muestran valores < 0.1
A continuación se señalan algunas características del entrenamiento de redes
neuronales:
 El entrenamiento puede requerir un número de pasos grande.
 Los pesos iniciales pueden ser puestos al azar, o siguiendo algún patrón
regular con la condición de que sean diferentes entre sí.
 Si el parámetro de rapidez r es muy alto, los pesos se ajustan más rápido
pero puede producirse inestabilidad en la red
 El entrenamiento de una red con muchas salidas puede hacerse:
- en etapas: primero se entrena para una salida, luego se agrega otra y se
entrena comenzando con los pesos ya entrenados para la primera, a
continuación se entrena agregando una tercera salida, etc.
- simultáneamente: la red se entrena para todas las salidas a la vez.
 Las redes neuronales se vuelven erráticas y poco confiables si tienen
muchos pesos, situación denominada sobreentrenamiento. La siguiente
heurística se usa para evitarlo: no de pesos < no de muestras de
entrenamiento
 Una red neuronal entrenada puede usarse para predecir la salida de un
elemento de entrada para el cual no fue entrenada.
El diseño de redes neuronales es más considerado arte que exactitud. Se
pueden enumerar diferentes consideraciones a la hora de diseñar una red
neuronal:
 Representar la información y el problema a resolver mediante una red
neuronal. Es decir, expresar los datos conocidos como entradas de la red, e
interpretar las salidas de la red para determinar la solución del problema.
 Número nodos, capas ocultas, entradas, salidas, pesos, debe tener la red
neuronal: si es muy pequeña tal vez no aprenda, pero si es muy grande es
lenta de entrenar y se puede producir sobreentrenamiento.
 Parámetro de rapidez r: si muy es pequeño el entrenamiento es muy lento,
pero si es muy grande se puede producir inestabilidad.
 Entrenamiento en etapas o simultáneo.
 Muestras de entrenamiento.
3.9.2. Perceptrones
El perceptrón (figura 10) es la red neuronal más simple posible. Consta de:
 1 neurona.
 una o más entradas binarias 1/0.
 cajas lógicas que pueden interponerse entre las entradas y el perceptrón.
Cada caja lógica actúa de acuerdo a una tabla de verdad que produce una
salida 1/0 para cada combinación posible de las entradas.
 una salida igual a 1/0 producida por la función umbral de la suma
ponderada de las salidas de las cajas lógicas.
X1
l1
X2
X3
li
W1
Wi
F=Σ li*wi
1 si F > umbral
0 si F<= umbral
X4
...
Xm
ln
Wn
FIGURA 10
Si hay m entradas, existen 2m combinaciones posibles de las mismas. Por lo
tanto, si este número es muy grande no puede ser atendido por una sola caja
lógica. Puede hacerse la siguiente clasificación de perceptrones:
 Perceptrón limitado por el orden n: cada caja lógica atiende n o menos
entradas.
 Perceptrón limitado por el diámetro d: si las entradas se disponen
bidimensionalmente (denominadas retina), cada caja lógica atiende
entradas que están dentro de un círculo de diámetro d.
 Perceptrón directo: cada caja lógica atiende una entrada igual a la salida
(equivale a perceptrón sin cajas lógicas).
Existe un procedimiento simple para encontrar el conjunto de pesos. La idea
consiste en ajustar los pesos cada vez que el perceptrón produce una
respuesta errónea con una muestra, de manera que el error sea menos
probable. Se incrementa o decrementa en 1 cada peso wi cuya salida de la
cada lógica li correspondiente sea 1, dado que sólo estos pueden modificar la
salida del perceptrón. Esto es equivalente a sumar o restar los vectores w y l.
Al igual que en el entrenamiento de redes neuronales, el umbral es tratado
como un peso agregando una entrada virtual siempre en 1 ponderada por
(-umbral).
El algoritmo de entrenamiento de perceptrón es el siguiente:
1- Inicializar el vector de pesos con (0,0,...,0)
2.- Hasta que el perceptrón produzca el resultado correcto con cada muestra
de entrenamiento, por cada muestra:
 Si produce un 0 cuando debe producir 1: w = w + l
 Si produce un 1 cuando debe producir 0: w = w - l
 Si no se equivoca con la muestra no hacer nada.
Este algoritmo converge siempre y cuando la solución exista para el conjunto
de muestras de entrenamiento. Existen algunas tareas incluso superficialmente
fáciles para las cuales el perceptrón no encuentra solución, por ejemplo, no
puede reconocer conectividad en una imagen.
Ejemplo: entrenar un perceptrón para que realice la operación lógica OR entre
dos entradas.
En este caso se utiliza un perceptrón directo, en el cual las entradas x
coinciden con las salidas de las cajas lógicas l (figura 11).
W1
X1
W2
X2
1
F=Σ li*wi
1 si F > 0
0 si F<= 0
W3
FIGURA 11
Se utiliza una tercera entrada siempre en 1 para modelar el umbral igual a
(-w3). Las muestras de entrada son las siguientes:
Muestras
x1=l1
x2=l2
x3=l3
1
2
3
4
0
0
1
1
0
1
0
1
1
1
1
1
Salida
deseada
0
1
1
1
1- Inicializa el vector w = (0,0,0)
2- Cicla a través de las muestras hasta que la salida obtenida con cada una
sea igual a la salida deseada.
-
Muestra 1, salida = (0,0,1) (0,0,0) = 0, igual a la salida deseada.
Muestra 2, salida = (0,1,1) (0,0,0) = 0, diferente a la salida deseada. Ajustar
el vector w = (0,0,0) + (0,1,1) = (0,1,1)
Muestra 3, salida = (1,0,1) (0,1,1) = 1, igual a la salida deseada.
Muestra 4, salida = (1,1,1) (0,1,1) = 1, igual a la salida deseada.
Muestra 1, salida = (0,0,1) (0,1,1) = 1, diferente a la salida deseada. Ajustar
el vector w = (0,1,1) - (0,0,1) = (0,1,0)
Muestra 2, salida = (0,1,1) (0,1,0) = 1, igual a la salida deseada.
Muestra 3, salida = (1,0,1) (0,1,0) = 0, diferente a la salida deseada. Ajustar
el vector w = (0,1,0) + (1,0,1) = (1,1,1)
Muestra 4, salida = (1,1,1) (1,1,1) = 1, igual a la salida deseada.
Muestra 1, salida = (0,0,1) (1,1,1) = 1, diferente a la salida deseada. Ajustar
el vector w = (1,1,1) - (0,0,1) = (1,1,0)
Muestra 2, salida = (0,1,1) (1,1,0) = 1, igual a la salida deseada.
Muestra 3, salida = (1,0,1) (1,1,0) = 1, igual a la salida deseada.
Muestra 4, salida = (1,1,1) (1,1,0) = 1, igual a la salida deseada.
El algoritmo converge encontrando el vector w = (1,1,0)
Ejemplo: dado un sistema de dígitos en pantallas digitales (figura 12) que
informa cuál de los 7 segmentos están encendidos, realizar un perceptrón que
aprenda a identificar un dígito en concreto, por ej. el 0.
X2
X1
X3
X0
X6
X4
X5
FIGURA 12
Existen 7 entradas x0..x6 correspondientes a los segmentos del número,
además de otra entrada x7 en 1 correspondiente al umbral. Las muestras de
entrada son las siguientes:
Dígito
0
9
8
7
6
5
4
3
2
1
X0
0
1
1
0
1
1
1
1
1
0
X1
1
1
1
0
1
1
1
0
0
0
X2
1
1
1
1
1
1
0
1
1
0
X3
1
1
1
1
0
0
1
1
1
1
X4
1
1
1
1
1
1
1
1
0
1
X5
1
1
1
0
1
1
0
1
1
0
X6
1
0
1
0
1
0
0
0
1
0
X7
1
1
1
1
1
1
1
1
1
1
Salida deseada
1
0
0
0
0
0
0
0
0
0
1- Inicializa el vector w = (0,0,0,0,0,0,0,0)
2- Cicla a través de las muestras hasta que la salida obtenida con cada una
sea igual a la salida deseada.
- Dígito 0, s0 = (0,1,1,1,1,1,1,1) (0,0,0,0,0,0,0,0) = 0, diferente a la salida
deseada. Ajustar el vector w = (0,0,0,0,0,0,0,0) + (0,1,1,1,1,1,1,1) =
(0,1,1,1,1,1,1,1)
- Dígito 9, s9 = (1,1,1,1,1,1,0,1) (0,1,1,1,1,1,1,1) = 1, diferente a la salida
deseada. Ajustar el vector w = (0,1,1,1,1,1,1,1) - (1,1,1,1,1,1,0,1) =
(-1,0,0,0,0,0,1,0)
- Dígito 8, s8 = (1,1,1,1,1,1,1,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida
deseada.
- Dígito 7, s7=(0,0,1,1,1,0,0,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 6, s6=(1,1,1,0,1,1,1,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 5, s5=(1,1,1,0,1,1,0,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 4, s4=(1,1,0,1,1,0,0,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 3, s3=(1,0,1,1,1,1,0,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 2, s2=(1,0,1,1,0,1,1,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 1, s1=(0,0,0,1,1,0,0,1) (-1,0,0,0,0,0,1,0) = 0, igual a la salida deseada.
- Dígito 0, s0=(0,1,1,1,1,1,1,1) (-1,0,0,0,0,0,1,0) = 1, igual a la salida deseada.
El algoritmo converge encontrando el vector w = (-1,0,0,0,0,0,1,0).
3.9.3. Redes de interpolación y de aproximación
Redes de interpolación
Una red de interpolación (figura 13) es una red neuronal especial con las
siguientes características:
 Tiene dos capas de neuronas

Cada neurona de la primera capa responde a una entrada de muestra m en
particular. Calcula la función Gaussiana de la distancia entre el vector de
entrada actual x y el vector muestra asociada a la neurona m:
g( | x - m | )
 Cada neurona de la segunda capa realiza la suma ponderada de sus
entradas:
i wi g(|x-mi|)
 Los pesos entre las dos capas se ajustan de manera que cada salida de
neurona de la segunda capa sea exactamente la salida deseada de cada
entrada muestra m.
W1i
X1
g1
...
Σ g(|x-mi|)*wi1
Wi1
X2
gi
Xm
gn
Wij
Σ g(|x-mi|)*wij
Wnj
FIGURA 13
El entrenamiento de la red de interpolación es casi directo:
1- Por cada muestra mi se crea un nodo centrado en la muestra.
2- Por cada entrada de muestra x se crea una ecuación de la forma siguiente:
- Calcular la distancia entre la muestra x y los centros mi, |x - mi|
- Calcular la función gaussiana de cada distancia g(|x - mi|)
- Multiplicar cada función por el correspondiente peso wi, g(|x - mi|) wi
- Igualar la salida de la muestra x con la suma de las funciones
gaussianas ponderadas de la distancia.
3- Resolver las ecuaciones para los pesos wi
Ejemplo: construir una red de interpolación para calificar del 1 al 10 una tarta
en base a la cantidad de porciones comidas de la misma.
Las muestras de entrada son las siguientes:
Muestras
1
2
X=cantidad de
porciones
4
7
Calificación
5
9
3
4
9
12
2
6
Para cada muestra de entrenamiento se construye una neurona de la primera
capa con una función Gaussiana asociada (figura 14). Si el parámetro  de la
función de Gauss es pequeño, la campana será estrecha y por lo tanto la
influencia de la muestra será local; si en cambio, el parámetro  es grande, la
campana será amplia y por lo tanto la influencia de la muestra será global.
La red tiene una sola entrada x que es la cantidad de porciones comidas.
X
g1
W1
g2
W2
W3
Σ gi(|x-mi|)*wi
g3
W4
g4
FIGURA 14
Se calculan los valores para cada peso, de manera que se produzcan las
salidas correctas para cada muestra. Para ello se plantean tantas ecuaciones
como incógnitas o pesos, por lo tanto, la resolución es directa.
Para la muestra 1
5 = w1 g1(4-4) + w2 g2(4-7) + w3 g3(4-9) + w4 g4(4-12)
Para la muestra 2
9 = w1 g1(7-4) + w2 g2(7-7) + w3 g3(7-9) + w4 g4(7-12)
Para la muestra 3
2 = w1 g1(9-4) + w2 g2(9-7) + w3 g3(9-9) + w4 g4(9-12)
Para la muestra 4
6 = w1 g1(12-4) + w2 g2(12-7) + w3 g3(12-9) + w4 g4(12-12)
Redes de aproximación
Si el número de muestras es muy grande, el número de nodos puede volverse
irracionalmente grande. El planteamiento natural es tratar de aproximar la
función desconocida con un número razonable de nodos representativos.
Si se tienen menos nodos que muestras, ninguna selección de pesos puede
asegurar que la red produzca la salida correcta para todas.
Las redes de aproximación construyen aproximaciones razonables para un
conjunto de muestras, considerando sólo un subconjunto pequeño de las
mismas.
Una manera de buscar una buena aproximación es mediante la técnica de
ascenso del gradiente (usada en la sección 3.9.1.) para buscar el valor
máximo de una medida de calidad P de la red de aproximación
P = Σs Σz (-esz)2
donde
s: índice para las muestras de entrenamiento
z: índice para las salidas
esz = ysz - dsz, es el error entre la salida z-ésima obtenida ysz y la salida z-ésima
deseada dsz para la muestra s-ésima.
Los cambios de un peso wi se hacen proporcionalmente a la derivada parcial
de la medida de calidad P con respecto al peso wi. Finalmente se llega a la
siguiente fórmula para calcular los cambios de peso:
wiz = r Σs (dsz - ysz) g(|xs-mi|)
ECUACIÓN 11
Para mejorar aún más la calidad de la red sobre los datos de muestra, se
pueden ajustar no sólo los pesos sino también los puntos centrales o muestras
con las que se crea la red de interpolación inicial.
Los cambios de una muestra o centro m i se hacen proporcionalmente a la
derivada parcial de la medida de calidad P con respecto a la muestra mi.
Finalmente se llega a la siguiente fórmula para ajustar la componente j de la iésima muestra:
mij = r Σs Σz wi (dsz - ysz) g(|xs-mi|)1/ (xsj -msj)
ECUACIÓN 12
Para crear y entrenar una red de aproximación se realiza lo siguiente:
1.- Crear una red de interpolación mediante un subconjunto de muestras o
centros.
2.- Tomar parámetro de rapidez r
3.- Hasta que la medida de calidad P sea satisfactoria,
 por cada muestra de entrada del conjunto total:
a.- Calcular la salida resultante
b.- Calcular los cambios en los pesos con la ecuación 11
c.- Acumular los cambios de los pesos
d.- Calcular los cambios en los centros o muestras con la
ecuación 12
e.- Acumular los cambios de los centros o muestras
 Cambiar los pesos y centros con los cambios acumulados
Descargar