You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/chapters/chapter_1/Introduction.tex
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ \chapter{Introducción}
6
6
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.
7
7
8
8
\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.
10
10
11
11
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.
Copy file name to clipboardExpand all lines: docs/chapters/chapter_4/RealTimeOSes.tex
+19-6Lines changed: 19 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -25,9 +25,16 @@ \section{Taxonomía de Sistemas en Tiempo Real}
25
25
\subsection{Sistemas de Tiempo Real Estricto}
26
26
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:
27
27
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}
31
38
32
39
donde $R(t)$ representa el tiempo de respuesta y $D(t)$ el plazo temporal máximo permitido.
33
40
@@ -44,9 +51,15 @@ \section{Taxonomía de Sistemas en Tiempo Real}
44
51
\subsection{Sistemas de Tiempo Real Flexible}
45
52
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:
46
53
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}
50
63
51
64
siendo $p_{min}$ el nivel mínimo aceptable de cumplimiento temporal.
Copy file name to clipboardExpand all lines: docs/chapters/chapter_5/DeepLearningModels.tex
+99-26Lines changed: 99 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -1,41 +1,122 @@
1
1
\chapter{Modelos de Deep Learning}\label{ch:deep_learning_models}
2
2
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
+
3
7
\section{Conceptos Fundamentales}
4
8
5
9
\subsection{Ventanas Temporales}
6
10
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.
7
11
8
12
\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.
15
35
16
36
\section{Arquitectura del Modelo}
17
37
18
38
\subsection{Función de Activación ReLU}
19
39
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) \approx1.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.
24
62
25
63
\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
+
27
71
\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:
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:
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.
39
120
40
121
\section{Evaluación del Modelo}
41
122
@@ -47,11 +128,3 @@ \subsection{Métricas de Evaluación}
47
128
\item\textbf{F1-Score}: Media armónica entre precisión y recall
48
129
\item\textbf{ROC-AUC}: Área bajo la curva ROC para evaluación multiclase
49
130
\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
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.
52
52
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
-
63
53
\section{Elección de este dispositivo para el Proyecto}
64
54
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