Skip to content

Commit

Permalink
Merge pull request #106 from BlancaCC/pulir-matematicas
Browse files Browse the repository at this point in the history
Se pulen las matemáticas. 
He incorporado todas las correcciones matemáticas que me habéis comentado estos días :D
  • Loading branch information
BlancaCC authored Jun 2, 2022
2 parents 45a9b8a + 8939179 commit 300ca73
Show file tree
Hide file tree
Showing 39 changed files with 1,997 additions and 904 deletions.
9 changes: 9 additions & 0 deletions .github/workflows/personal-dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Isoperimetry
Iésima
JJ
Julián
Jupyter
LReLU
LaTeX
Liang
Expand Down Expand Up @@ -71,6 +72,7 @@ Wilcoxon
Wortman
Zhou
approximators
aproximable
aproximador
aproximadores
autres
Expand Down Expand Up @@ -103,18 +105,22 @@ gj
gjk
hiperplanos
homeomorfismo
homeomorfos
ij
ik
inasumible
inecuación
insesgado
insesgados
ipynb
jejejeje
jk
lcc
linenos
lineos
md
metaheurística
metaheurísticas
modus
muestral
multicapa
Expand All @@ -133,9 +139,11 @@ perceptrón
png
posteriori
precompilados
preimágenes
primeraCapa
qB
reenfocar
reescalados
referenciada
reformulando
renumerar
Expand All @@ -154,6 +162,7 @@ squasher
struct
subespacio
subespacios
subrecubrimiento
sumatoria
sumatorias
sutilGreen
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ CosineSquasher,1522.128334,1521.1174307333333,19.223196344549216,1513.372792,149
ReLU,1546.379417,1552.0491917333336,21.43475886362318,1552.016166,1512.011125,1532.035333,1543.759375,1540.612458,1564.436708,1537.824125,1567.3520409999999,1578.8184999999999,1564.99575,1541.752958,1589.6446660000001,1584.8445,1577.180416,1554.431834
Indicadora de 0,1554.431834,1556.1143969999998,21.813565966541663,1518.339083,1511.308084,1510.907875,1538.663167,1562.783625,1556.0002909999998,1537.2600830000001,1568.3839580000001,1579.263333,1566.066459,1537.7922500000002,1586.575541,1575.844917,1575.89225,1557.448625
Rampa,1557.448625,1552.1686360666667,25.043497518707966,1535.111334,1520.111959,1549.579791,1514.297625,1545.007458,1544.746958,1540.343291,1546.379417,1588.8155829999998,1575.782625,1544.9089170000002,1561.5806670000002,1583.646417,1562.033542,1568.392292
Threshold de 2x,1562.809333,1556.6688833333333,23.029093715119515,1584.281958,1570.896041,1572.923375,1566.459333,1579.974125,1609.038458,1594.426542,1610.811708,1608.7973339999999,1624.151667,1599.73775,1620.39075,1611.743416,1632.175667,1630.37375
Umbral de 2x,1562.809333,1556.6688833333333,23.029093715119515,1584.281958,1570.896041,1572.923375,1566.459333,1579.974125,1609.038458,1594.426542,1610.811708,1608.7973339999999,1624.151667,1599.73775,1620.39075,1611.743416,1632.175667,1630.37375
LReLU,1564.124416,1561.367075066667,21.721638618531873,1630.1591250000001,1634.9615,1635.167917,1622.027916,1614.659458,1641.409416,1678.905541,1674.3473330000002,1672.447959,1637.151584,1664.005917,1670.290208,1672.8287090000001,1668.0979579999998,1682.95975
Valor absoluto,1583.266458,1580.5449971333333,23.463812468931806,1561.298041,1537.732667,1537.1505000000002,1564.766625,1583.266458,1574.4847909999999,1578.754958,1603.4879170000002,1599.884125,1570.287209,1587.366958,1614.3985,1605.536917,1601.6335,1588.125791
Sigmoid,1608.7973339999999,1601.0787915999997,21.937801434715055,1614.294458,1590.238917,1589.5995839999998,1591.044625,1641.8969590000002,1626.399583,1632.1184170000001,1623.39875,1668.685167,1630.391583,1644.828333,1625.854458,1673.028833,1657.49,1635.244291
Expand Down
4 changes: 2 additions & 2 deletions Memoria/capitulos/0-Metodologia/Comentarios_previos.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ \section*{Comentario previo}

