SlideShare una empresa de Scribd logo
RNA convolucionales
Redes Neuronales
Unidad neuronal
◦ Representa una “neurona” dentro de la red (también: unidad logística)
◦ Partes importantes:
◦ Función de propagación (combinación lineal de las entradas): 𝑧 ∈ ℝ
◦ Contiene pesos (𝒘 ∈ ℝ𝑑
) y bias (𝑏 ∈ ℝ)
◦ Función de activación: 𝑔 ∈ ℝ y activación 𝑎 ∈ ℝ
◦ Entrada: 𝒙 ∈ ℝ𝑑 (d atributos)
◦ Salida: 𝑦 ∈ ℝ
x1
x2
xd
3
Redes Neuronales
Tienen como entrada la combinación lineal z = wTx+b
Función sigmoidea
- Llamada función logística
- Mapea a (0,1)
- Se usa para la salida de toda la red
Función tangente hiperbólica
- No tiene “bias” (centrado en 0)
- Mapea a (-1, 1)
- Se usa para capas ocultas
Funciones de Activación
4
Redes Neuronales
Función ReLU
- Significa: “Rectified Linear Unit”
- Ventaja: facilidad de cálculo
- Se suele usar en capas ocultas
Función Leaky ReLU
- Variación de ReLU
- El valor no se fija a cero: pequeña pendiente
- Puede facilitar el “aprendizaje” (optimización)
Funciones de Activación
5
Redes Neuronales
Ejemplo: red neuronal con una capa oculta y una capa de salida (el corchete
indica el número de capa)
En general puede haber más de 1 salida (para clasificar varias clases)
Redes Neuronales feedforward
“Capa” de
entrada
Capa
oculta
Capa de
salida
x1
x2
xd
Redes Neuronales
Llamadas: Deep Neural Networks (DNN)
Son redes neuronales con varias capas
“Capa” de
entrada
Capa 1
Capa de
salida
Capa 2 Capa 3 Capa 4
x1
x2
xd
Redes Neuronales Profundas
Redes Neuronales
Visión computacional “tradicional”
◦ Se basa en extracción manual de atributos (features)
◦ Los atributos se usan para el entrenamiento
Visión computacional basada en CNN (“convolutional neural networks”)
◦ Toda la imagen se usa para el entrenamiento
extracción de atributos
Entrenamiento
basado en atributos
(SVM, redes neuronales,
random forest,
AdaBoost, etc.)
Entrenamiento usando CNN
Aplicación en Visión Computacional
Convolución
La convolución es una operación matemática que combina dos funciones para describir la
superposición entre ambas. La convolución toma dos funciones, “desliza” una sobre la otra,
multiplica los valores de las funciones en todos los puntos de superposición, y suma los
productos para crear una nueva función. Este proceso crea una nueva función que representa
cómo interactúan las dos funciones originales entre sí.
Convolución
Formalmente, la convolución es una integral que expresa la cantidad de superposición de una
función, f(t) cuando se desplaza sobre otra función g(t), de este modo:
Convolución
Convolución en el procesamiento de imágenes
En el procesamiento de imágenes, el filtrado convolucional se puede utilizar para implementar
algoritmos tales como detección de bordes, aumento de nitidez y desenfoque de imágenes.
Esto se logra seleccionando el kernel apropiado (matriz de convolución).
La operación convolución en una CNN
La convolución aplicada en una imagen para una CNN, tiene la función de
“aprende” a extraer los atributos o características de los objetos que
constituyen la imagen.
En la fase de entrenamiento de una CNN, la CNN “aprende” los valores
óptimos para cada filtro o kernel, esto valores óptimos son los que
permiten extraer atributos significativos (texturas, bordes, formas), y
estos atributos conforman el mapa de características de la imagen o
patrones, patrones que luego se utilizaran para clasificar los objetos en
otras imágenes.
La operación convolución en una CNN
El aumento de la cantidad de filtros (características del mapa de atributos de salida) que se
aplican a las capas convolucionales, también aumenta la cantidad de características que
puede extraer la CNN, este aumento de características mejora la precisión en la clasificación
de los objetos de una imagen, sin embargo, la aplicación y el entrenamiento de estos filtros
son en su mayoría los que consumen los recursos computacionales que utiliza la CNN.
Debido a lo anterior se debe buscar una justa medida en la cantidad mínima de filtros(extraer
características o patrones) que permitan extraer las características mas relevantes,
características que permitan obtener una clasificación precisa de los objetos que conforman la
imaginen.
La operación convolución en una CNN
La convolución discreta en su forma directa se define como y nos ayuda a entender la correlación(operación
que se aplica en las CNN)
Para realizar la operación convolución en imágenes es muy importante resaltar que los filtros o kernels w se
definen de tamaño impar , debido a que el origen de estas matrices se encuentra al centro, y es más sencillo
realizar este procedimiento teniendo un centro “real”.
La operación convolución en una CNN
Como se observa en la figura(a) el origen para la imagen de entrada f
se ubica en la esquina superior izquierda, el cual es muy diferente para
el kernel , ya que los kernels definen su punto origen en el centro de la
matriz.
En la operación convolución se definen los índices de las dos
sumatorias , donde uno de los índices va desde −a hasta a y el otro
índice va desde -b hasta b como se observa en la figura (a), estos
índices indican el tamaño en coordenadas del kernel , donde cada una
de estas coordenadas se genera en la iteración de la sumatoria y
representa un elemento en la matriz del kernel w ,al iterar las dos
sumatorias se recorren todos los elementos del kernel en su totalidad
como lo indica la operación convolución.
17
Redes Neuronales Convolucionales
Convolución consiste en:
- Sobreponer un filtro a la imagen, realizar las multiplicaciones término a término, y sumar el
resultado
- El filtro “recorre” toda la imagen
Convoluciones en 2 Dimensiones
filtro
(kernel)
Pixel de
origen
Pixel
destino
18
Redes Neuronales Convolucionales
Ejemplo de convolución:
Convoluciones en 2 Dimensiones
filtro
(kernel)
Imagen de entrada
Imagen de entrada
Imagen de salida
Imagen de salida
filtro
(kernel)
https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/
19
Redes Neuronales Convolucionales
Convoluciones en 3 Dimensiones
https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/
Esta forma como se aplica la
convolución en una imagen 3D, aplica
a más dimensiones
20
Redes Neuronales Convolucionales
Componentes:
- Mapa de activación z (convolución de la entrada con los filtros + bias)
- Funciones de activación g (aplicadas a los mapas de activación)
◦ Usualmente ReLU (eventualmente tanh)
Ejemplo
Capa de Convolución
21
Redes Neuronales Convolucionales
Simplificación de la representación:
- De manera simplificada (cuando hay varias capas):
Capa de Convolución
6 x 6 x 3
3 x 3 x 2
f[1] = 4
s[1] = 1
p[1] = 0
2 filtros
22
23
Redes Neuronales Convolucionales
Reduce el tamaño de las representaciones (“downsampling”)
- Opera en cada canal de manera independiente
- No introduce ningún nuevo parámetro (no hay que “aprender” nada)
Tipos más utilizados
- Max Pooling: utiliza el valor máximo de cada conjunto de píxeles
- Average Pooling: utiliza el valor promedio de cada conjunto de píxeles
Capa de Pooling
f = 2
s = 2
f = 2
s = 2
Max Pooling Average Pooling
24
Redes Neuronales Convolucionales
Es una capa que se encuentra completamente conectada (como en redes neuronales ordinarias)
Se le suele abreviar como FC
Capa “Fully Connected”
Redes Neuronales Convolucionales
Red “similar” a LeNet – 5
A medida que se va más adentro en la red:
◦ El tamaño tiende a decrecer
◦ La profundidad tiende a incrementarse
Patrón común: Conv-Pool-Conv-Pool-FC-FC-FC-Softmax
Max
Pool
Max
Pool
16
filtros
16
filtros
POOL 1 POOL 2
LeCun, Yann, et al. "Gradient-based learning applied to document recognition." (1998)
Redes Neuronales Convolucionales
Efectos de la arquitectura de la red
Redes Neuronales Convolucionales
VGG-16
K.Simonyan and A.Zisserman. "Very deep convolutional networks for large-scale image recognition." (2014).
Estas capas realizan operaciones que modifican los datos, con el
propósito de comprender sus características particulares. Las 3 capas
más comunes son: convolución, activación o ReLU, y agrupación.
Convolución: Aplica un conjunto de filtros convolucionales a las imágenes de entrada; cada filtro
activa diferentes características de las imágenes.
Unidad lineal rectificada (ReLU): Mantiene los valores positivos y establece los valores negativos en
cero, lo que permite un entrenamiento más rápido y eficaz. También se lo conoce como activación, ya
que solo las características activadas prosiguen a la siguiente capa.
Agrupación: Simplifica la salida mediante reducción no lineal de la tasa de muestreo, lo que
disminuye el número de parámetros que la red debe aprender.
Estas operaciones se repiten en decenas o cientos de capas;
cada capa aprende a identificar diferentes características.
Pesos y sesgos compartidos
A diferencia de una red neuronal tradicional, una CNN tiene pesos y valores de sesgos compartidos,
que son los mismos para todas las neuronas ocultas de una capa determinada.
Esto significa que todas las neuronas ocultas detectan las mismas características, tales como bordes
o formas, en diferentes regiones de la imagen. Esto hace que la red sea tolerante a la traducción de
objetos de una imagen. Por ejemplo, una red entrenada para reconocer automóviles podrá hacerlo
independientemente de dónde aparezca el automóvil en la imagen.
Después de aprender características en muchas capas, la arquitectura de una CNN pasa a la
clasificación.
La penúltima capa está completamente conectada y genera un vector de K dimensiones, donde K es el
número de clases que se pueden predecir, y contiene las probabilidades para cada clase de una
imagen que se está clasificando.
La capa final de la arquitectura de la CNN utiliza una capa de clasificación para proporcionar la salida
de clasificación final.
Capas de clasificación
Ejemplo RNA convolucional
Carga la base de datos de imágenes
ubica_imagen = fullfile (matlabroot, 'toolbox', 'nnet', 'nndemos', 'nndatasets', ...
'DigitDataset');
BD_img= imageDatastore(ubica_imagen, 'IncludeSubfolders', true, 'LabelSource', 'foldernames');
% para agregar una base de datos propia
% BD_img = imageDatastore('dirección dónde se encuentra tu carpeta con las imágenes',...
% 'FileExtensions',{'.jpg','.tif'},...
% 'IncludeSubfolders',true,'LabelSource','foldernames').
% fullfile devuelve un vector de caracteres que contiene la ruta completa al archivo. Ej.
‘myfoldermysubfoldermyfile.m’
.
Ejemplo RNA convolucional
Es recomendable mostrar algunas de las imágenes de la base de datos recién cargada
%% mostrar algunas imagenes de la base de datos
figure()
aleatorio=randperm(10000,25); %selecciona 25 imágenes de forma aleatoria del total (10000)
for i=1:25
subplot(5,5,i)
imshow(BD_img.Files{aleatorio(i)});
End
% randperm(N) devuelve un vector que contiene una permutación aleatoria de los números enteros 1:N.
% imshow muestra la imagen almacenada en el archivo de gráficos BD_img. El archivo debe contener una imagen
que IMREAD o DICOMREAD pueda leer
Ejemplo RNA convolucional
Para determinar el número de imágenes en cada categoría, se emplea el comando labelCount,
el cual devuelve una tabla que contiene las etiquetas y el número de imágenes que tiene cada
etiqueta. Es importante conocer el numero de clases, debido a que es el valor que se le asigna
en la última capa fullyconnected como argumento.
%% determinar el numero de imágenes que tiene cada categoría
labelCount= countEachLabel(BD_img)
% countEachLabel Cuenta el número de veces que aparece cada etiqueta única. En otras
palabras, cuenta la cantidad de archivos con cada etiqueta única. La salida es una tabla con
nombres de variables Etiqueta y Recuento.
Ejemplo RNA convolucional
Se debe especificar el tamaño de las imágenes en la capa de entrada de la red neuronal. Para ello si no se
conoce el tamaño, se puede verificar
%% Verificar el tamaño de cada imagen
img=readimage(BD_img,10);
[l,c]=size(img);
% Cada imagen tiene un tamaño de 28 por 28 por 1 píxeles
Readimage: lee el Iésimo archivo de imagen de la base de datos ‘BD_img’, y devuelve lo datos de la imagen
Ejemplo RNA convolucional
Especifique los conjuntos de datos de entrenamiento y de validación
Se divide la base de datos total en subconjunto de entrenamiento y validación
%% Definir conjuntos de entrenamiento, validación
numTrain=700;
[imdsTrain, imdsValidation]=splitEachLabel(BD_img, numTrain, 'randomized');
Definir la Arquitectura de la RNA convolucional
Definir la Arquitectura de la RNA convolucional
imageInputLayer Capa de entrada de imagen
layer = imageInputLayer(inputSize) define una capa de entrada de imagen. inputSize es el tamaño de las
imágenes de entrada para la capa. Debe ser un vector fila de dos o tres números.
convolution2dLayer Capa de convolución 2D para redes neuronales Convolucionales
layer =convolución2dLayer(filterSize, numFilters) crea una capa para convolución 2D. filterSize especifica la
altura y el ancho del filtros. Puede ser un escalar, en cuyo caso los filtros tendrán la misma altura y ancho,
o un vector [h w] donde h especifica la altura para los filtros y w especifica el ancho. numFilters especifica el
número de filtros.
‘Padding': el relleno aplicado a la entrada a lo largo de los bordes. Puede ser: - la matriz de caracteres 'igual‘
(same). El relleno se establece para que el tamaño de salida sea el mismo que el tamaño de entrada cuando
el paso es 1. De manera más general, el tamaño de salida es ceil(inputSize/stride), donde inputSize es la
altura y el ancho de la entrada.
Definir la Arquitectura de la RNA convolucional
batchNormalizationLayer Capa de normalización por lotes
Layer = BatchNormalizationLayer() crea una capa de normalización por lotes. Este tipo de capa normaliza cada
canal en un mini lote. Esto puede resultar útil para reducir la sensibilidad a las variaciones dentro de los datos.
reluLayer Capa de unidad lineal rectificada (ReLU) Layer = reluLayer() crea una capa de unidad lineal
rectificada. Este tipo de capa realiza una operación de umbral simple, donde cualquier valor de entrada menor
que cero se establecerá en cero.
maxPooling2dLayer Capa de agrupación máxima 2-D
Layer = maxPooling2dLayer(poolSize) crea una capa que realiza una agrupación máxima. Una capa de
agrupación máxima divide la entrada en regiones de agrupación rectangulares y genera el máximo de cada
región. poolSize especifica el ancho y el alto de una región de agrupación.
Definir la Arquitectura de la RNA convolucional
fullyConnectedLayer Capa completamente conectada
Layer = FullyConnectedLayer(outputSize) crea una capa completamente conectada. OutputSize especifica el
tamaño de la salida de la capa.
softmaxLayer Capa Softmax
capa = softmaxLayer() crea una capa softmax. Esta capa es útil para problemas de clasificación.
ClassificationLayer Capa de salida de clasificación para una red neuronal.
Layer = ClassificationLayer() crea una capa de salida de clasificación para una red neuronal. La capa de salida
de clasificación contiene el nombre de la función de pérdida que se utiliza para entrenar la red, el tamaño de
la salida y las etiquetas de clase.

