0% encontró este documento útil (0 votos)
2 vistas79 páginas

Redes Neuronales: CNN y RNN Explicadas

El documento presenta un análisis detallado de las Redes Neuronales Convolucionales (CNN) y Recurrentes (RNN), incluyendo sus operaciones fundamentales como convolución, pooling y la transmisión de conocimiento en RNN. Se discuten conceptos clave como el padding, stride y técnicas de reducción de dimensionalidad, así como la importancia del aprendizaje transferido y el ajuste fino. Además, se incluyen ejemplos prácticos y consideraciones sobre la arquitectura y el funcionamiento de estas redes.

Cargado por

iespinozae
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas79 páginas

Redes Neuronales: CNN y RNN Explicadas

El documento presenta un análisis detallado de las Redes Neuronales Convolucionales (CNN) y Recurrentes (RNN), incluyendo sus operaciones fundamentales como convolución, pooling y la transmisión de conocimiento en RNN. Se discuten conceptos clave como el padding, stride y técnicas de reducción de dimensionalidad, así como la importancia del aprendizaje transferido y el ajuste fino. Además, se incluyen ejemplos prácticos y consideraciones sobre la arquitectura y el funcionamiento de estas redes.

Cargado por

iespinozae
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Redes Neuronales

Convolucionales / Recurrentes

Dr. Manuel Castillo-Cara


[Link]
Departamento de Inteligencia Artificial
Escuela Técnica Superior de Ingeniería Informática
Universidad Nacional de Educación a Distancia (UNED)
Preliminar

Conceptos avanzados de redes neuronales © 2023 by Manuel
Castillo-Cara is licensed under Attribution-NonCommercial
4.0 International
Índice

Redes Neuronales Convolucionales
– Operación Convolución
– Operación Pooling
– DEMO
– Hacia la estandarización

Redes Neuronales Recurrentes
– Transmisión de conocimiento en RNN
– Redes Neuronales Recurrentes LSTM
Redes Neuronales Convolucionales
Background
Capas convolucionales
Capas de agrupación (pooling)
Capas completamente conectadas
5. Ejemplo
Imagen de entrada (32x32)

Input

32x32x1
(B/N)
5. Ejemplo
Imagen de entrada (32x32)

Input Convolution

10 filtros
32x32x1 5px ancho
(B/N) 5px alto
ReLu
5. Ejemplo
Imagen de entrada (32x32)

Input Convolution Agrupación

10 filtros
pooling
32x32x1 5px ancho
2x2
(B/N) 5px alto
ReLu
5. Ejemplo
Imagen de entrada (32x32)

Input Convolution Agrupación Fully Connected

10 filtros Feed
pooling
32x32x1 5px ancho Fordward
2x2
(B/N) 5px alto Softmax
ReLu
6. Consejos

Dimensiones del campo receptivo de entrada:

Tamaño del campo receptivo

Ancho de stride

Número de filtros

Relleno

Pooling

Preparación de datos

Arquitectura de patrones

Dropout
Operación Convolución
Operación convolución (I)

La primera capa oculta de una CNN se suele corresponder con una capa
convolucional, la cual puede entenderse como la codificación necesaria para la
aplicación de filtros (conocidos como funciones kernel)

Para una mejor comprensión de la operación convolución, pensemos en una capa de
entrada que codifica una imagen binaria (B/N) y una convolución con la que
queremos representar un filtro de detección de bordes.
Operación convolución (II)

Sin entrar en más detalles, la búsqueda de bordes se basa en buscar grandes diferencias
entre un píxel y los píxeles que le rodean

El mismo tipo de operación la queremos realizar sobre la imagen completa, por lo que
aparece una primera cualidad: el uso de pesos compartidos
– Esto significa que los parámetros / condiciones para detectar un borde en un pixel de
la imagen deben ser iguales en todas las otras zonas de la imagen
Ejemplo

Asumiendo una imagen de 10x10 píxeles, si la detección de un
borde necesita trabajar con los 8 píxeles que le rodean
tendríamos lo siguiente
Ejemplo
Operación convolución (I)

En la imagen mostramos un filtro que se
puede aplicar únicamente sobre las
zonas resaltadas

