Skip to content

Commit 644f7d3

Browse files
committed
docs: Improvements in Deep Learning Models
1 parent ff2881c commit 644f7d3

6 files changed

Lines changed: 155 additions & 68 deletions

File tree

docs/bibliography.bib

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,45 @@
1-
@standard{UNE-EN-62304,
2-
author = "{Asociación Española de Normalización (UNE)}",
3-
title = "{UNE-EN 62304:2007/A1:2016 - Software para dispositivos médicos - Procesos del ciclo de vida del software}",
1+
@misc{UNE-EN-62304,
2+
author = {{Asociación Española de Normalización}},
3+
title = {{UNE-EN 62304:2007/A1:2016 - Software para dispositivos médicos - Procesos del ciclo de vida del software}},
44
year = {2016},
5-
publisher = "Asociación Española de Normalización (UNE)",
6-
address = "Madrid, España",
7-
note = "Norma basada en IEC 62304:2006 con modificaciones específicas para el mercado español",
8-
url = "https://www.une.org"
5+
publisher = {Asociación Española de Normalización},
6+
address = {Madrid, España},
7+
note = {Norma basada en IEC 62304:2006 con modificaciones específicas para el mercado español},
8+
url = {https://www.une.org}
99
}
1010

1111
@manual{brainbit,
12-
title = {BrainBit Datasheet},
13-
author = {{Neurotechnology Systems LLC}},
14-
year = {2024},
15-
url = {https://brainbit.com/media/1053/brainbit-specification.pdf},
16-
note = {Accessed: 2025-02-18}
12+
title = {BrainBit Datasheet},
13+
author = {{Neurotechnology Systems LLC}},
14+
year = {2024},
15+
url = {https://brainbit.com/media/1053/brainbit-specification.pdf},
16+
note = {Accessed: 2025-02-18}
1717
}
1818

1919
@manual{raspberrypi4,
20-
title = {Raspberry Pi 4 Model B Datasheet},
21-
author = {{Raspberry Pi Foundation}},
22-
year = {2020},
23-
url = {https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-datasheet.pdf},
24-
note = {Accessed: 2025-02-18}
20+
title = {Raspberry Pi 4 Model B Datasheet},
21+
author = {{Raspberry Pi Foundation}},
22+
year = {2020},
23+
url = {https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-datasheet.pdf},
24+
note = {Accessed: 2025-02-18}
2525
}
2626

27-
@book{Siewert_Pratt_2016,
28-
title={Real-time embedded components and systems using Linux and RTOS},
29-
ISBN={1-68392-310-3}, publisher={Mercury Learning and Information},
30-
author={Siewert, Sam and Pratt, John},
31-
year={2016},
32-
keywords={Embedded computer systems},
33-
language={eng}
27+
@book{Siewert_Pratt_2016,
28+
title = {Real-time embedded components and systems using Linux and RTOS},
29+
isbn = {1-68392-310-3},
30+
publisher = {Mercury Learning and Information},
31+
author = {Siewert, Sam and Pratt, John},
32+
year = {2016},
33+
keywords = {Embedded computer systems},
34+
language = {eng}
35+
}
36+
37+
@book{raschka2022machine,
38+
title = {Machine Learning with PyTorch and Scikit-Learn},
39+
author = {Raschka, Sebastian and Liu, Yuxi (Hayden) and Mirjalili, Vahid},
40+
year = {2022},
41+
publisher = {Packt Publishing},
42+
address = {Birmingham, UK},
43+
isbn = {978-1-80181-931-2},
44+
url = {https://www.packt.com}
3445
}

docs/chapters/chapter_1/Introduction.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ \chapter{Introducción}
66
La implementación de este proyecto se fundamenta en dos pilares: el procesamiento de señales electroencefalográficas (EEG) mediante aprendizaje profundo y el cumplimiento de la normativa UNE-EN 62304 para dispositivos médicos. Para garantizar la respuesta en tiempo real del sistema, se utiliza Wind River Linux como sistema operativo base.
77

88
\section{Motivación}
9-
Desde que inicié mi formación en ingeniería, siempre he sentido una profunda fascinación por las interfaces cerebro-computadora (BCI) y sus posibles aplicaciones. Este proyecto representa una perfecta síntesis de mis pasiones: la tecnología, la medicina y la innovación. La oportunidad de trabajar en un sistema que combine el procesamiento de señales cerebrales con el control domótico me permite explorar un campo que considero revolucionario para la interacción persona-máquina.
9+
Desde que inicié mi formación en ingeniería, siempre he sentido una profunda fascinación por las interfaces cerebro-computadora (BCI) y sus posibles aplicaciones. Este proyecto representa una perfecta síntesis de mis pasiones e inquietudes: la tecnología, los sistemas operativos en tiempo real, la medicina y la innovación. La oportunidad de trabajar en un sistema que combine el procesamiento de señales cerebrales con el control domótico me permite explorar un campo que considero revolucionario para la interacción persona-máquina.
1010

1111
La decisión de trabajar con actuadores domóticos comunes, específicamente bombillas inteligentes, no es casual. Permite demostrar de manera sencilla y visual el funcionamiento del sistema BCI, haciendo tangible una tecnología que a menudo puede parecer abstracta o inalcanzable. Además, este enfoque práctico facilita la comprensión del sistema y su potencial impacto en la vida cotidiana.
1212

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
\chapter{Regiones de Interés del Cerebro}
1+
\chapter{Regiones de Interés del Cerebro}\label{ch:brain_regions}
22

33
\lipsum[1-8]

docs/chapters/chapter_4/RealTimeOSes.tex

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@ \section{Taxonomía de Sistemas en Tiempo Real}
2525
\subsection{Sistemas de Tiempo Real Estricto}
2626
Los sistemas de tiempo real estricto (\textbf{hard real-time}) se caracterizan por la intolerancia absoluta a desviaciones temporales. En estos sistemas, el incumplimiento de un plazo temporal se considera un fallo catastrófico del sistema. La expresión matemática que define su comportamiento es:
2727

28-
\begin{equation}
29-
\forall t \in T: R(t) \leq D(t)
30-
\end{equation}
28+
29+
30+
\begin{figure}[h!]
31+
\centering
32+
\begin{equation}
33+
\forall t \in T: R(t) \leq D(t)
34+
\end{equation}
35+
\caption{Ecuación de sistemas de tiempo real estricto.}
36+
\label{fig:hard_real_time_equation}
37+
\end{figure}
3138

3239
donde $R(t)$ representa el tiempo de respuesta y $D(t)$ el plazo temporal máximo permitido.
3340

@@ -44,9 +51,15 @@ \section{Taxonomía de Sistemas en Tiempo Real}
4451
\subsection{Sistemas de Tiempo Real Flexible}
4552
Los sistemas de tiempo real flexible (\textbf{soft real-time}) toleran cierta variabilidad en el cumplimiento de plazos temporales, operando bajo un modelo probabilístico donde:
4653

47-
\begin{equation}
48-
P(R(t) \leq D(t)) \geq p_{min}
49-
\end{equation}
54+
55+
56+
\begin{figure}[h!]
57+
\centering
58+
\begin{equation}
59+
P(R(t) \leq D(t)) \geq p_{min}
60+
\end{equation} \caption{Ecuación de sistemas de tiempo real flexible.}
61+
\label{fig:soft_real_time_equation}
62+
\end{figure}
5063

5164
siendo $p_{min}$ el nivel mínimo aceptable de cumplimiento temporal.
5265

docs/chapters/chapter_5/DeepLearningModels.tex

Lines changed: 99 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,122 @@
11
\chapter{Modelos de Deep Learning}\label{ch:deep_learning_models}
22

3+
A través de este capitulo se describen los modelos de Deep Learning \cite{raschka2022machine} utilizados en el proyecto, así como los conceptos fundamentales y la arquitectura de cada uno de ellos. Además, se detallan las métricas de evaluación y la validación cruzada implementada para evaluar el rendimiento de los modelos.
4+
5+
Esto nos permitirá comprender cómo se han diseñado y entrenado los modelos para clasificar señales EEG en tiempo real, y cómo se han evaluado para garantizar su eficacia y fiabilidad.
6+
37
\section{Conceptos Fundamentales}
48

59
\subsection{Ventanas Temporales}
610
Las ventanas temporales en el procesamiento de señales EEG representan segmentos discretos de tiempo durante los cuales se recopilan datos. En nuestro caso, estas ventanas capturan patrones de actividad cerebral asociados con el pensamiento de diferentes colores. La longitud de la ventana temporal es crucial ya que debe ser lo suficientemente larga para capturar los patrones relevantes, pero lo suficientemente corta para permitir una clasificación en tiempo real.
711

812
\subsection{One-Hot Encoding}
9-
El One-Hot Encoding es una técnica de preprocesamiento que utilizamos para transformar las etiquetas categóricas (colores) en vectores binarios. Por ejemplo, para tres colores:
10-
\begin{itemize}
11-
\item Rojo = [1, 0, 0]
12-
\item Verde = [0, 1, 0]
13-
\item Azul = [0, 0, 1]
14-
\end{itemize}
13+
El One-Hot Encoding \cite{raschka2022machine} es una técnica de preprocesamiento que utilizamos para transformar las etiquetas categóricas (colores) en vectores binarios. Por ejemplo, para tres colores:
14+
15+
\begin{figure}[h!]
16+
\centering
17+
\begin{tabular}{c|c}
18+
Color & Vector One-Hot \\
19+
\hline
20+
Rojo & [1, 0, 0] \\
21+
Verde & [0, 1, 0] \\
22+
Azul & [0, 0, 1]
23+
\end{tabular}
24+
\caption{Ejemplo de One-Hot Encoding para tres colores.}
25+
\label{fig:one_hot_encoding}
26+
\end{figure}
27+
28+
Esta técnica es crucial cuando trabajamos con datos categóricos que no tienen una relación ordinal entre sí. A diferencia de la codificación de etiquetas ordinales, donde asignamos un valor numérico a cada categoría basándonos en un orden predefinido, One-Hot Encoding crea una columna nueva para cada categoría posible.
29+
30+
Por ejemplo, si tuviéramos una columna de "color" con las opciones "rojo", "verde" y "azul", One-Hot Encoding transformaría esta columna en tres columnas nuevas: "rojo", "verde" y "azul". Cada fila tendría un 1 en la columna correspondiente a su color y 0 en las demás.
31+
32+
Esta representación es especialmente útil para algoritmos de machine learning, ya que evita que el modelo interprete erróneamente una relación ordinal entre las categorías. En nuestro caso, nos aseguramos de que el modelo no asuma que un color es "mayor" o "menor" que otro.
33+
34+
Es importante tener en cuenta que One-Hot Encoding puede aumentar la dimensionalidad de los datos, especialmente si hay muchas categorías posibles. Sin embargo, en nuestro caso, el número de colores es limitado, por lo que este aumento no representa un problema significativo.
1535

1636
\section{Arquitectura del Modelo}
1737

1838
\subsection{Función de Activación ReLU}
1939
La función ReLU (Rectified Linear Unit) es fundamental en nuestro modelo por sus características:
20-
\begin{equation}
21-
f(x) = max(0, x)
22-
\end{equation}
23-
Esta función ayuda a introducir no-linealidad en el modelo mientras mantiene gradientes estables durante el entrenamiento, evitando el problema del desvanecimiento del gradiente.
40+
41+
\begin{figure}[h!]
42+
\centering
43+
\begin{equation}
44+
f(x) = max(0, x)
45+
\end{equation}
46+
\caption{Ecuación de la función ReLU.}
47+
\label{fig:relu_equation}
48+
\end{figure}
49+
50+
ReLU es una función de activación no lineal que resuelve el problema del desvanecimiento del gradiente presente en otras funciones de activación como tanh o sigmoide. Este problema ocurre cuando, por ejemplo, para valores de entrada grandes ($z_1 = 20$ y $z_2 = 25$), las funciones tanh y sigmoide producen salidas prácticamente idénticas ($\sigma(z_1) \approx \sigma(z_2) \approx 1.0$) debido a su comportamiento asintótico.
51+
52+
Las principales ventajas de ReLU son:
53+
54+
\begin{itemize}
55+
\item \textbf{Gradiente Constante}: Para valores positivos de entrada, la derivada es siempre 1, lo que evita el problema del desvanecimiento del gradiente.
56+
\item \textbf{Computacionalmente Eficiente}: Su implementación es simple y rápida, ya que solo requiere una comparación con cero.
57+
\item \textbf{No Linealidad}: A pesar de su simplicidad, mantiene la capacidad de aprender funciones complejas.
58+
\item \textbf{Sparse Activation}: Produce activaciones dispersas, ya que cualquier entrada negativa se convierte en cero.
59+
\end{itemize}
60+
61+
Esta función ayuda a introducir no-linealidad en el modelo mientras mantiene gradientes estables durante el entrenamiento, haciéndola especialmente adecuada para redes neuronales profundas.
2462

2563
\subsection{LSTM (Long Short-Term Memory)}
26-
Las redes LSTM son especialmente útiles en nuestro caso por su capacidad de:
64+
65+
Las LSTM fueron diseñadas para superar el problema del desvanecimiento del gradiente, que es común en las redes neuronales recurrentes (RNN) estándar. Este problema ocurre debido a la multiplicación repetida de los gradientes durante la retropropagación a través del tiempo (BPTT), lo que puede hacer que los gradientes se vuelvan extremadamente pequeños (desvanecimiento) o extremadamente grandes (explosión).
66+
67+
Para entender mejor este problema, consideremos una RNN con solo una unidad oculta. La derivada de la función de pérdida con respecto a la entrada neta tiene un factor multiplicativo que puede volverse muy pequeño o muy grande dependiendo del valor del peso recurrente. Si el peso recurrente es menor que 1, el gradiente se desvanece; si es mayor que 1, el gradiente explota.
68+
69+
Las LSTM abordan este problema mediante el uso de celdas de memoria que pueden mantener información durante largos períodos. Cada celda de memoria tiene una estructura interna que incluye tres tipos de puertas: la puerta de olvido, la puerta de entrada y la puerta de salida.
70+
2771
\begin{itemize}
28-
\item Mantener información relevante durante largos períodos
29-
\item Detectar patrones temporales en las señales EEG
30-
\item Manejar dependencias a largo plazo en los datos
72+
\item \textbf{Puerta de Olvido (Forget Gate)}: Decide qué información descartar de la celda de memoria. Se calcula como:
73+
\begin{equation}
74+
f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)
75+
\end{equation}
76+
\item \textbf{Puerta de Entrada (Input Gate)}: Decide qué nueva información almacenar en la celda de memoria. Se calcula como:
77+
\begin{equation}
78+
i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)
79+
\end{equation}
80+
\item \textbf{Valor Candidato (Candidate Value)}: Representa la nueva información que se puede agregar a la celda de memoria. Se calcula como:
81+
\begin{equation}
82+
\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)
83+
\end{equation}
84+
\item \textbf{Puerta de Salida (Output Gate)}: Decide qué parte de la celda de memoria se utilizará para calcular la salida. Se calcula como:
85+
\begin{equation}
86+
o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)
87+
\end{equation}
3188
\end{itemize}
3289

33-
\subsection{Función Softmax}
34-
La capa de salida utiliza la función Softmax para convertir las puntuaciones del modelo en probabilidades:
90+
La celda de memoria se actualiza de la siguiente manera:
3591
\begin{equation}
36-
\sigma(z)_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}}
92+
C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t
3793
\end{equation}
38-
Donde $z_i$ representa la puntuación para cada clase (color) y $K$ es el número total de clases.
94+
95+
Y la salida de la celda LSTM se calcula como:
96+
\begin{equation}
97+
h_t = o_t \cdot \tanh(C_t)
98+
\end{equation}
99+
100+
Esta estructura permite a las LSTM mantener gradientes estables durante el entrenamiento, lo que las hace especialmente adecuadas para modelar dependencias a largo plazo en secuencias de datos.
101+
102+
\newpage
103+
\subsection{Función Softmax}
104+
La función Softmax es una forma suavizada de la función argmax; en lugar de dar un único índice de clase, proporciona la probabilidad de cada clase. Esto permite calcular probabilidades significativas de clase en configuraciones multiclase (regresión logística multinomial).
105+
106+
En Softmax, la probabilidad de que una muestra con entrada neta $z$ pertenezca a la clase $i$ se puede calcular con un término de normalización en el denominador, que es la suma de las funciones lineales ponderadas exponencialmente:
107+
108+
\begin{figure}[h!]
109+
\centering
110+
\begin{equation}
111+
p(z) = \sigma(z) = \frac{e^{z_i}}{\sum_{j=1}^M e^{z_j}}
112+
\end{equation}
113+
\caption{Ecuación de la función Softmax.}
114+
\label{fig:softmax_equation}
115+
\end{figure}
116+
117+
Las probabilidades de clase predichas ahora suman 1, como se esperaría. También es notable que la etiqueta de clase predicha es la misma que cuando aplicamos la función argmax a la salida logística.
118+
119+
Podemos pensar en el resultado de la función Softmax como una salida normalizada que es útil para obtener predicciones significativas de pertenencia a clases en configuraciones multiclase. Por lo tanto, cuando construimos un modelo de clasificación multiclase, podemos usar la función Softmax para estimar las probabilidades de pertenencia a cada clase para un lote de ejemplos de entrada.
39120