Más contenido relacionado

Similar a Redes neuronales artificiales convolucionales

Counterpropagation
CounterpropagationCounterpropagation
CounterpropagationESCOM
 
Solución de un problema eliptico elementos finitos matlab
Solución de un problema eliptico elementos finitos matlabSolución de un problema eliptico elementos finitos matlab
Solución de un problema eliptico elementos finitos matlab
Wilder Ramirez
 
Examen Parcial 2
Examen Parcial 2Examen Parcial 2
Examen Parcial 2
Alexander Ulloa
 
Red neuronal artificial
Red neuronal artificialRed neuronal artificial
Red neuronal artificial
carlos colque
 
Redes neuronales artificiales
Redes neuronales artificialesRedes neuronales artificiales
Redes neuronales artificiales
Spacetoshare
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL Backpropagation
ESCOM
 
15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulinkFrank Arias Beltran
 
Multiplicacion de matrices: Implementacion en cluster
Multiplicacion de matrices: Implementacion en clusterMultiplicacion de matrices: Implementacion en cluster
Multiplicacion de matrices: Implementacion en cluster
Walter Tejerina
 
Redes neuronales final
Redes neuronales finalRedes neuronales final
Redes neuronales finalAdán Silva
 
Segmentación imagenes
Segmentación  imagenesSegmentación  imagenes
Segmentación imagenes
Marco Muñoz
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronalesgueste7b261
 
