Menu iconMenu icon
Superhéroe de Aprendizaje Profundo e IA

Cuestionario Parte 2: Marcos de Aprendizaje Profundo Avanzados

Respuestas

  1. Respuesta: La principal diferencia es que los gráficos de computación estáticos se definen una vez y no pueden cambiar, mientras que los gráficos de computación dinámicos se construyen a medida que avanza la computación. PyTorch se considera más flexible porque utiliza un gráfico de computación dinámico, lo que permite a los investigadores modificar la red durante la ejecución, haciéndolo ideal para la experimentación.
  2. Respuesta: Los componentes clave incluyen nn.Module (para definir capas y el paso adelante), nn.Linear (para capas completamente conectadas) y nn.Conv2d (para capas convolucionales). Estos módulos se utilizan para construir modelos definiendo su arquitectura y paso adelante, y se combinan en una clase Sequential o personalizada.
  3. Respuesta: Autograd calcula automáticamente los gradientes durante el paso hacia atrás rastreando todas las operaciones en los tensores. Esto permite entrenar modelos de deep learning mediante el descenso de gradiente, actualizando los parámetros del modelo utilizando estos gradientes calculados.
  4. Respuesta: Para ajustar un modelo preentrenado, se cargan los pesos preentrenados utilizando torchvision.models, se congelan las capas iniciales y se modifica la última capa completamente conectada para que coincida con el número de clases en la nueva tarea. Por ejemplo, para ajustar ResNet:
import torch.nn as nn
import torchvision.models as models

num_classes = 10  # Make sure to define the number of classes

# Load ResNet-50 with pretrained weights
model = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)

# Freeze all parameters of the model
for param in model.parameters():
    param.requires_grad = False

# Modify the fully connected layer for the new number of classes
model.fc = nn.Linear(model.fc.in_features, num_classes)
  1. Respuesta: El aprendizaje por transferencia implica tomar un modelo previamente entrenado (generalmente en un conjunto de datos grande) y ajustarlo en un conjunto de datos más pequeño y específico para la tarea. Este enfoque aprovecha las características generales aprendidas en las capas anteriores del modelo.
  2. Respuesta: Los tres componentes principales de una CNN son:
    • Capas de Convolución: Extraen características de los datos de entrada aplicando filtros.
    • Capas de Pooling: Reducen las dimensiones espaciales de los datos, conservando la información importante.
    • Capas Completamente Conectadas: Realizan la clasificación en función de las características extraídas.
  3. Respuesta: El max pooling reduce el tamaño de los mapas de características, lo que ayuda a disminuir el costo computacional, a prevenir el sobreajuste y a conservar las características más importantes seleccionando el valor máximo en cada región del mapa de características.
  4. Respuesta: Las conexiones de salto en ResNet permiten que el gradiente fluya directamente a través de la red al omitir ciertas capas. Esto ayuda a evitar el problema del gradiente que se desvanece, facilitando el entrenamiento de redes muy profundas.
  5. Respuesta: Los módulos de Inception aplican múltiples filtros de convolución de diferentes tamaños en paralelo para capturar características a varias escalas. Esto difiere de las capas tradicionales de CNN, que aplican solo una operación de convolución en cada capa.
  6. Respuesta: DenseNets conectan cada capa con todas las demás capas de manera secuencial, promoviendo la reutilización de características. En un bloque DenseNet, la salida de cada capa se concatena con las salidas de todas las capas anteriores, lo que ayuda a reducir el sobreajuste y permite un entrenamiento más eficiente.
  7. Respuesta: Las redes de propuestas de regiones (RPN) generan regiones candidatas de objetos (cajas delimitadoras) en tareas de detección de objetos. Estas propuestas se pasan a un clasificador y a un regresor para refinar las cajas delimitadoras y predecir las clases de los objetos.
  8. Respuesta: Las RNNs tradicionales tienen dificultades con las dependencias a largo plazo debido al problema del gradiente que se desvanece. Las LSTM resuelven esta limitación introduciendo compuertas (olvido, entrada, salida) que controlan el flujo de información y ayudan a mantener la memoria a largo plazo.
  9. Respuesta: La compuerta de olvido decide qué información descartar del estado de la celda anterior, la compuerta de entrada determina qué nueva información debe agregarse, y la compuerta de salida controla qué parte del estado de la celda se usa para producir el estado oculto.
  10. Respuesta: Las GRU simplifican la arquitectura LSTM al combinar las compuertas de olvido y entrada en una sola compuerta de actualización. Las GRU son generalmente más eficientes que las LSTM porque tienen menos parámetros y son computacionalmente más ligeras.
  11. Respuesta: Los transformadores no dependen del procesamiento secuencial y pueden procesar secuencias enteras a la vez utilizando la auto-atención, lo que permite una mejor paralelización y manejo de dependencias a largo plazo en los datos.
  12. Respuesta: La auto-atención permite que los transformadores se concentren en diferentes partes de la secuencia asignando diferentes pesos a cada elemento. Esto permite que el modelo capture relaciones entre elementos distantes en la secuencia sin procesarlos paso a paso.
  13. Respuesta: Los codificadores posicionales son necesarios porque los transformadores no capturan inherentemente el orden de la secuencia, a diferencia de las RNN. Los codificadores posicionales proporcionan información sobre la posición relativa de cada elemento en la secuencia.
  14. Respuesta: Los transformadores se utilizan en tareas como la traducción automática (por ejemplo, Google Translate) al mapear una secuencia de entrada en un idioma a una secuencia de salida en otro idioma. En la resumación de texto, los transformadores generan resúmenes concisos capturando los puntos clave del texto de entrada.

