LaTex
Some checks failed
build_docker / essential (push) Successful in 1s
build_docker / build_easyocr_gpu (push) Has been cancelled
build_docker / build_easyocr (push) Has been cancelled
build_docker / build_doctr (push) Has been cancelled
build_docker / build_doctr_gpu (push) Has been cancelled
build_docker / build_raytune (push) Has been cancelled
build_docker / build_paddle_ocr_gpu (push) Has been cancelled
build_docker / build_paddle_ocr (push) Has been cancelled
Some checks failed
build_docker / essential (push) Successful in 1s
build_docker / build_easyocr_gpu (push) Has been cancelled
build_docker / build_easyocr (push) Has been cancelled
build_docker / build_doctr (push) Has been cancelled
build_docker / build_doctr_gpu (push) Has been cancelled
build_docker / build_raytune (push) Has been cancelled
build_docker / build_paddle_ocr_gpu (push) Has been cancelled
build_docker / build_paddle_ocr (push) Has been cancelled
This commit is contained in:
@@ -95,20 +95,19 @@ def convert_latex_formulas(text):
|
||||
"""Convert LaTeX formulas to styled text for easy copy-paste into Word equation editor.
|
||||
|
||||
Word's equation editor accepts LaTeX directly, so we preserve the LaTeX code
|
||||
in a visually distinct format that users can copy and paste.
|
||||
that users can copy and paste into Insert → Equation.
|
||||
"""
|
||||
# Block formulas $$...$$ - center and style as equation placeholder
|
||||
# Block formulas $$...$$ - centered
|
||||
def convert_block(match):
|
||||
latex = match.group(1).strip()
|
||||
# Style as centered, monospace text that's easy to identify and copy
|
||||
return f'<p class=MsoNormal style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang=ES>{latex}</span></p>'
|
||||
return f'<p class=MsoNormal style="text-align:center"><span lang=ES style="font-family:Cambria Math">{latex}</span></p>'
|
||||
|
||||
text = re.sub(r'\$\$([^$]+)\$\$', convert_block, text)
|
||||
|
||||
# Inline formulas $...$ - style as inline code
|
||||
# Inline formulas $...$ - inline with math font
|
||||
def convert_inline(match):
|
||||
latex = match.group(1).strip()
|
||||
return f'<span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">{latex}</span>'
|
||||
return f'<span style="font-family:Cambria Math">{latex}</span>'
|
||||
|
||||
text = re.sub(r'\$([^$]+)\$', convert_inline, text)
|
||||
return text
|
||||
|
||||
@@ -4673,11 +4673,11 @@ _Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="te
|
||||
<p class="MsoNormal"><span lang="ES">La evaluación rigurosa de sistemas OCR requiere métricas estandarizadas que permitan comparaciones objetivas. Las métricas fundamentales se basan en la distancia de edición de Levenshtein.</span></p>
|
||||
<h4 style="mso-list:none"><b><span lang="ES" style="text-transform:none">Distancia de Levenshtein</span></b></h4>
|
||||
<p class="MsoNormal"><span lang="ES">La distancia de Levenshtein (Levenshtein, 1966) entre dos cadenas es el número mínimo de operaciones de edición (inserción, eliminación, sustitución) necesarias para transformar una cadena en otra. Formalmente, para dos cadenas <i>a</i> y <i>b</i>:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang="ES">d(a,b) = \min(\text{inserciones} + \text{eliminaciones} + \text{sustituciones})</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center"><span lang="ES" style="font-family:Cambria Math">d(a,b) = \min(\text{inserciones} + \text{eliminaciones} + \text{sustituciones})</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Esta métrica es fundamental para calcular tanto CER como WER.</span></p>
|
||||
<h4 style="mso-list:none"><b><span lang="ES" style="text-transform:none">Character Error Rate (CER)</span></b></h4>
|
||||
<p class="MsoNormal"><span lang="ES">El CER mide el error a nivel de carácter y se calcula como:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang="ES">CER = \frac{S + D + I}{N}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center"><span lang="ES" style="font-family:Cambria Math">CER = \frac{S + D + I}{N}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Donde:</span></p>
|
||||
<p class="MsoListParagraphCxSpFirst" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">S = número de sustituciones de caracteres</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">D = número de eliminaciones de caracteres</span></p>
|
||||
@@ -4686,7 +4686,7 @@ _Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="te
|
||||
<p class="MsoNormal"><span lang="ES">Un CER bajo indica que el sistema comete pocos errores a nivel de carácter. Para aplicaciones críticas se requiere un nivel de error muy reducido, mientras que en tareas de búsqueda o archivo pueden aceptarse errores mayores.</span></p>
|
||||
<h4 style="mso-list:none"><b><span lang="ES" style="text-transform:none">Word Error Rate (WER)</span></b></h4>
|
||||
<p class="MsoNormal"><span lang="ES">El WER mide el error a nivel de palabra, utilizando la misma fórmula pero considerando palabras como unidades:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang="ES">WER = \frac{S_w + D_w + I_w}{N_w}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center"><span lang="ES" style="font-family:Cambria Math">WER = \frac{S_w + D_w + I_w}{N_w}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">El WER es generalmente mayor que el CER, ya que un solo error de carácter puede invalidar una palabra completa. Esta diferencia es relevante cuando se comparan sistemas que preservan caracteres pero pierden palabras completas.</span></p>
|
||||
<h4 style="mso-list:none"><b><span lang="ES" style="text-transform:none">Otras Métricas Complementarias</span></b></h4>
|
||||
<p class="MsoNormal"><span lang="ES"><b>Precisión y Recall a nivel de palabra</b>: Útiles cuando se evalúa la capacidad del sistema para detectar palabras específicas.</span></p>
|
||||
@@ -4807,16 +4807,16 @@ _Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="te
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">Parámetros de regularización (dropout, weight decay)</span></p>
|
||||
<p class="MsoListParagraphCxSpLast" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><b>Umbrales de decisión en tiempo de inferencia</b> (relevante para este trabajo)</span></p>
|
||||
<p class="MsoNormal"><span lang="ES">El problema de HPO puede formalizarse como:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang="ES">\lambda^* = \operatorname{argmin}_{\lambda \in \Lambda} \mathcal{L}(M_\lambda, D_{val})</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center"><span lang="ES" style="font-family:Cambria Math">\lambda^* = \operatorname{argmin}_{\lambda \in \Lambda} \mathcal{L}(M_\lambda, D_{val})</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Donde:</span></p>
|
||||
<p class="MsoListParagraphCxSpFirst" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">\lambda</span> es un vector de hiperparámetros</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">\Lambda</span> es el espacio de búsqueda</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">M_\lambda</span> es el modelo configurado con <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">\lambda</span></span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">\mathcal{L}</span> es la función de pérdida</span></p>
|
||||
<p class="MsoListParagraphCxSpLast" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">D_{val}</span> es el conjunto de validación</span></p>
|
||||
<p class="MsoListParagraphCxSpFirst" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Cambria Math">\lambda</span> es un vector de hiperparámetros</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Cambria Math">\Lambda</span> es el espacio de búsqueda</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Cambria Math">M_\lambda</span> es el modelo configurado con <span style="font-family:Cambria Math">\lambda</span></span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Cambria Math">\mathcal{L}</span> es la función de pérdida</span></p>
|
||||
<p class="MsoListParagraphCxSpLast" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><span style="font-family:Cambria Math">D_{val}</span> es el conjunto de validación</span></p>
|
||||
<h4 style="mso-list:none"><b><span lang="ES" style="text-transform:none">Métodos de Optimización</span></b></h4>
|
||||
<p class="MsoNormal"><span lang="ES"><b>Grid Search (Búsqueda en rejilla)</b>:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES">El método más simple consiste en evaluar todas las combinaciones posibles de valores discretizados de los hiperparámetros. Para <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">k</span> hiperparámetros con <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">n</span> valores cada uno, requiere <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">n^k</span> evaluaciones.</span></p>
|
||||
<p class="MsoNormal"><span lang="ES">El método más simple consiste en evaluar todas las combinaciones posibles de valores discretizados de los hiperparámetros. Para <span style="font-family:Cambria Math">k</span> hiperparámetros con <span style="font-family:Cambria Math">n</span> valores cada uno, requiere <span style="font-family:Cambria Math">n^k</span> evaluaciones.</span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Ventajas:</span></p>
|
||||
<p class="MsoListParagraphCxSpFirst" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">Exhaustivo y reproducible</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">Fácil de paralelizar</span></p>
|
||||
@@ -4840,12 +4840,12 @@ _Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="te
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><b>Random Forests</b>: Manejan bien espacios de alta dimensión y variables categóricas</span></p>
|
||||
<p class="MsoListParagraphCxSpLast" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES"><b>Tree-structured Parzen Estimator (TPE)</b>: Modela densidades en lugar de la función objetivo</span></p>
|
||||
<h4 style="mso-list:none"><b><span lang="ES" style="text-transform:none">Tree-structured Parzen Estimator (TPE)</span></b></h4>
|
||||
<p class="MsoNormal"><span lang="ES">TPE, propuesto por Bergstra et al. (2011) e implementado en Optuna, es particularmente efectivo para HPO. En lugar de modelar <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">p(y|\lambda)</span> directamente, TPE modela:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang="ES">p(\lambda|y) = \begin{cases} l(\lambda) & \text{si } y < y^<i> \\ g(\lambda) & \text{si } y \geq y^</i> \end{cases}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Donde <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">y^*</span> es un umbral (típicamente el percentil 15-25 de las observaciones), <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">l(\lambda)</span> es la densidad de hiperparámetros con buen rendimiento, y <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">g(\lambda)</span> es la densidad de hiperparámetros con mal rendimiento.</span></p>
|
||||
<p class="MsoNormal"><span lang="ES">TPE, propuesto por Bergstra et al. (2011) e implementado en Optuna, es particularmente efectivo para HPO. En lugar de modelar <span style="font-family:Cambria Math">p(y|\lambda)</span> directamente, TPE modela:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center"><span lang="ES" style="font-family:Cambria Math">p(\lambda|y) = \begin{cases} l(\lambda) & \text{si } y < y^<i> \\ g(\lambda) & \text{si } y \geq y^</i> \end{cases}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Donde <span style="font-family:Cambria Math">y^*</span> es un umbral (típicamente el percentil 15-25 de las observaciones), <span style="font-family:Cambria Math">l(\lambda)</span> es la densidad de hiperparámetros con buen rendimiento, y <span style="font-family:Cambria Math">g(\lambda)</span> es la densidad de hiperparámetros con mal rendimiento.</span></p>
|
||||
<p class="MsoNormal"><span lang="ES">La función de adquisición Expected Improvement se aproxima como:</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center;background:#f5f5f5;padding:8pt;margin:6pt 40pt;font-family:Consolas;font-size:10pt"><span lang="ES">EI(\lambda) \propto \frac{l(\lambda)}{g(\lambda)}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Configuraciones con alta probabilidad bajo <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">l</span> y baja probabilidad bajo <span style="font-family:Consolas;font-size:10pt;background:#f5f5f5;padding:1pt 3pt">g</span> tienen mayor Expected Improvement.</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><p class="MsoNormal" style="text-align:center"><span lang="ES" style="font-family:Cambria Math">EI(\lambda) \propto \frac{l(\lambda)}{g(\lambda)}</span></p></span></p>
|
||||
<p class="MsoNormal"><span lang="ES">Configuraciones con alta probabilidad bajo <span style="font-family:Cambria Math">l</span> y baja probabilidad bajo <span style="font-family:Cambria Math">g</span> tienen mayor Expected Improvement.</span></p>
|
||||
<p class="MsoNormal"><span lang="ES"><b>Ventajas de TPE</b>:</span></p>
|
||||
<p class="MsoListParagraphCxSpFirst" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">Maneja naturalmente espacios condicionales (hiperparámetros que dependen de otros)</span></p>
|
||||
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt"> </span><span lang="ES">Eficiente para espacios de alta dimensión</span></p>
|
||||
|
||||
Reference in New Issue
Block a user