Funciones satlin y satlins
Funciones satlin y satlinsFunciones satlin y satlins
Funciones satlin y satlins
Juan Pinzón
 
Actividad no13 y_14_de_2do_parcial
Actividad no13 y_14_de_2do_parcialActividad no13 y_14_de_2do_parcial
Actividad no13 y_14_de_2do_parcial
Carlos Mendoza
 
Manual NeuroSolutions
Manual NeuroSolutionsManual NeuroSolutions
Manual NeuroSolutionsESCOM
 
Aet17 04 realce de imagenes - filtrado espacial
Aet17 04 realce de imagenes - filtrado espacialAet17 04 realce de imagenes - filtrado espacial
Aet17 04 realce de imagenes - filtrado espacialc09271
 
Utp sirn_2014-2 lab2
 Utp sirn_2014-2 lab2 Utp sirn_2014-2 lab2
Utp sirn_2014-2 lab2jcbp_peru
 
Mapas autoorganizados
Mapas autoorganizadosMapas autoorganizados
Mapas autoorganizadosJesus Rojas
 
Utp 2015-2_sirn lab2
 Utp 2015-2_sirn lab2 Utp 2015-2_sirn lab2
Utp 2015-2_sirn lab2jcbp_peru
 
Utp 2015-2_sirn_s6_adaline y backpropagation
 Utp 2015-2_sirn_s6_adaline y backpropagation Utp 2015-2_sirn_s6_adaline y backpropagation