Respuestas

  1. Respuesta: La principal diferencia es que los gráficos de computación estáticos se definen una vez y no pueden cambiar, mientras que los gráficos de computación dinámicos se construyen a medida que avanza la computación. PyTorch se considera más flexible porque utiliza un gráfico de computación dinámico, lo que permite a los investigadores modificar la red durante la ejecución, haciéndolo ideal para la experimentación.
  2. Respuesta: Los componentes clave incluyen nn.Module (para definir capas y el paso adelante), nn.Linear (para capas completamente conectadas) y nn.Conv2d (para capas convolucionales). Estos módulos se utilizan para construir modelos definiendo su arquitectura y paso adelante, y se combinan en una clase Sequential o personalizada.
  3. Respuesta: Autograd calcula automáticamente los gradientes durante el paso hacia atrás rastreando todas las operaciones en los tensores. Esto permite entrenar modelos de deep learning mediante el descenso de gradiente, actualizando los parámetros del modelo utilizando estos gradientes calculados.
  4. Respuesta: Para ajustar un modelo preentrenado, se cargan los pesos preentrenados utilizando torchvision.models, se congelan las capas iniciales y se modifica la última capa completamente conectada para que coincida con el número de clases en la nueva tarea. Por ejemplo, para ajustar ResNet:
import torch.nn as nn
import torchvision.models as models

num_classes = 10  # Make sure to define the number of classes

# Load ResNet-50 with pretrained weights
model = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)

# Freeze all parameters of the model
for param in model.parameters():
    param.requires_grad = False