Se pretende con este documento presentar un trabajo de fin del doble grado de Ingeniería Informática y Matemáticas y que cualquier miembro del tribunal;
independientemente de la vertiente a la que pertenezca sea capaz de comprenderlo en su totalidad.
Para ello se ha acompañado la exposición con notas en los márgenes aclaratorias, que siguen el siguiente código de color y icono \footnote{Como parte de la metodología los colores han sido seleccionados de acorde a una paleta de colores inclusiva.
Para ello se ha acompañado la exposición con notas aclaratorias en los márgenes, que siguen el siguiente código de color e icono \footnote{Como parte de la metodología los colores han sido seleccionados de acorde a una paleta de colores inclusiva.
Para ello se ha seleccionado una paleta de la web Palett.es,
visitada por última vez el 13 de mayo del 2022
y con dirección \url{https://palett.es/6a94a8-013e3b-7eb645-31d331-26f27d}.
}:

\begin{itemize}
\item \iconoAclaraciones \textcolor{dark_green}{ Color 1}: Comentarios para
aclarar conceptos matemáticos o informáticos ofertar la idea intuitiva que
aclarar conceptos matemáticos o informáticos y ofrecer la idea intuitiva que
se esconde, donde no se presuponen conocimientos avanzados en
la materia.
\item \iconoProfundizar \textcolor{blue}{ Color 2}: Comentarios para una reflexión más profunda o que indique nuevas áreas que explorar.
Expand Down
42 changes: 37 additions & 5 deletions Memoria/capitulos/0-Metodologia/herramientas.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,40 @@ \subsection{GitHub}
desde la planificación, comunicación, test e incluso difusión y acceso a los resultados.

\subsection{Lenguaje de programación Julia}
Hemos seleccionado como lenguaje de programación \href{https://julialang.org}{Julia},
esto se debe a que nos ofrece \textit{benchmarks} muy competitivos\footnote{Véase los resultado expuestos en
\url{https://julialang.org/benchmarks/}, web consultada por última vez el 22 de mayo de 2022.}
, al nivel de C. Así como la disponibilidad de bibliotecas usadas en ciencia de datos de
la de lenguajes como \textit{R} y \textit{Python}.
Hemos seleccionado como lenguaje de programación \href{https://julialang.org}{Julia}
por los siguientes motivos:
\begin{itemize}
\item Ofrece \textit{benchmarks}
muy competitivos\footnote{Véase los resultado expuestos en
\url{https://julialang.org/benchmarks/},
web consultada por última vez el 22 de mayo de 2022.},
al nivel de C.
\item Variedad de bibliotecas usadas para ciencia de datos que podríamos encontrar
en otros lenguajes muy utilizados en el sector como son Python y R.
\item Otras características del lenguaje que facilitan
la optimización del código como veremos en la sección \ref{ch06:activation-function-implementation}.
\end{itemize}

\subsection{\textit{Notebooks}}
% Comentario sobre qué es un scripts
\marginpar{\maginLetterSize
\iconoAclaraciones \textcolor{dark_green}{
\textbf{
Significado del término \textit{script}
}
}

Término para designar un programa relativamente simple y que por lo general
es interpretado (se va traduciendo y ejecutando línea a línea).
}

Todos los gráficas que se muestran en la memoria han sido creadas por nosotros.
Las hemos generado con \textit{scripts} o la mayoría de la veces con
\href{https://jupyter.org}{\textit{notebooks} de Jupyter}, el motivo de esto ha
sido el tener una interacción y visualización más cómoda y compacta de los resultados.

El lenguaje utilizado en los \textit{notebooks} ha sido Julia o Python indistintamente,
a conveniencia de cuál ofrecía la función o biblioteca más cómoda para el propósito.



72 changes: 35 additions & 37 deletions Memoria/capitulos/0-Metodologia/introduccion.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ \chapter{Metodología}
a otras áreas de la ciencia;
hemos aplicado por ende la
metodología expuesta en el artículo \cite{DBLP:journals/corr/abs-2104-12545}, realizado
el trabajo desarrollando con una mentalidad ágil, de acorde a las siguientes hipótesis:
el trabajo con una mentalidad ágil, de acorde a las siguientes hipótesis:

\begin{enumerate}
\item Se premia la \textbf{reproducibilidad}, \textit{la ciencia no puede ser ciencia si no es reproducible}. Es por
Expand Down Expand Up @@ -69,12 +69,12 @@ \section{\textit{Personas definidas}} \label{ch:metodología_personas}

\item \textbf{Rosa Camarero}, desea implementar un modelo de red neuronal que mejore a los actuales en algún aspecto, ya sea porque reduzca su coste computacional o espacio en memoria.

\item \textbf{María López}, catedrática en matemáticas aplicadas y miembro del tribunal . Su conocimiento
de informática es moderado. Valora una memoria formal y rigurosa. Se encarga de evaluar trabajos fin de grado, en particular éste mismo
\item \textbf{María López}, catedrática en matemáticas aplicadas y miembro del tribunal. Su conocimiento
de informática es moderado. Valora una memoria formal y rigurosa. Se encarga de evaluar trabajos fin de grado, en particular éste mismo.

\item \textbf{Pedro Castillo}, Doctor experto en \textit{deep learning} y miembro del tribunal. Valora la claridad, las experimentaciones sensatas y fundamentadas así cómo la posibilidad de aplicaciones reales. Se encarga de evaluar trabajos fin de grado, en particular éste mismo.
\item \textbf{Pedro Castillo}, Doctor experto en \textit{deep learning} y miembro del tribunal. Valora la claridad, las experimentaciones sensatas y fundamentadas así como la posibilidad de aplicaciones reales. Se encarga de evaluar trabajos fin de grado, en particular éste mismo.

\item \textbf{Javier Merí}, profesor del departamento de análisis matemático y contutor del proyecto (junto con JJ). Busca de manera formal rigurosa entender y optimizar las redes neuronales usando herramientas analíticas. Estará presente durante todo el desarrollo.
\item \textbf{Javier Merí}, profesor del departamento de análisis matemático y contutor del proyecto (junto con JJ). Busca de manera formal y rigurosa entender y optimizar las redes neuronales usando herramientas analíticas. Estará presente durante todo el desarrollo.

\item \textbf{JJ Merelo}, profesor del departamento de arquitectura de computadores y contutor del proyecto (junto con Javier).
Busca resolver problemas relacionados con la optimización bajo un punto de vista más práctico y experimental, salvaguardando un trabajo bien organizado y metódico. Estará presente durante todo el desarrollo.
Expand All @@ -88,7 +88,7 @@ \section{Historias de usuario} \label{ch:metodología_personas_historias_de_us

A partir de los usuarios se han definido las historias de usuario \cite{UserStories}, que han quedado registradas
como \textit{issues} etiquetadas con \textit{user story} y cabecera de formato
\texttt{[HUxx] título de la historia de usuario} \href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales}{nuestro repositorio
\texttt{[HUxx] título de la historia de usuario} en \href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales}{nuestro repositorio
de GitHub},
donde \texttt{HUxx} representa
la historia de usuario número $xx$.
Expand All @@ -103,7 +103,10 @@ \subsubsection*{\href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuro
\subsubsection*{ \href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales/issues/65}{[HU02] Metodología}
} \label{HUO2}

Como \textit{JJ} me gustaría que el proyecto se realizara bajo un desarrollo ágil, el cuál recoge sus principios en el siguiente manifiesto \cite{principios-manifiesto-agil} y que es una filosofía, no una metodología \cite{why-agile-is-not-a-methodology-1} \cite{why-agile-is-not-a-methodology-2}.
Como \textit{JJ} me gustaría que el proyecto se realizara bajo un desarrollo ágil, el cual recoge sus principios en el siguiente manifiesto \cite{principios-manifiesto-agil} y que es una filosofía, no una metodología \cite{why-agile-is-not-a-methodology-1} \cite{why-agile-is-not-a-methodology-2}.
Puede encontrar su declaración en las historias de usuario definidas en \href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales}{nuestro repositorio
de GitHub} \footnote{Visite el \textit{issue} 65 \url{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales/issues/65}.}.


\subsubsection*{
\href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales/issues/50}{
Expand All @@ -124,14 +127,16 @@ \subsubsection*{
[HU04] Indagar y experimentar sobre redes neuronales}
} \label{HUO4}

Como \textit{Javier y JJ} gustaría plantear nuevas hipótesis para conocer en mayor profundidad,
Como \textit{Javier y JJ} nos gustaría plantear nuevas hipótesis para conocer en mayor profundidad,
aclarar limitaciones, particularizar o abstraer en cualquier aspecto de las redes neuronales actuales.

\subsubsection*{
\href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales/issues/49}{[HU05] Requisitos tribunal}
} \label{HUO6}
Como \textit{Mayte y Pablo} queremos corregir un trabajo fin de grado bien hecho.
Bajo el contexto de evaluación la memoria debe de cumplir una serie de requisitos imprescindibles:
Puede encontrar su declaración en las historias de usuario definidas en \href{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales}{nuestro repositorio
de GitHub} \footnote{Visite el \textit{issue} 51 \url{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales/issues/51}.}.


\subsubsection*{[HU05] Requisitos tribunal} \label{HUO6}
Como \textit{María y Pedro} queremos corregir un trabajo fin de grado bien hecho.
Bajo el contexto de evaluación, la memoria debe de cumplir una serie de requisitos imprescindibles:

\begin{enumerate}
\item Declaración explícita firmada en la que se asume la originalidad del trabajo, entendida en el sentido de que no ha utilizado fuentes sin citarlas debidamente. Esta declaración se puede descargar en la web del Grado (matemáticas).
Expand All @@ -153,13 +158,13 @@ \section{Hitos} \label{ch00:hitos}

Los hitos describen entregables, productos mínimos viables y se basan en las historias de usuarios,
puede encontrar nuestras declaraciones en nuestro repositorio \footnote{Concretamente en la sección de \textit{milestones}, cuya URL es \url{https://github.com/BlancaCC/TFG-Estudio-de-las-redes-neuronales/milestones}.}.
A éstas además le hemos asociado una fecha de entrega.
A éstas además les hemos asociado una fecha de entrega.


\subsection*{Hito 0: Explicitación escrita de la metodología}
Consiste en la redacción de la descripción de la metodología a seguir resultando en capítulos concretos de la memoria
Consiste en la redacción de la descripción de la metodología a seguir, resultando en capítulos concretos de la memoria
y \textit{issues} en la plataforma de trabajo, GitHub.
La documentación presentada deberá de incluir:
La documentación presentada deberá incluir:
\begin{itemize}
\item Explicitación de la metodología.
\item Definición y descripción de personas.
Expand All @@ -178,16 +183,12 @@ \subsection*{Hito 1: Búsqueda de resultados teóricos para optimizar las redes
\item En general, cualquier hipótesis que se pueda relajar o cambiar en el camino de reducir el espacio de búsqueda de posibles redes neuronales o de los pesos de las mismas.
\end{itemize}

El estudio progresivo se verá reflejado en varios capítulos y secciones de la memoria. Con secciones como:
\textit{Definición y construcción de las redes neuronales}.
Este hito consiste en la redacción de una serie de capítulos y secciones
que estudien:

Se aceptarán las secciones una vez hayan sido supervisadas y validadas por los tutores.
El estudio progresivo se verá reflejado en varios capítulos y secciones de la memoria
que se aceptarán una vez hayan sido supervisadas y validadas por los tutores.

\subsection*{Hito 2: Evaluación experimental de las hipótesis de optimización formuladas}

Deberá de validarse y cuantificar experimentalmente las propuestas de optimización del hito anterior.
Deberán de validarse y cuantificar experimentalmente las propuestas de optimización del hito anterior.

Para ello se deberá de:
\begin{enumerate}
Expand All @@ -197,21 +198,17 @@ \subsection*{Hito 2: Evaluación experimental de las hipótesis de optimización
\item Una descripción y formulación de los test.
\end{itemize}

\item \textbf{Evaluar los resultados.}
\item \textbf{Evaluar los resultados}.
\end{enumerate}

El criterio de aceptación de un producto mínimo viable consistirá en:
El criterio de aceptación de un producto mínimo viable consistirá en verificar que:
\begin{itemize}
\item La implementación de los algoritmos debe de ser coherente y proveniente del hito anterior y debe de estar referenciada.
\item Toda implementación deberá previamente comprobar su correcto funcionamiento mediante tests.
\item La redacción del análisis y conclusiones deberá ser aprobado por los tutores nuevamente.
\item La implementación de los algoritmos debe de es coherente y proveniente del hito anterior y debe de estar referenciada.
\item Toda implementación comprueba su correcto funcionamiento mediante tests.
\item La redacción del análisis y conclusiones es aprobada por los tutores nuevamente.
\end{itemize}

\subsection*{Hito 3: Implementación de aplicaciones reales que se beneficien de las optimizaciones encontradas }

A partir de las optimizaciones encontradas del hito previo deberá de implementarse alguna aplicación real que se beneficie de algunas de las optimizaciones encontradas.

Un ejemplo de ello podría ser entrenar una red neuronal en una raspberry pi .
%Suprimo el Hito 3 porque por desgracia no nos va a dar tiempo :(



Expand All @@ -226,8 +223,9 @@ \subsection*{Hito x: Entrega del proyecto}
\section{Registro de trabajo}

Con el fin de constatar que el desarrollo efectivamente se ha
llevado con una filosofía ágil y según a los tiempos estipulados se ha registrando el tiempo, tareas dedicadas y hitos relacionados
en las siguiente \href{https://docs.google.com/spreadsheets/d/1TCcKQIKjKW9sMSU2f6obN9gHgv3c8UEdjmONkBlv42M/edit?usp=sharing}{hoja de cálculo}.
llevado con una filosofía ágil y según los tiempos estipulados se han registrado el tiempo,
las tareas dedicadas y los hitos relacionados
en la siguiente \href{https://docs.google.com/spreadsheets/d/1TCcKQIKjKW9sMSU2f6obN9gHgv3c8UEdjmONkBlv42M/edit?usp=sharing}{hoja de cálculo}.

En total el número de horas invertidas ha sido:
\textcolor{red}{TODO Estos TODOS están relacionados con el issue 46}
Expand All @@ -239,8 +237,8 @@ \section{Registro de trabajo}
\section{Resumen de la metodología}

Se ha seguido un desarrollo ágil que radica en la resolución de problemas expuestos como historias de usuarios.
Éstas historias de usuario se formulan en base a los beneficiados,personas bien definidas; se formalizan
mediante \textit{issues} y entraman los \textit{hitos}, hitos con los que guiar el desarrollo.
Éstas historias de usuario se formulan en base a los beneficiados, personas bien definidas; se formalizan
mediante \textit{issues} y entraman los \textit{hitos}, con los que guiar el desarrollo.

Todo esto se puede leer no solo en esta memoria sino también en nuestro repositorio de GitHub \cite{TFG-Estudio-de-las-redes-neuronales}.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ \chapter{Introducción a las redes neuronales}
\cite{a-universal-law-of-Robustness} \cite{CHAI2021100134} el sustento de esto no deja de ser experimental
o basado en cotas de carácter \textit{en el peor de los casos y por el tamaño del espacio de búsqueda}.
Pero estos motivos no constituyen una demostración formal ni rigurosa de porqué decantarnos verdaderamente por
ello y es más otros artículos experimentales demuestran que aumentar el número de capas no mejora los resultado
ello y, es más otros artículos experimentales demuestran que aumentar el número de capas no mejora los resultado
\cite{DBLP:conf/iwann/Linan-Villafranca21}.

Así pues, sustentados con la demostración de convergencia universal \cite{HORNIK1989359}
Expand Down
Loading

0 comments on commit 300ca73

Please sign in to comment.