40121
\section{Evaluación del Modelo}
41122

@@ -47,11 +128,3 @@ \subsection{Métricas de Evaluación}
47128
\item \textbf{F1-Score}: Media armónica entre precisión y recall
48129
\item \textbf{ROC-AUC}: Área bajo la curva ROC para evaluación multiclase
49130
\end{itemize}
50-
51-
\subsection{Validación Cruzada}
52-
Implementamos validación cruzada k-fold para:
53-
\begin{itemize}
54-
\item Evaluar la robustez del modelo
55-
\item Detectar posible sobreajuste
56-
\item Obtener estimaciones más confiables del rendimiento
57-
\end{itemize}

docs/chapters/chapter_7/RaspberryPi.tex

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,5 @@ \section{Especificaciones Técnicas}
5050
\subsection{Consideraciones Térmicas}
5151
El sistema de gestión térmica de la Raspberry Pi 4 permite reducir la frecuencia y el voltaje del procesador en situaciones de baja carga para minimizar el consumo de energía y la generación de calor. En cargas elevadas y entornos de temperatura alta, se recomienda el uso de sistemas de disipación adicionales, como disipadores o ventiladores, para mantener la estabilidad operativa.
5252

53-
\section{Aplicaciones}
54-
La Raspberry Pi 4 Model B (8GB) resulta especialmente adecuada para:
55-
\begin{itemize}
56-
\item Sistemas embebidos de control y automatización.
57-
\item Aplicaciones IoT y monitorización de sensores.
58-
\item Dispositivos edge computing de bajo consumo.
59-
\item Prototipos y desarrollo de sistemas embebidos.
60-
\item Servidores domésticos y sistemas de control del hogar.
61-
\end{itemize}
62-
6353
\section{Elección de este dispositivo para el Proyecto}
6454
El modelo de 8GB de la Raspberry Pi 4 representa una solución versátil y compacta para el desarrollo del sistema de control domótico propuesto. Su amplia capacidad de memoria RAM y su rendimiento equilibrado permiten ejecutar aplicaciones complejas y procesos en tiempo real con eficiencia. Además, la compatibilidad con sistemas operativos en tiempo real y distribuciones Linux empresariales garantiza una base sólida para el desarrollo y la implementación del sistema.

0 commit comments

Comments
 (0)