# Modify the fully connected layer for the new number of classes
model.fc = nn.Linear(model.fc.in_features, num_classes)
  1. Respuesta: El aprendizaje por transferencia implica tomar un modelo previamente entrenado (generalmente en un conjunto de datos grande) y ajustarlo en un conjunto de datos más pequeño y específico para la tarea. Este enfoque aprovecha las características generales aprendidas en las capas anteriores del modelo.
  2. Respuesta: Los tres componentes principales de una CNN son:
    • Capas de Convolución: Extraen características de los datos de entrada aplicando filtros.
    • Capas de Pooling: Reducen las dimensiones espaciales de los datos, conservando la información importante.
    • Capas Completamente Conectadas: Realizan la clasificación en función de las características extraídas.
  3. Respuesta: El max pooling reduce el tamaño de los mapas de características, lo que ayuda a disminuir el costo computacional, a prevenir el sobreajuste y a conservar las características más importantes seleccionando el valor máximo en cada región del mapa de características.
  4. Respuesta: Las conexiones de salto en ResNet permiten que el gradiente fluya directamente a través de la red al omitir ciertas capas. Esto ayuda a evitar el problema del gradiente que se desvanece, facilitando el entrenamiento de redes muy profundas.
  5. Respuesta: Los módulos de Inception aplican múltiples filtros de convolución de diferentes tamaños en paralelo para capturar características a varias escalas. Esto difiere de las capas tradicionales de CNN, que aplican solo una operación de convolución en cada capa.
  6. Respuesta: DenseNets conectan cada capa con todas las demás capas de manera secuencial, promoviendo la reutilización de características. En un bloque DenseNet, la salida de cada capa se concatena con las salidas de todas las capas anteriores, lo que ayuda a reducir el sobreajuste y permite un entrenamiento más eficiente.
  7. Respuesta: Las redes de propuestas de regiones (RPN) generan regiones candidatas de objetos (cajas delimitadoras) en tareas de detección de objetos. Estas propuestas se pasan a un clasificador y a un regresor para refinar las cajas delimitadoras y predecir las clases de los objetos.
  8. Respuesta: Las RNNs tradicionales tienen dificultades con las dependencias a largo plazo debido al problema del gradiente que se desvanece. Las LSTM resuelven esta limitación introduciendo compuertas (olvido, entrada, salida) que controlan el flujo de información y ayudan a mantener la memoria a largo plazo.
  9. Respuesta: La compuerta de olvido decide qué información descartar del estado de la celda anterior, la compuerta de entrada determina qué nueva información debe agregarse, y la compuerta de salida controla qué parte del estado de la celda se usa para producir el estado oculto.
  10. Respuesta: Las GRU simplifican la arquitectura LSTM al combinar las compuertas de olvido y entrada en una sola compuerta de actualización. Las GRU son generalmente más eficientes que las LSTM porque tienen menos parámetros y son computacionalmente más ligeras.
  11. Respuesta: Los transformadores no dependen del procesamiento secuencial y pueden procesar secuencias enteras a la vez utilizando la auto-atención, lo que permite una mejor paralelización y manejo de dependencias a largo plazo en los datos.
  12. Respuesta: La auto-atención permite que los transformadores se concentren en diferentes partes de la secuencia asignando diferentes pesos a cada elemento. Esto permite que el modelo capture relaciones entre elementos distantes en la secuencia sin procesarlos paso a paso.
  13. Respuesta: Los codificadores posicionales son necesarios porque los transformadores no capturan inherentemente el orden de la secuencia, a diferencia de las RNN. Los codificadores posicionales proporcionan información sobre la posición relativa de cada elemento en la secuencia.
  14. Respuesta: Los transformadores se utilizan en tareas como la traducción automática (por ejemplo, Google Translate) al mapear una secuencia de entrada en un idioma a una secuencia de salida en otro idioma. En la resumación de texto, los transformadores generan resúmenes concisos capturando los puntos clave del texto de entrada.

Respuestas

  1. Respuesta: La principal diferencia es que los gráficos de computación estáticos se definen una vez y no pueden cambiar, mientras que los gráficos de computación dinámicos se construyen a medida que avanza la computación. PyTorch se considera más flexible porque utiliza un gráfico de computación dinámico, lo que permite a los investigadores modificar la red durante la ejecución, haciéndolo ideal para la experimentación.
  2. Respuesta: Los componentes clave incluyen nn.Module (para definir capas y el paso adelante), nn.Linear (para capas completamente conectadas) y nn.Conv2d (para capas convolucionales). Estos módulos se utilizan para construir modelos definiendo su arquitectura y paso adelante, y se combinan en una clase Sequential o personalizada.
  3. Respuesta: Autograd calcula automáticamente los gradientes durante el paso hacia atrás rastreando todas las operaciones en los tensores. Esto permite entrenar modelos de deep learning mediante el descenso de gradiente, actualizando los parámetros del modelo utilizando estos gradientes calculados.
  4. Respuesta: Para ajustar un modelo preentrenado, se cargan los pesos preentrenados utilizando torchvision.models, se congelan las capas iniciales y se modifica la última capa completamente conectada para que coincida con el número de clases en la nueva tarea. Por ejemplo, para ajustar ResNet:
import torch.nn as nn
import torchvision.models as models

num_classes = 10  # Make sure to define the number of classes

# Load ResNet-50 with pretrained weights
model = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)

# Freeze all parameters of the model
for param in model.parameters():
    param.requires_grad = False

