(c) P. Gómez Gil. INAOE 2008-2012 1
C261-69 Tópicos Avanzados:
Redes Neuronales Artificiales
Red de Perceptrones de varios niveles
Dra. Ma. del Pilar Gómez Gil
Primavera 2010
Versión:6-Febrero-13
(c) P. Gómez Gil. INAOE 2008-2012 2
El Modelo de aprendizaje Retro-
propagación
Se utiliza para entrenar redes de perceptrones de
varios niveles, conocidas como MLP (multi-layer-
perceptrons)
El concepto fue creado originalmente por J. Werbos
[Werbos 74] con un nombre diferente, como parte de
su tesis doctoral.
La misma idea fue propuesta posteriormente y de
manera independientemente con el nombre
“retropropagación” por Rumelhart, Hinton y Williams
[Rumelhart 86] como un método para entrenar una
red MLP.
Red de perceptrones de varios
niveles (MLP)
(c) P. Gómez Gil. INAOE 2008-2012 3
0,01w
1,11w
0,12w
Output layer Hidden layers Input layer
1,03w
(c) P. Gómez Gil. INAOE 2008-2012 5
Estructura del neurón utilizado
)(1
0
i
n
i
iwxFoutput
Donde:
xi i-ésima entrada al neurón
wi i-ésimo peso
umbral (bias)
F función de activación.
Para el caso de redes neuronales de varios niveles alimentadas hacia adelante y
entrenadas con Retro-propagación, se utiliza una función de activación continua y
diferenciable, generalmente de tipo sigmoide. Ejemplos de estas funciones son:
xexF
1
1)( )tanh()( xxF
output
x0
x1
xn
wo
w1
wn-1
-1
(c) P. Gómez Gil. INAOE 2008-2012 6
Ejemplo de Cálculo de la Salida de una Red con un Nivel Escondido
Suponga que la red a calcular tiene N neurones de entrada, M neurones de salida, una capa escondida con L nodos, y que se manejan umbrales negativos.
Estructura de datos:
X[i] i-ésima entrada a la red, 0≤ i ≤ N-1
W1[i][j] peso que conecta al neurón j en el nivel de entrada
con el neurón i en el nivel escondido
0 ≤ i ≤ L-1, 0 ≤ j ≤ N-1
W2[i][j] Peso que conecta al neurón j en el nivel escondido
con el neurón i en el nivel de salida 0 ≤ i ≤ M-1 ,
0 ≤ j ≤ L-1
(c) P. Gómez Gil. INAOE 2008-2012 7
Cálculo de Salida de una Red
(cont.) Estructura de datos (cont.)
TET1[i] Valor umbral del i-ésimo neurón en la capa
escondida
TET2[i] Valor umbral del i-ésimo neurón en la última capa
NET1[i] Sumatoria del i-esimo neurón en la capa
escondida
OUT1[i] Salida del i-ésimo neurón en la capa escondida
NET2[i] Sumatoria del i-ésimo neurón en la última capa.
OUT2[i] i-ésima salida de la red
(c) P. Gómez Gil. INAOE 2008-2012 8
Cálculo de Salida de una Red
(cont.)
FOR I=0 TO L-1 DO BEGIN
NET1 [I] = 0
FOR J = 0 TO N-1 D0 BEGIN
NET1 [I] = NET1 [I] + W1 [I] [J] * X[J]
END
NET1[I] = NET1 [I] - TET1 [I]
OUT1[I] = sigmoid ( NET1 [I])
END
FOR K=0 TO M-1 DO BEGIN
NET2 [K] = 0
FOR I = 0 TO L-1 BEGIN
NET2 [K] = NET2[K] + W2[k][i]*OUT1 [I]
END
NET2 [K] = NET2 [K] - TET2 [K]
OUT2 [K] = sigmoid (NET2[K])
END
(c) P. Gómez Gil. INAOE 2008-2012 9
Características de BP
Es un modelo de entrenamiento supervisado. Se puede considerar una generalización de la regla delta.
El algoritmo consiste en hallar los pesos que minimizan el cuadrado del error promedio entre la salida real y la salida deseada en la red. Es una técnica de gradiente descendente.
La función de error total ET a minimizar, es la suma acumulada de los errores generados por cada patrón del conjunto de entrenamiento:
2
1
)(2
1
:donde
n
j
pjpjp
p
p
OTE
EET Tpj = Valor de salida deseado para el
j-ésimo neurón de la última capa
de la red.
Opj = Valor de salida real en el j-ésimo
neurón de la última capa de la red.
(c) P. Gómez Gil. INAOE 2008-2012 10
Algoritmo de Retro-propagación
Sean:
Wji = Peso que conecta hacia el neurón j en la capa k
desde el neurón i en la capa k-1.
F = Función de activación (contínua y diferenciable)
Opj = F(NETpj) Salida del j-ésimo neurón.
NETpj = S WjiOpi
Donde Opi corresponde a la entrada de la red (Xi)
si el neurón i está en la primera capa de la red.
DpWji = Incremento en el peso W ji provocado por
el p-ésimo patrón.
(c) P. Gómez Gil. INAOE 2008-2012 11
Algoritmo de Retro- propagación (cont.)
1.- Inicialice todos los pesos y valores umbrales de la red con número
reales pequeños generados al azar.
2.- Repita lo siguiente hasta que el error ET del conjunto de
entrenamiento sea aceptablemente pequeño, o alguna condición
predeterminada de "fin de entrenamiento" sea verdadera:
2.1 Por cada patrón p en el conjunto de entrenamiento:
2.1.1 Lea el vector de entrada Xp y el vector de la salida
deseada Tp.
2.1.2 Calcule la salida de la red.
2.1.3 Calcule el error Ep generado por el patrón p.
(c) P. Gómez Gil. INAOE 2008-2012 12
Algoritmo de Retro- propagación
(cont.)
2.1.4 Ajuste todos los pesos de la red aplicando la siguiente regla ( regla delta generalizada) a cada
uno de los pesos Wji
Wji(t+1) = W ji (t) + DpWji
donde
DpWji = hdpjOpi
h = Coeficiente de aprendizaje ( 0 < h < 1)
d Se calcula de la siguiente manera:
a) Si j corresponde a un neurón en la capa de salida de la red:
dpj = (Tpj - Opj) F' (NETpj)
(c) P. Gómez Gil. INAOE 2008-2012 13
Algoritmo de Retro- propagación
(cont.) si la función de activación es la sigmoide,
entonces:
F´(x) = F(x)(1 - F(x) ), y
dpj = (Tpj - Opj) Opj (1 - Opj)
b) Si j no corresponde a un neurón de salida, es decir, está en una de las capas escondidas entonces:
donde la sumatoria acumula el error propagado
hacia atrás.
2.1.5 Regrese al paso 2.1
3.- Regrese al paso 2.
k
kjpkpjpj wNETF dd )(
(c) P. Gómez Gil. INAOE 2008-2012 14
Ejemplo de una red con un nivel
escondido
Xo
X1
X2
OUT 2[0]
OUT 2[1]
OUT 2[2]
00
W1
W2
W1
W1
W1
W1
W1
10
01
11
02
12 W2
W2
W2
W2
W2
21
11
01
20
10
00
OUT 1[X]
(c) P. Gómez Gil. INAOE 2008-2012 15
Ejemplo de una red con un nivel
escondido
Xo
X1
X2
OUT 2[0]
OUT 2[1]
OUT 2[2]
00
W1
W2
W1
W1
W1
W1
W1
10
01
11
02
12 W2
W2
W2
W2
W2
21
11
01
20
10
00
OUT 1[X]
12d
11d
02d
22d
(c) P. Gómez Gil. INAOE 2008-2012 16
Cálculo de valores delta en el ejemplo
Xo
X1
X2
OUT 2[0]
OUT 2[1]
OUT 2[2]
00
W1
W2
W1
W1
W1
W1
W1
10
01
11
02
12 W2
W2
W2
W2
W2
21
11
01
20
10
00
OUT 1[X]
0
1
2
d
d
d
d
d
1
1
2
2
2
(c) P. Gómez Gil. INAOE 2008-2012 17
Cálculo de valores delta en el
ejemplo (cont.)
]2,0[1]1,0[1]0,0[1]0[1 210 WXWXWXNET
])0[1(]1[1 NETFOUT
])1[2(])1[21(]1[2 NETFOUTT d
)]1,[2][2(])1[1(]1[1 K
KWKNETF dd
]1,2[2]2[2]1,1[2]1[2]1,0[2]0[2)( ]1[1(]1[1 WWWNETF dddd
(c) P. Gómez Gil. INAOE 2008-2012 18
Ejemplo de MLP (1/3) El siguiente ejemplo, publicado en (Lipmann 87), muestra como
una red de perceptrones con un nivel escondido es capaz de
aprender a distinguir los puntos de un círculo.
La red tiene 2 nodos de entrada (los puntos en el plano
cartesiano donde esta dibujado el círculo), 2 nodos de salida (2
posibles clases: dentro del círculo o fuera de él) y 8 nodos en la
capa escondida.
La red se entrenó con h = 0.3 . Se le mostraron 100 ejemplos
de cada clase.
La siguiente figura muestra el aprendizaje de la red en 4
diferentes momentos:
Ejemplo de MLP:
Clases a aprender por el MLP (2/3)
(c) P. Gómez Gil. INAOE 2008-2012 19
class B
class A
(c) P. Gómez Gil. INAOE 2008-2012 22
Una Solución al Problema XOR
No..de barridas = 558 n = 0.5 Umbrales positivos
[Rumelhart86]
2.2
6.3 OUPUT UNIT
HIDDEN UNITS
INPUT UNITS
-4.2 -4.2
-6.4 -6.4
-9.4
(c) P. Gómez Gil. INAOE 2008-2012 23
Problema del XOR. Red en un Mínimo Local
No. de barridas = 6,587 n = 0.25 Umbrales positivos.
[Rumelhart 86]
-.8
2.0 -.1
8.8
9.2 4.3
-2
-4.5 5.3
OUTPUT UNI T
HIDDEN UNITS
INPUT UNITS
(c) P. Gómez Gil. INAOE 2008-2012 24
Porque el Perceptrón no Puede Aprender El XOR?
Ninguna línea recta puede dividir al plano de manera que las a´s queden de un lado, y las b’s del otro lado !
EL PROBLEMA NO ES LINEALMENTE SEPARABLE
X Y
0 0
0 1
1 1
1 1
X + Y
0 (A)
1 (B)
1 (B)
0 (A)
(c) P. Gómez Gil. INAOE 2008-2012 25
Ventajas y Desventajas del Modelo de
Retro- propagación
Puede resolver problemas donde las regiones de decisión no son lineales.
Es fácil de implementar (comparado con otros algoritmos) y es aplicable a una gran cantidad de problemas.
Las redes de retro-propagación soportan muy bien "ruido" en los datos de entrada.
Puede ser extremadamente lento, sobre todo cuando la red es muy grande.
No es posible saber de antemano si un problema puede resolverse usando este modelo.
El algoritmo puede caer en un "mínimo local" y nunca converger.
La red puede "paralizarse", es decir, los pesos crecen demasiado y los neurones empiezan a trabajar con valores OUT muy grandes. En este punto la derivada de la función es cero, y no puede haber mas cambios en el error.
(c) P. Gómez INAOEP
2008-2011 26
Un clasificador Adaptivo
OB
JE
TS
CLA
SS
ES
SENSING MEASUREMENTS
CONTEX
ANALYSIS
FEATURE VECTOR
DECISION
PREPROCESING
AND FEATURE
SELECTION
LEARNING
[Tao & Gonzalez 74]
(c) P. Gómez Gil. INAOE
2008-2012 27
CLASIFICADOR USANDO REDES NEURONALES
ENTRADA RED
NEURONAL
SELECCIÓN DE
CLASE DECISION
ESTADOS DE UN CLASIFICADOR NEURONAL
APRENDIZAJE
CONOCIMIENTO
DE LA RED
RECONOCIMIENTO
(c) P. Gómez Gil. INAOE 2008-2012 28
Selección de una clase*
En los sistemas que utilizan una red de perceptrones de varios niveles, con mas de una neurona en la capa de salida (esto es, con mas de 1 clase o en los casos de asociación de patrones ), se presenta el problema de decidir a que clase corresponde una salida de la red.
RNA Selección de
clase Y
* Ver anexo: Conceptos Básicos de Reconocimiento
de patrones
(c) P. Gómez Gil. INAOE 2008-2012 29
SELECCIÓN DE UNA CLASE
(cont.)
La manera mas eficiente de escoger la
clase, es calcular la distancia Euclidiana
que hay de la salida de la red a cada una
de las posibles clases, y escoger como
clase aquella con la menor distancia. Esto
se realiza de la siguiente manera:
(c) P. Gómez Gil. INAOE 2008-2012 30
SELECCIÓN DE UNA CLASE
(cont.)
Supongamos que la red tiene n neuronas en la
capa de salida, y que el problema tiene m
posibles clases o asociaciones. Sea la salida
de la red:
Y cada una de las clases:
)...,( 21 nyyyY
)...,( 21 nyyyY
)...,(
.
)...,(
)...,(
21
22221
11211
mnmm
n
n
ccc
ccc
ccc
m
2
1
C
C
C
(c) P. Gómez Gil. INAOE 2008-2012 31
SELECCIÓN DE UNA CLASE
(cont.)
Para i = 1.. m, la distancia de Y a la clase
Ci está definida como:
y la clase escogida es:
22
22
2
11 )...()()(2
1niniii ycycycd
midescogidaclase i ..1 )(minimo_
(c) P. Gómez Gil. INAOE 2008-2012 32
Una aplicación de retro-propagación:
Reconocimiento de caracteres
Manuscritos
El reconocimiento manuscrito “fuera de línea” significa reconocer sobre un documento digitalizado, después de que el texto ha sido escrito.
El reconocimiento de letra tipo script o antigua es mas complejo que el tipo “imprenta” porque: La manuscrita tiene ornamentos
Cambia de estilo con la época, persona, región, edad del escritor, etc.
La misma persona puede escribir muy diferente
La segmentación de caracteres es un problema muy difícil, que genera mucho error en los patrones
(c) P. Gómez Gil. INAOE 2008-2012 33
Reconocimiento de Caracteres Manuscritos
(cont.)
El reconocimiento “en línea” es mas fácil que el
reconocimiento “fuera de línea” porque en el
primero hay información adicional sobre:
Presión de la pluma
Dirección de movimientos
Velocidad de escritura
(c) P. Gómez Gil. INAOE 2008-2012 34
Diagrama de contexto.
Reconocedor de Caracteres
reconocedor
de caracteres
Documento Texto
reconocido
Parámetros
entrenamiento
Usuario
Experto en
reconocimiento
Usuario
(c) P. Gómez Gil. INAOE 2008-2012 35
Componentes de un reconocedor
de caracteres
documento
imágenes para
entrenamiento
1.
Digitalización
de
documento
2.
Separación
de
palabras
3.
Segmentación
de
caracteres
4.
Reconocimiento
de
caracteres
5.
Reconocimiento
de
palabras
imagen digital
imágenes
palabras
caracteres
posibles
texto
reconocido imágenes
de caracteres
segmentados
6.
Entrenamiento
Reconocedor
Conocimiento
RNA
Parámetros
entrenamiento
imágenes para
entrenamiento
[Gómez et al 2007]
(c) P. Gómez Gil. INAOE 2008-
2012
The OCR Priscus [Gomez et al 2007]
1. scanning
2. Pre-processing
Digital image Document scanning
3. Segmentation
word Clean image
4. Segmentation and feature extraction
6. Character recognition
8. Word
identification
7. Training recognizer
9. Style
correction Text
Training parameters
Character objects
Possible character
ANN knowledge
Posibles palabras
Words in the text
Dictionary
5. Training
Segmentation
Segmentación para
entrenamiento
Words
Character objects
Training parameters
ANN knowledge
36
(c) P. Gómez Gil. INAOE 2008-2012 37
Reconocimiento de Telegramas
Porfirio Díaz [Linares & Spinola, 2000]
(c) P. Gómez Gil. INAOE 2008-2012 39
Pre-procesamiento de palabras
Normalización de la posición
1.06 cm 1.60 cm
Corrección de la inclinación
(c) P. Gómez Gil. INAOE 2008-2012 40
Reconocimiento de caracteres aislados usando Redes
Neuronales Localmente Conectadas[Gómez et al. 97]
El problema principal es la obtención del vector de características.
Y. LeCun creó una red, inspirada en el sistema de visión de los mamíferos. Tiene las siguientes características: 2 dimensiones
Alimentada hacia delante
Varios niveles de mapas de características
Está parcialmente conectada
Los neurones en el mismo mapa de características comparten los mismos pesos. Los umbrales no se comparten
(c) P. Gómez Gil. INAOE 2008-2012 42
Reconocimiento de caracteres aislados usando
Redes Neuronales Localmente Conectadas1
Base de datos:
7,800 caracteres de 61 sujetos. 75% se usó para
entrenar, 25% se uspo para probar
Resultados:
Caso I: 26 símbolos, 28 clases (2 para s y z)
Caso II: 11 clases: a,b,c,d,r,s,t,u,x
Coeficiente de aprendizaje entre 0.7 y 0.05
(c) P. Gómez Gil. INAOE 2008-2012 43
Caso I. Estructura de la red
Level
No.
dimension Number of maps per
level
Map
size
0 2 1 16x16
1 2 6 8x8
2 2 3 4x4
3 1 11 1x1
Number of levels: 4
Number of levels in two dimensions: 3
Number of levels in one dimension: 1
(c) P. Gómez Gil. INAOE 2008-2012 44
Caso 1. Tamaño de la red
Level
No.
Number of
maps or
nodes
Total
number
of nodes
Connections Weights
0 1 256 0 0
1 6 384 9984 534
2 3 48 4656 336
3 11 11 539 539
TOTAL: 699 15179 1409
(c) P. Gómez Gil. INAOE 2008-2012 45
Caso II. Estructura de la red
Level
No.
dimension Number of maps per
level
Map
size
0 2 1 16x16
1 2 6 8x8
2 2 3 4x4
3 1 28 1x1
Number of levels: 4
Number of levels in two dimensions: 3
Number of levels in one dimension: 1
(c) P. Gómez Gil. INAOE 2008-2012 46
Caso II. Tamaño de la red
Level
No.
Number of
maps or
nodes
Total
number
of nodes
Connections Weights
0 1 256 0 0
1 6 384 9984 534
2 3 48 4656 336
3 28 28 1372 1372
TOTAL: 716 16012 2242
(c) P. Gómez Gil. INAOE 2008-2012 47
Resultados
Network No. of
sweeps
Average
error
per node
Recognition
percentage with
training set
Recognition
percentage with
test set
CASE I
LeCun
65 0.0225 91.2% 75.3%
Totally
connected
65 0.0221 91.6% 70.0%
CASE II
LeCun
70 0.034 65.3% 54.6%
(c) P. Gómez Gil. INAOE 2008-2012 50
Segmentación usando RNA3
Ventana 1 Densidad= 9/25=0.36
Ventana 1 Densidad= 9/25=0.36
Vector de ventanas 1 2 3 4 5 6 7 8 9 ….
0.36 0.4
Figura 5. Generación del vector de ventanas
[Navarrete 2002]
Bibliografía Gómez-Gil, P. ,De-Los-Santos Torres G., Navarrete-García J.
Ramírez-Cortés M. “The Role of Neural Networks in the
interpretation of Antique Handwritten Documents.” Hybrid Intelligent
Systems. Analysis and Design Series: Studies at Fuzziness and
Soft Computing. Vol . 208. Editors: Castillo, O. Melin, P. Kacprzyk
W. 2007 Springer. ISBN-10: 3-540-37419-1. Pags. 269-281
Gómez, P. Ramírez, R. and Oldham, W. “On handwritten
recognition through locally connected structural neural networks.”
Proc. Of the Second joint Mexico-US International Workshop on N.
Nets and Neurocontrol. SianKan 97. pp 224-228. August 97.
Linares S. y Spinola, C.“Reconocimiento de letra Manuscrita de
Porfirio Díaz Utilizando el Shell Neuronal ANNSYD”. Tesis
licenciatura ISC. UDLAP. México, 2000.
(c) P. Gómez Gil. INAOE 2008-2012 52
Bibliografía (cont.)
Lippman, R. P. An Introduction to computing with neural Nets. IEEE ASSP Magazine, April 1987, pp. 4-22
Navarrete J. “Mejora en el algoritmo de segmentación para el reconocimiento de caracteres de telegramas escritos por el Gral. Porfirio Díaz”. Tesis Licenciatura, ULAP 2002.
Rumelhart, David E., Geoffrey E. Hinton, and R. J. Williams. “Learning internal representations by Error Propagation,” In Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Vol. I, Bradford Books, Cambridge, MA, 1986.
Werbos, P. Beyond Regression: New tools for prediction and Analysis in the Behavioral Sciences, Ph.D. thesis, Harvard University, Nov. 1974
(c) P. Gómez Gil. INAOE 2008-2012 53
55
RECONOCIMIENTO DE PATRONES
El proceso de reconocimiento de patrones tiene que ver con la actividad de clasificar un objeto o hecho en alguna categoría determinada, en base a particularidades del objeto que son comunes en los miembros de una misma clase.
Algunos ejemplos de actividades comunes de reconocimiento de patrones realizadas por humanos son:
Escuchar una conversación
Leer un libro
Reconocer un amigo entre la multitud
Traducir de un lenguaje a otro
(c) P. Gómez Gil. INAOE 2008-2012
56
DEFINICION FORMAL DE
RECONOCIMIENTO DE PATRONES
Es la categorización de datos de entrada en clases identificadas, por medio de la extracción de características significativas o atributos de los datos extraídos de un medio ambiente que contiene detalles irrelevantes [Tou & Gonzales, 1974].
Matemáticamente hablando, la clasificación consiste en la partición del espacio n-dimensional definido por las características de un objeto, en varias regiones, donde cada región corresponde a una clase.
(c) P. Gómez Gil. INAOE 2008-2012
57
SISTEMA CLASIFICADOR DE
PATRONES [DUDA & HART, 73]
OBJETO
TRANSDUCTOR
EXTRACTOR DE
CARACTERISTICAS
CLASIFICADOR DECISION
(c) P. Gómez Gil. INAOE 2008-2012
58
PARTES PRINCIPALES DE UN SISTEMA
CLASIFICADOR DE PATRONES
Transductor Toma la informacion de un objeto y la tranforma a señales
analogicas, que a su vez son convertidas a forma digital (ejemplo: una camara de television).
Extractor de caracteristicas Mide propiedades importantes que representan al objeto, de
manera que se reduzca la cantidad de datos obtenidos por el transductor, pero sin perder informacion esencial acerca del objeto. El resultado de estas medidas es llamado vector de caracteristicas.
Clasificador Evalua las propiedades dadas por el extractor de
caracteristicas, y toma una decision acerca de la clase del objeto.
(c) P. Gómez Gil. INAOE 2008-2012
(c) P. Gómez Gil. INAOE
2008-2012 59
NOMENCLATURA BASICA
PATRON
Descripcion de un objeto o miembro de alguna categoria
CLASE
Categoria determinada por algunos atributos comunes a sus miembros.
VECTOR DE CARACTERISTICAS
Contiene una medida de las caracteristicas de un patron. Puede contener numeros binarios o valires reales.
61
VECTORES DE CARACTERISTICAS (Cont.)
t1 t2 t3 t4 t5
f(t1) f(t2)
f(t3)
f(t4)
f(t1)
f(t2)
f(t3)
X = .
.
.
f(tn)
(c) P. Gómez Gil. INAOE 2008-2012
62
EJEMPLO DE UN ESPACIO DE CARACTERISTICAS
1.50 1.60 1.70 1.80 1.90 2.10 2.20 Metros
100
kg.
90
80
70
60
50
X1 = altura
w 1
w 2 2 Clases:
Jugadores de foot-ball
americano
Jockeys
(c) P. Gómez Gil. INAOE 2008-2012
63
PROBLEMAS FUNDAMENTALES EN EL DISEÑO DE UN
SISTEMA RECONOCEDOR DE PATRONES
1. La representación de los datos de entrada
2. Extracción de las características
3. Determinación del proceso de decisión optimo
4. Problemas de estimación de parámetros
(c) P. Gómez Gil. INAOE 2008-2012
(c) P. Gómez Gil. INAOE 2008-2012 64
BLOQUE FUNCIONAL DE UN SISTEMA RECONOCEDOR
DE PATRONES ADAPTIVO
OB
JET
OS
CL
AS
ES
SENSADO MEDIDAS
ANÁLISIS
DEL
CONTEXTO
VECTORES DE CARACTERISTICAS
O PRIMITIVAS
CATEGORI-
ZACIÓN
PRE-
PROCESAMIENTO Y
SELECCIÓN DE
CARACTERIS-TICAS
ESTIMACION
ADAPTACION
APRENDIZAJE
Top Related