Gran pregunta! Muchos de los beneficios son de naturaleza práctica más que cualquier otra cosa.
- Más fácil de escribir código de optimización. Le ahorra tiempo al tener que escribir múltiples conjuntos de código de optimización para cada componente en la tubería de ML. De hecho, tratar de determinar exactamente cómo debe optimizarse cada componente en la tubería es un problema no trivial en sí mismo. Escribir código para la optimización en una red de extremo a extremo es significativamente más simple: ¡solo desciende por gradiente todo! También reduce la probabilidad de introducir errores accidentalmente en su programa, lo cual es una gran ventaja.
- Codebase es más fácil de mantener. La base de código para redes de extremo a extremo suele ser mucho más fácil de mantener y, por lo general, está contenida en un solo marco (por ejemplo, Tensorflow). Esto hace la vida mucho más fácil, ya que no necesita mantener una base de código para múltiples modelos diferentes y tratar de descubrir cómo se conecta todo.
- Más fácil de razonar con. Las redes de extremo a extremo suelen ser más fáciles de razonar, ya que solo hay un conjunto de entradas y un conjunto de salidas. Más importante aún, todo sucede bajo un único marco de red neuronal. Tratar de razonar sobre una tubería que contiene múltiples modelos es significativamente más desafiante, ya que requiere que haga varios cambios de contexto en su cabeza mientras piensa en lo que está haciendo cada modelo. Este problema se amplifica aún más cuando los modelos con los que está trabajando varían mucho (por ejemplo, una tubería que va desde el núcleo PCA -> árboles de decisión -> k-means -> Proceso Gaussiano).