Utp 2015-2_sirn_s6_adaline y backpropagationjcbenitezp
 

Similar a Redes neuronales artificiales convolucionales (20)

Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Counterpropagation
CounterpropagationCounterpropagation
Counterpropagation
 
Solución de un problema eliptico elementos finitos matlab
Solución de un problema eliptico elementos finitos matlabSolución de un problema eliptico elementos finitos matlab
Solución de un problema eliptico elementos finitos matlab
 
Examen Parcial 2
Examen Parcial 2Examen Parcial 2
Examen Parcial 2
 
Red neuronal artificial
Red neuronal artificialRed neuronal artificial
Red neuronal artificial
 
Redes neuronales artificiales
Redes neuronales artificialesRedes neuronales artificiales
Redes neuronales artificiales
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL Backpropagation
 
15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink
 
Multiplicacion de matrices: Implementacion en cluster
Multiplicacion de matrices: Implementacion en clusterMultiplicacion de matrices: Implementacion en cluster
Multiplicacion de matrices: Implementacion en cluster
 
Redes neuronales final
Redes neuronales finalRedes neuronales final
Redes neuronales final
 
Segmentación imagenes
Segmentación  imagenesSegmentación  imagenes
Segmentación imagenes
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Funciones satlin y satlins
Funciones satlin y satlinsFunciones satlin y satlins
Funciones satlin y satlins
 