Trasladando el problema a resolver
sobre la topología de una CNN,
incluiríamos una capa inicial con 100
neuronas (puede mostrarse visualmente
como una matriz de 10x10)

La primera capa oculta contará con una
neurona por cada resultado del filtro
→ tendrá 8x8 neuronas
Ejemplo
Operación convolución (I)

En la imagen mostramos un filtro que se
puede aplicar únicamente sobre las
zonas resaltadas

Trasladando el problema a resolver
sobre la topología de una CNN,
incluiríamos una capa inicial con 100
neuronas (puede mostrarse visualmente
como una matriz de 10x10)

La primera capa oculta contará con una
neurona por cada resultado del filtro
→ tendrá 8x8 neuronas
Ejemplo
Operación convolución (I)

En la imagen mostramos un filtro que se
puede aplicar únicamente sobre las
zonas resaltadas

Trasladando el problema a resolver
sobre la topología de una CNN,
incluiríamos una capa inicial con 100
neuronas (puede mostrarse visualmente
como una matriz de 10x10)

La primera capa oculta contará con una
neurona por cada resultado del filtro
→ tendrá 8x8 neuronas
Ejemplo
Operación convolución (II)

Cada una de estas 64 neuronas estará
conectada con 9 neuronas de la capa inicial,
pero los pesos utilizados en esta interacción
w1...w9 serán compartidos por todas las
neuronas de esta capa oculta

Esto simplifica el aprendizaje
enormemente, además de dar coherencia
al filtro a realizar

Una vez aprendida, la función de activación
(ReLU normalmente) nos permitirá saber
qué píxel de la imagen se corresponde o
no con un borde
Ejemplo
Operación convolución (II)

Cada una de estas 64 neuronas estará
conectada con 9 neuronas de la capa inicial,
pero los pesos utilizados en esta interacción
w1...w9 serán compartidos por todas las
neuronas de esta capa oculta

Esto simplifica el aprendizaje
enormemente, además de dar coherencia
al filtro a realizar

Una vez aprendida, la función de activación
(ReLU normalmente) nos permitirá saber
qué píxel de la imagen se corresponde o
no con un borde
Ejemplo
Operación convolución (II)

Cada una de estas 64 neuronas estará
conectada con 9 neuronas de la capa inicial,
pero los pesos utilizados en esta interacción
w1...w9 serán compartidos por todas las
neuronas de esta capa oculta

Esto simplifica el aprendizaje
enormemente, además de dar coherencia
al filtro a realizar

Una vez aprendida, la función de activación
(ReLU normalmente) nos permitirá saber
qué píxel de la imagen se corresponde o
no con un borde
Ejemplo
Operación convolución (III)

En el ejemplo propuesto, se plantean
convoluciones que involucran tanto al píxel
bajo estudio, como los 8 píxeles a su
alrededor (3x3)

Además, se asume que esta operación se
realiza uno a uno, pero sólo sobre los píxeles
de la imagen que es posible (salvo las filas /
columnas 0 y 9), obteniendo como resultado
una capa de tamaño inferior (10x10 →
8x8)
→ 2 parámetros definen esta
configuración: padding y stride
Ejemplo
Operación convolución (III)

En el ejemplo propuesto, se plantean
convoluciones que involucran tanto al píxel
bajo estudio, como los 8 píxeles a su
alrededor (3x3)

Además, se asume que esta operación se
realiza uno a uno, pero sólo sobre los píxeles
de la imagen que es posible (salvo las filas /
columnas 0 y 9), obteniendo como resultado
una capa de tamaño inferior (10x10 →
8x8)
→ 2 parámetros definen esta
configuración: padding y stride
Ejemplo
Operación convolución (IV)
Padding
Definición

El parámetro padding (opcional) define una serie de neuronas sintéticas usadas a modo de relleno,
de forma que se permite realizar convoluciones sin que la capa resultado sea de un tamaño menor a
la de entrada

Estas neuronas deben tomar un valor para la realización de las operaciones, siendo cero el valor más
usado.
– En este caso nos referimos a este parámetro como zero-padding N (N = número de neuronas
adicionales)
Padding
Ejemplo

Veamos un ejemplo con imágenes de 6x6 y un filtro de 3x3
Stride
Definición