# Modify the fully connected layer for the new number of classes
model.fc = nn.Linear(model.fc.in_features, num_classes)
  1. Respuesta: El aprendizaje por transferencia implica tomar un modelo previamente entrenado (generalmente en un conjunto de datos grande) y ajustarlo en un conjunto de datos más pequeño y específico para la tarea. Este enfoque aprovecha las características generales aprendidas en las capas anteriores del modelo.
  2. Respuesta: Los tres componentes principales de una CNN son:
    • Capas de Convolución: Extraen características de los datos de entrada aplicando filtros.
    • Capas de Pooling: Reducen las dimensiones espaciales de los datos, conservando la información importante.
    • Capas Completamente Conectadas: Realizan la clasificación en función de las características extraídas.
  3. Respuesta: El max pooling reduce el tamaño de los mapas de características, lo que ayuda a disminuir el costo computacional, a prevenir el sobreajuste y a conservar las características más importantes seleccionando el valor máximo en cada región del mapa de características.
  4. Respuesta: Las conexiones de salto en ResNet permiten que el gradiente fluya directamente a través de la red al omitir ciertas capas. Esto ayuda a evitar el problema del gradiente que se desvanece, facilitando el entrenamiento de redes muy profundas.
  5. Respuesta: Los módulos de Inception aplican múltiples filtros de convolución de diferentes tamaños en paralelo para capturar características a varias escalas. Esto difiere de las capas tradicionales de CNN, que aplican solo una operación de convolución en cada capa.
  6. Respuesta: DenseNets conectan cada capa con todas las demás capas de manera secuencial, promoviendo la reutilización de características. En un bloque DenseNet, la salida de cada capa se concatena con las salidas de todas las capas anteriores, lo que ayuda a reducir el sobreajuste y permite un entrenamiento más eficiente.
  7. Respuesta: Las redes de propuestas de regiones (RPN) generan regiones candidatas de objetos (cajas delimitadoras) en tareas de detección de objetos. Estas propuestas se pasan a un clasificador y a un regresor para refinar las cajas delimitadoras y predecir las clases de los objetos.
  8. Respuesta: Las RNNs tradicionales tienen dificultades con las dependencias a largo plazo debido al problema del gradiente que se desvanece. Las LSTM resuelven esta limitación introduciendo compuertas (olvido, entrada, salida) que controlan el flujo de información y ayudan a mantener la memoria a largo plazo.
  9. Respuesta: La compuerta de olvido decide qué información descartar del estado de la celda anterior, la compuerta de entrada determina qué nueva información debe agregarse, y la compuerta de salida controla qué parte del estado de la celda se usa para producir el estado oculto.
  10. Respuesta: Las GRU simplifican la arquitectura LSTM al combinar las compuertas de olvido y entrada en una sola compuerta de actualización. Las GRU son generalmente más eficientes que las LSTM porque tienen menos parámetros y son computacionalmente más ligeras.
  11. Respuesta: Los transformadores no dependen del procesamiento secuencial y pueden procesar secuencias enteras a la vez utilizando la auto-atención, lo que permite una mejor paralelización y manejo de dependencias a largo plazo en los datos.
  12. Respuesta: La auto-atención permite que los transformadores se concentren en diferentes partes de la secuencia asignando diferentes pesos a cada elemento. Esto permite que el modelo capture relaciones entre elementos distantes en la secuencia sin procesarlos paso a paso.
  13. Respuesta: Los codificadores posicionales son necesarios porque los transformadores no capturan inherentemente el orden de la secuencia, a diferencia de las RNN. Los codificadores posicionales proporcionan información sobre la posición relativa de cada elemento en la secuencia.
  14. Respuesta: Los transformadores se utilizan en tareas como la traducción automática (por ejemplo, Google Translate) al mapear una secuencia de entrada en un idioma a una secuencia de salida en otro idioma. En la resumación de texto, los transformadores generan resúmenes concisos capturando los puntos clave del texto de entrada.

Respuestas

  1. Respuesta: La principal diferencia es que los gráficos de computación estáticos se definen una vez y no pueden cambiar, mientras que los gráficos de computación dinámicos se construyen a medida que avanza la computación. PyTorch se considera más flexible porque utiliza un gráfico de computación dinámico, lo que permite a los investigadores modificar la red durante la ejecución, haciéndolo ideal para la experimentación.
  2. Respuesta: Los componentes clave incluyen nn.Module (para definir capas y el paso adelante), nn.Linear (para capas completamente conectadas) y nn.Conv2d (para capas convolucionales). Estos módulos se utilizan para construir modelos definiendo su arquitectura y paso adelante, y se combinan en una clase Sequential o personalizada.
  3. Respuesta: Autograd calcula automáticamente los gradientes durante el paso hacia atrás rastreando todas las operaciones en los tensores. Esto permite entrenar modelos de deep learning mediante el descenso de gradiente, actualizando los parámetros del modelo utilizando estos gradientes calculados.
  4. Respuesta: Para ajustar un modelo preentrenado, se cargan los pesos preentrenados utilizando torchvision.models, se congelan las capas iniciales y se modifica la última capa completamente conectada para que coincida con el número de clases en la nueva tarea. Por ejemplo, para ajustar ResNet:
import torch.nn as nn
import torchvision.models as models

num_classes = 10  # Make sure to define the number of classes

# Load ResNet-50 with pretrained weights
model = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)

# Freeze all parameters of the model
for param in model.parameters():
    param.requires_grad = False

# Modify the fully connected layer for the new number of classes
model.fc = nn.Linear(model.fc.in_features, num_classes)
  1. Respuesta: El aprendizaje por transferencia implica tomar un modelo previamente entrenado (generalmente en un conjunto de datos grande) y ajustarlo en un conjunto de datos más pequeño y específico para la tarea. Este enfoque aprovecha las características generales aprendidas en las capas anteriores del modelo.
  2. Respuesta: Los tres componentes principales de una CNN son:
    • Capas de Convolución: Extraen características de los datos de entrada aplicando filtros.
    • Capas de Pooling: Reducen las dimensiones espaciales de los datos, conservando la información importante.
    • Capas Completamente Conectadas: Realizan la clasificación en función de las características extraídas.
  3. Respuesta: El max pooling reduce el tamaño de los mapas de características, lo que ayuda a disminuir el costo computacional, a prevenir el sobreajuste y a conservar las características más importantes seleccionando el valor máximo en cada región del mapa de características.
  4. Respuesta: Las conexiones de salto en ResNet permiten que el gradiente fluya directamente a través de la red al omitir ciertas capas. Esto ayuda a evitar el problema del gradiente que se desvanece, facilitando el entrenamiento de redes muy profundas.
  5. Respuesta: Los módulos de Inception aplican múltiples filtros de convolución de diferentes tamaños en paralelo para capturar características a varias escalas. Esto difiere de las capas tradicionales de CNN, que aplican solo una operación de convolución en cada capa.
  6. Respuesta: DenseNets conectan cada capa con todas las demás capas de manera secuencial, promoviendo la reutilización de características. En un bloque DenseNet, la salida de cada capa se concatena con las salidas de todas las capas anteriores, lo que ayuda a reducir el sobreajuste y permite un entrenamiento más eficiente.
  7. Respuesta: Las redes de propuestas de regiones (RPN) generan regiones candidatas de objetos (cajas delimitadoras) en tareas de detección de objetos. Estas propuestas se pasan a un clasificador y a un regresor para refinar las cajas delimitadoras y predecir las clases de los objetos.
  8. Respuesta: Las RNNs tradicionales tienen dificultades con las dependencias a largo plazo debido al problema del gradiente que se desvanece. Las LSTM resuelven esta limitación introduciendo compuertas (olvido, entrada, salida) que controlan el flujo de información y ayudan a mantener la memoria a largo plazo.
  9. Respuesta: La compuerta de olvido decide qué información descartar del estado de la celda anterior, la compuerta de entrada determina qué nueva información debe agregarse, y la compuerta de salida controla qué parte del estado de la celda se usa para producir el estado oculto.
  10. Respuesta: Las GRU simplifican la arquitectura LSTM al combinar las compuertas de olvido y entrada en una sola compuerta de actualización. Las GRU son generalmente más eficientes que las LSTM porque tienen menos parámetros y son computacionalmente más ligeras.
  11. Respuesta: Los transformadores no dependen del procesamiento secuencial y pueden procesar secuencias enteras a la vez utilizando la auto-atención, lo que permite una mejor paralelización y manejo de dependencias a largo plazo en los datos.
  12. Respuesta: La auto-atención permite que los transformadores se concentren en diferentes partes de la secuencia asignando diferentes pesos a cada elemento. Esto permite que el modelo capture relaciones entre elementos distantes en la secuencia sin procesarlos paso a paso.
  13. Respuesta: Los codificadores posicionales son necesarios porque los transformadores no capturan inherentemente el orden de la secuencia, a diferencia de las RNN. Los codificadores posicionales proporcionan información sobre la posición relativa de cada elemento en la secuencia.
  14. Respuesta: Los transformadores se utilizan en tareas como la traducción automática (por ejemplo, Google Translate) al mapear una secuencia de entrada en un idioma a una secuencia de salida en otro idioma. En la resumación de texto, los transformadores generan resúmenes concisos capturando los puntos clave del texto de entrada.