Actividad no13 y_14_de_2do_parcial
Actividad no13 y_14_de_2do_parcialActividad no13 y_14_de_2do_parcial
Actividad no13 y_14_de_2do_parcial
 
Manual NeuroSolutions
Manual NeuroSolutionsManual NeuroSolutions
Manual NeuroSolutions
 
Aet17 04 realce de imagenes - filtrado espacial
Aet17 04 realce de imagenes - filtrado espacialAet17 04 realce de imagenes - filtrado espacial
Aet17 04 realce de imagenes - filtrado espacial
 
Utp sirn_2014-2 lab2
 Utp sirn_2014-2 lab2 Utp sirn_2014-2 lab2
Utp sirn_2014-2 lab2
 
Mapas autoorganizados
Mapas autoorganizadosMapas autoorganizados
Mapas autoorganizados
 
Utp 2015-2_sirn lab2
 Utp 2015-2_sirn lab2 Utp 2015-2_sirn lab2
Utp 2015-2_sirn lab2
 
Utp 2015-2_sirn_s6_adaline y backpropagation
 Utp 2015-2_sirn_s6_adaline y backpropagation Utp 2015-2_sirn_s6_adaline y backpropagation
Utp 2015-2_sirn_s6_adaline y backpropagation
 

Último

INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
arriagaanggie50
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 

Último (20)

INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 