El parámetro stride nos indica el número de neuronas a avanzar tras la aplicación de una
convolución

Para entender este parámetro recurrimos a la organización espacial: Usando una matriz de dos
dimensiones, un valor de stride 2 nos indicará que tras aplicar una convolución:
– La siguiente se realizará dos columnas a la derecha, y
– tras terminar la fila actual, la siguiente a procesar se seleccionará tras bajar dos filas
Stride
Ejemplo

Veamos un ejemplo con imágenes de 6x6 y un filtro de 3x3
Operación Pooling
Definición

La operación pooling tiene por objetivo reducir la dimensionalidad de las
capas generadas tras la aplicación de operaciones de convolución

Recordando que las capas disponen de tres dimensiones (ancho x alto x
profundidad), la reducción se aplicaría únicamente sobre las dimensiones de
anchura y altura, sin afectar a la profundidad de estas capas
Ejemplo


Sobre un ejemplo simple, asumamos que trabajamos con
imágenes 640x480 (B/N) y que la primera convolución
aplica 32 filtros de 3x3 (stride 1, zero-padding 1)
– El resultado será una capa intermedia de 640x480x32


Una operación pooling reduciendo la dimensionalidad
a un 25% de la original obtendría una nueva capa
intermedia de 320x240x32
Ejemplo


Sobre un ejemplo simple, asumamos que trabajamos con
imágenes 640x480 (B/N) y que la primera convolución
aplica 32 filtros de 3x3 (stride 1, zero-padding 1)
– El resultado será una capa intermedia de 640x480x32


Una operación pooling reduciendo la dimensionalidad
a un 25% de la original obtendría una nueva capa
intermedia de 320x240x32
Ejemplo
Max-pooling

La operación de pooling más común es max-pooling, donde cada operación computa
el máximo para una serie de neuronas conectadas espacialmente

Su aplicación se realiza a través de un filtro de tamaño NxM, normalmente M=N (se
define como extensión espacial).
– También se usa el parámetro stride que determinará el factor de reducción de
dimensionalidad
Max-pooling
Ejemplo de max-pooling 2x2 con stride=2
Consideraciones

A nivel práctico, el uso de filtros mayores a 3x3, o de un valor de stride superior a
2, suele generar malos resultados → desaconsejamos su uso

Como alternativas al max-pooling, podemos reemplazar la función máximo por
otras funciones como la media.
– Sin embargo, la experiencia ha mostrado el mayor poder de la función máximo
DEMO
ConvNetJS

Enlace: [Link]
Hacia la estandarización
1. Transfer Learning
2. Finetunning
Redes Neuronales Recurrentes
Background
CNN vs. RNN
Background
CNN vs. RNN

Dato (imagen, secuecnia,


palabra, etc) a clasificar
¿Qué pasa si se introduce
una secuencia?
Background
CNN vs. RNN

Dato (imagen, secuecnia,


palabra, etc) a clasificar
¿Qué pasa si se introduce
una secuencia?
Background
CNN vs. RNN

Dato (imagen, secuecnia,


palabra, etc) a clasificar
¿Qué pasa si se introduce
una secuencia?

Secuencia (conversación,
texto, vídeo) de datos con orden
Los datos están correlacionados
dependiendo del texto anterior
Background
CNN vs. RNN

Dato (imagen, secuecnia,


palabra, etc) a clasificar
¿Qué pasa si se introduce
una secuencia?

Para ello utiliza la activación


de la iteración anterior
para dar nuevos resultados,
i.e., tiene memoria
Generación de texto

Fuente: [Link]
Transmisión de conocimiento en RNN
Funcionamiento (I)

Un mismo modelo de RNN se pueden representar
de forma plegada o desplegada.
– Desplegado “en tiempo”.
Funcionamiento (I)

Un mismo modelo de RNN se pueden representar
de forma plegada o desplegada.
– Desplegado “en tiempo”.
Podemos observar que el estado actual
viene dado de la activación anterior (St-1),
el dato actual (Xt); mientras la salida es
la predicción actual (Yt), la activación
actual (St) y los pesos (W)
Funcionamiento (I)

Un mismo modelo de RNN se pueden representar de forma
plegada o desplegada.
– Desplegado “en tiempo”.