Redes neuronales artificiales convolucionales

  • 2. Redes Neuronales Unidad neuronal ◦ Representa una “neurona” dentro de la red (también: unidad logística) ◦ Partes importantes: ◦ Función de propagación (combinación lineal de las entradas): 𝑧 ∈ ℝ ◦ Contiene pesos (𝒘 ∈ ℝ𝑑 ) y bias (𝑏 ∈ ℝ) ◦ Función de activación: 𝑔 ∈ ℝ y activación 𝑎 ∈ ℝ ◦ Entrada: 𝒙 ∈ ℝ𝑑 (d atributos) ◦ Salida: 𝑦 ∈ ℝ x1 x2 xd
  • 3. 3 Redes Neuronales Tienen como entrada la combinación lineal z = wTx+b Función sigmoidea - Llamada función logística - Mapea a (0,1) - Se usa para la salida de toda la red Función tangente hiperbólica - No tiene “bias” (centrado en 0) - Mapea a (-1, 1) - Se usa para capas ocultas Funciones de Activación
  • 4. 4 Redes Neuronales Función ReLU - Significa: “Rectified Linear Unit” - Ventaja: facilidad de cálculo - Se suele usar en capas ocultas Función Leaky ReLU - Variación de ReLU - El valor no se fija a cero: pequeña pendiente - Puede facilitar el “aprendizaje” (optimización) Funciones de Activación
  • 5. 5 Redes Neuronales Ejemplo: red neuronal con una capa oculta y una capa de salida (el corchete indica el número de capa) En general puede haber más de 1 salida (para clasificar varias clases) Redes Neuronales feedforward “Capa” de entrada Capa oculta Capa de salida x1 x2 xd
  • 6. Redes Neuronales Llamadas: Deep Neural Networks (DNN) Son redes neuronales con varias capas “Capa” de entrada Capa 1 Capa de salida Capa 2 Capa 3 Capa 4 x1 x2 xd Redes Neuronales Profundas
  • 7. Redes Neuronales Visión computacional “tradicional” ◦ Se basa en extracción manual de atributos (features) ◦ Los atributos se usan para el entrenamiento Visión computacional basada en CNN (“convolutional neural networks”) ◦ Toda la imagen se usa para el entrenamiento extracción de atributos Entrenamiento basado en atributos (SVM, redes neuronales, random forest, AdaBoost, etc.) Entrenamiento usando CNN Aplicación en Visión Computacional
  • 8. Convolución La convolución es una operación matemática que combina dos funciones para describir la superposición entre ambas. La convolución toma dos funciones, “desliza” una sobre la otra, multiplica los valores de las funciones en todos los puntos de superposición, y suma los productos para crear una nueva función. Este proceso crea una nueva función que representa cómo interactúan las dos funciones originales entre sí.
  • 9. Convolución Formalmente, la convolución es una integral que expresa la cantidad de superposición de una función, f(t) cuando se desplaza sobre otra función g(t), de este modo:
  • 11. Convolución en el procesamiento de imágenes En el procesamiento de imágenes, el filtrado convolucional se puede utilizar para implementar algoritmos tales como detección de bordes, aumento de nitidez y desenfoque de imágenes. Esto se logra seleccionando el kernel apropiado (matriz de convolución).
  • 12. La operación convolución en una CNN La convolución aplicada en una imagen para una CNN, tiene la función de “aprende” a extraer los atributos o características de los objetos que constituyen la imagen. En la fase de entrenamiento de una CNN, la CNN “aprende” los valores óptimos para cada filtro o kernel, esto valores óptimos son los que permiten extraer atributos significativos (texturas, bordes, formas), y estos atributos conforman el mapa de características de la imagen o patrones, patrones que luego se utilizaran para clasificar los objetos en otras imágenes.
  • 13. La operación convolución en una CNN El aumento de la cantidad de filtros (características del mapa de atributos de salida) que se aplican a las capas convolucionales, también aumenta la cantidad de características que puede extraer la CNN, este aumento de características mejora la precisión en la clasificación de los objetos de una imagen, sin embargo, la aplicación y el entrenamiento de estos filtros son en su mayoría los que consumen los recursos computacionales que utiliza la CNN. Debido a lo anterior se debe buscar una justa medida en la cantidad mínima de filtros(extraer características o patrones) que permitan extraer las características mas relevantes, características que permitan obtener una clasificación precisa de los objetos que conforman la imaginen.
  • 14. La operación convolución en una CNN La convolución discreta en su forma directa se define como y nos ayuda a entender la correlación(operación que se aplica en las CNN) Para realizar la operación convolución en imágenes es muy importante resaltar que los filtros o kernels w se definen de tamaño impar , debido a que el origen de estas matrices se encuentra al centro, y es más sencillo realizar este procedimiento teniendo un centro “real”.
  • 15.
  • 16. La operación convolución en una CNN Como se observa en la figura(a) el origen para la imagen de entrada f se ubica en la esquina superior izquierda, el cual es muy diferente para el kernel , ya que los kernels definen su punto origen en el centro de la matriz. En la operación convolución se definen los índices de las dos sumatorias , donde uno de los índices va desde −a hasta a y el otro índice va desde -b hasta b como se observa en la figura (a), estos índices indican el tamaño en coordenadas del kernel , donde cada una de estas coordenadas se genera en la iteración de la sumatoria y representa un elemento en la matriz del kernel w ,al iterar las dos sumatorias se recorren todos los elementos del kernel en su totalidad como lo indica la operación convolución.
  • 17. 17 Redes Neuronales Convolucionales Convolución consiste en: - Sobreponer un filtro a la imagen, realizar las multiplicaciones término a término, y sumar el resultado - El filtro “recorre” toda la imagen Convoluciones en 2 Dimensiones filtro (kernel) Pixel de origen Pixel destino
  • 18. 18 Redes Neuronales Convolucionales Ejemplo de convolución: Convoluciones en 2 Dimensiones filtro (kernel) Imagen de entrada Imagen de entrada Imagen de salida Imagen de salida filtro (kernel) https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/
  • 19. 19 Redes Neuronales Convolucionales Convoluciones en 3 Dimensiones https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/ Esta forma como se aplica la convolución en una imagen 3D, aplica a más dimensiones
  • 20. 20 Redes Neuronales Convolucionales Componentes: - Mapa de activación z (convolución de la entrada con los filtros + bias) - Funciones de activación g (aplicadas a los mapas de activación) ◦ Usualmente ReLU (eventualmente tanh) Ejemplo Capa de Convolución
  • 21. 21 Redes Neuronales Convolucionales Simplificación de la representación: - De manera simplificada (cuando hay varias capas): Capa de Convolución 6 x 6 x 3 3 x 3 x 2 f[1] = 4 s[1] = 1 p[1] = 0 2 filtros
  • 22. 22
  • 23. 23 Redes Neuronales Convolucionales Reduce el tamaño de las representaciones (“downsampling”) - Opera en cada canal de manera independiente - No introduce ningún nuevo parámetro (no hay que “aprender” nada) Tipos más utilizados - Max Pooling: utiliza el valor máximo de cada conjunto de píxeles - Average Pooling: utiliza el valor promedio de cada conjunto de píxeles Capa de Pooling f = 2 s = 2 f = 2 s = 2 Max Pooling Average Pooling
  • 24. 24 Redes Neuronales Convolucionales Es una capa que se encuentra completamente conectada (como en redes neuronales ordinarias) Se le suele abreviar como FC Capa “Fully Connected”
  • 25. Redes Neuronales Convolucionales Red “similar” a LeNet – 5 A medida que se va más adentro en la red: ◦ El tamaño tiende a decrecer ◦ La profundidad tiende a incrementarse Patrón común: Conv-Pool-Conv-Pool-FC-FC-FC-Softmax Max Pool Max Pool 16 filtros 16 filtros POOL 1 POOL 2 LeCun, Yann, et al. "Gradient-based learning applied to document recognition." (1998)
  • 26. Redes Neuronales Convolucionales Efectos de la arquitectura de la red
  • 27. Redes Neuronales Convolucionales VGG-16 K.Simonyan and A.Zisserman. "Very deep convolutional networks for large-scale image recognition." (2014).
  • 28. Estas capas realizan operaciones que modifican los datos, con el propósito de comprender sus características particulares. Las 3 capas más comunes son: convolución, activación o ReLU, y agrupación. Convolución: Aplica un conjunto de filtros convolucionales a las imágenes de entrada; cada filtro activa diferentes características de las imágenes. Unidad lineal rectificada (ReLU): Mantiene los valores positivos y establece los valores negativos en cero, lo que permite un entrenamiento más rápido y eficaz. También se lo conoce como activación, ya que solo las características activadas prosiguen a la siguiente capa. Agrupación: Simplifica la salida mediante reducción no lineal de la tasa de muestreo, lo que disminuye el número de parámetros que la red debe aprender.
  • 29. Estas operaciones se repiten en decenas o cientos de capas; cada capa aprende a identificar diferentes características.
  • 30. Pesos y sesgos compartidos A diferencia de una red neuronal tradicional, una CNN tiene pesos y valores de sesgos compartidos, que son los mismos para todas las neuronas ocultas de una capa determinada. Esto significa que todas las neuronas ocultas detectan las mismas características, tales como bordes o formas, en diferentes regiones de la imagen. Esto hace que la red sea tolerante a la traducción de objetos de una imagen. Por ejemplo, una red entrenada para reconocer automóviles podrá hacerlo independientemente de dónde aparezca el automóvil en la imagen.
  • 31. Después de aprender características en muchas capas, la arquitectura de una CNN pasa a la clasificación. La penúltima capa está completamente conectada y genera un vector de K dimensiones, donde K es el número de clases que se pueden predecir, y contiene las probabilidades para cada clase de una imagen que se está clasificando. La capa final de la arquitectura de la CNN utiliza una capa de clasificación para proporcionar la salida de clasificación final. Capas de clasificación
  • 32. Ejemplo RNA convolucional Carga la base de datos de imágenes ubica_imagen = fullfile (matlabroot, 'toolbox', 'nnet', 'nndemos', 'nndatasets', ... 'DigitDataset'); BD_img= imageDatastore(ubica_imagen, 'IncludeSubfolders', true, 'LabelSource', 'foldernames'); % para agregar una base de datos propia % BD_img = imageDatastore('dirección dónde se encuentra tu carpeta con las imágenes',... % 'FileExtensions',{'.jpg','.tif'},... % 'IncludeSubfolders',true,'LabelSource','foldernames'). % fullfile devuelve un vector de caracteres que contiene la ruta completa al archivo. Ej. ‘myfoldermysubfoldermyfile.m’ .
  • 33. Ejemplo RNA convolucional Es recomendable mostrar algunas de las imágenes de la base de datos recién cargada %% mostrar algunas imagenes de la base de datos figure() aleatorio=randperm(10000,25); %selecciona 25 imágenes de forma aleatoria del total (10000) for i=1:25 subplot(5,5,i) imshow(BD_img.Files{aleatorio(i)}); End % randperm(N) devuelve un vector que contiene una permutación aleatoria de los números enteros 1:N. % imshow muestra la imagen almacenada en el archivo de gráficos BD_img. El archivo debe contener una imagen que IMREAD o DICOMREAD pueda leer
  • 34. Ejemplo RNA convolucional Para determinar el número de imágenes en cada categoría, se emplea el comando labelCount, el cual devuelve una tabla que contiene las etiquetas y el número de imágenes que tiene cada etiqueta. Es importante conocer el numero de clases, debido a que es el valor que se le asigna en la última capa fullyconnected como argumento. %% determinar el numero de imágenes que tiene cada categoría labelCount= countEachLabel(BD_img) % countEachLabel Cuenta el número de veces que aparece cada etiqueta única. En otras palabras, cuenta la cantidad de archivos con cada etiqueta única. La salida es una tabla con nombres de variables Etiqueta y Recuento.
  • 35. Ejemplo RNA convolucional Se debe especificar el tamaño de las imágenes en la capa de entrada de la red neuronal. Para ello si no se conoce el tamaño, se puede verificar %% Verificar el tamaño de cada imagen img=readimage(BD_img,10); [l,c]=size(img); % Cada imagen tiene un tamaño de 28 por 28 por 1 píxeles Readimage: lee el Iésimo archivo de imagen de la base de datos ‘BD_img’, y devuelve lo datos de la imagen
  • 36. Ejemplo RNA convolucional Especifique los conjuntos de datos de entrenamiento y de validación Se divide la base de datos total en subconjunto de entrenamiento y validación %% Definir conjuntos de entrenamiento, validación numTrain=700; [imdsTrain, imdsValidation]=splitEachLabel(BD_img, numTrain, 'randomized');
  • 37. Definir la Arquitectura de la RNA convolucional Definir la Arquitectura de la RNA convolucional imageInputLayer Capa de entrada de imagen layer = imageInputLayer(inputSize) define una capa de entrada de imagen. inputSize es el tamaño de las imágenes de entrada para la capa. Debe ser un vector fila de dos o tres números. convolution2dLayer Capa de convolución 2D para redes neuronales Convolucionales layer =convolución2dLayer(filterSize, numFilters) crea una capa para convolución 2D. filterSize especifica la altura y el ancho del filtros. Puede ser un escalar, en cuyo caso los filtros tendrán la misma altura y ancho, o un vector [h w] donde h especifica la altura para los filtros y w especifica el ancho. numFilters especifica el número de filtros. ‘Padding': el relleno aplicado a la entrada a lo largo de los bordes. Puede ser: - la matriz de caracteres 'igual‘ (same). El relleno se establece para que el tamaño de salida sea el mismo que el tamaño de entrada cuando el paso es 1. De manera más general, el tamaño de salida es ceil(inputSize/stride), donde inputSize es la altura y el ancho de la entrada.
  • 38. Definir la Arquitectura de la RNA convolucional batchNormalizationLayer Capa de normalización por lotes Layer = BatchNormalizationLayer() crea una capa de normalización por lotes. Este tipo de capa normaliza cada canal en un mini lote. Esto puede resultar útil para reducir la sensibilidad a las variaciones dentro de los datos. reluLayer Capa de unidad lineal rectificada (ReLU) Layer = reluLayer() crea una capa de unidad lineal rectificada. Este tipo de capa realiza una operación de umbral simple, donde cualquier valor de entrada menor que cero se establecerá en cero. maxPooling2dLayer Capa de agrupación máxima 2-D Layer = maxPooling2dLayer(poolSize) crea una capa que realiza una agrupación máxima. Una capa de agrupación máxima divide la entrada en regiones de agrupación rectangulares y genera el máximo de cada región. poolSize especifica el ancho y el alto de una región de agrupación.
  • 39. Definir la Arquitectura de la RNA convolucional fullyConnectedLayer Capa completamente conectada Layer = FullyConnectedLayer(outputSize) crea una capa completamente conectada. OutputSize especifica el tamaño de la salida de la capa. softmaxLayer Capa Softmax capa = softmaxLayer() crea una capa softmax. Esta capa es útil para problemas de clasificación. ClassificationLayer Capa de salida de clasificación para una red neuronal. Layer = ClassificationLayer() crea una capa de salida de clasificación para una red neuronal. La capa de salida de clasificación contiene el nombre de la función de pérdida que se utiliza para entrenar la red, el tamaño de la salida y las etiquetas de clase.