La activación actual (St), llamadas


estado oculto, son las que permiten
preservar y compartir la información
entre un estado y otro
Funcionamiento (II)
La neurona tradicional

X1

f(w1x1+w2x2+w3x3)
X2 Y1= f(wx+b)

X3
Funcionamiento (II)
La neurona tradicional

Transformación
X1

f(w1x1+w2x2+w3x3)
X2 Y1= f(wx+b)

X3
Funcionamiento (II)
La neurona tradicional

Transformación
X1

f(w1x1+w2x2+w3x3)
X2 Y1= f(wx+b)

Función de activación
X3
Funcionamiento (II)
RNN

at-1

Xt
Funcionamiento (II)
RNN

at-1 at= f(waaat-1 + waxxt + ba)

Xt
Funcionamiento (II)
RNN

Transformación de la
activación anterior y
entrada actual

at-1 at= f(waaat-1 + waxxt + ba)

Xt
Funcionamiento (II)
RNN

Transformación de la
activación anterior y
entrada actual

at-1 at= f(waaat-1 + waxxt + ba)

Función de activación

Xt
Funcionamiento (II)
RNN

Transformación de la
activación anterior y
entrada actual

at-1 at= f(waaat-1 + waxxt + ba) Pesos y bayes se calcula


con el entrenamiento

Función de activación

Xt
Funcionamiento (II)
RNN
yt= g(wyaat + by)

at-1 at= f(waaat-1 + waxxt + ba)

Xt
Funcionamiento (II)
RNN
yt= g(wyaat + by)

Transformación de la
activación anterior

at-1 at= f(waaat-1 + waxxt + ba)

Xt
Funcionamiento (II)
RNN
yt= g(wyaat + by)

Transformación de la
activación anterior
Función de activación

at-1 at= f(waaat-1 + waxxt + ba)

Xt
Funcionamiento (II)
RNN
Pesos y bayes se calcula
yt= g(wyaat + by) con el entrenamiento

Transformación de la
activación anterior
Función de activación

at-1 at= f(waaat-1 + waxxt + ba)

Xt
Funcionamiento (II)
RNN
yt= g(wyaat + by) Podemos observar la
recurrencia con
instantes anteriores

at-1 at= f(waaat-1 + waxxt + ba)

Xt
LSTM
1. Background
LSTM

Fuente: [Link]
LSTM (I)

Unidades más complejas para gestionar memoria a corto plazo y memoria a largo plazo.
– Permite que el backpropagation pueda realizarse con una temporalidad mayor al
descartar datos de corto/lago plazo
– Consta de 4 puertas para controlar el flujo de información:
LSTM (II)

Cada una de estas puertas están compuestas por una red
neuronal, una función sigmoidal y un elemento multiplicador
LSTM (II)

Cada una de estas puertas están compuestas por una red
neuronal, una función sigmoidal y un elemento multiplicador
LSTM (III)

La función de activación le dará el


comportamiento de válvula (si deja
pasar el dato o no )
LSTM (IV)

Learn gate: Combina la entrada actual y la memoria a corto plazo.
– La Sigmoide selecciona datos y establece cuales serán los que aprender
LSTM (V)

Forget gate: Olvida parte de la entrada de la memoria a largo plazo (el
“factor de olvido” depende de la entrada actual y la memoria a corto plazo).
– Permite decir qué información descartar y no pasar a la celda de estado
LSTM (VI)

Remember gate: Combina la memoria a corto plazo (salida de la
learn gate) y la memoria a largo plazo (salida de la forget gate).
– Decide qué recordar de las dos puertas anteriores
LSTM (VII)

Use gate: Combina la entrada actual, la memoria a corto plazo y la
memoria a largo plazo (salida de learn gate) para generar la nueva
memoria a corto plazo y la salida.
LSTM (VI)

La salida de memoria a corto plazo y memoria a largo
plazo sirve para realimentar la siguiente entrada.
¡Gracias!

Dr. Manuel Castillo-Cara


[Link]
Departamento de Inteligencia Artificial
Escuela Técnica Superior de Ingeniería Informática
Universidad Nacional de Educación a Distancia (UNED)

También podría gustarte