25 C
Colombia
sábado, julio 12, 2025

POSIT AI Weblog: Keras para R


Estamos emocionados de anunciar que el Paquete Keras ahora está disponible en CRAN. El paquete proporciona una interfaz R para Kerasuna API de redes neuronales de alto nivel desarrolladas con un enfoque en habilitar la experimentación rápida. Keras tiene las siguientes características clave:

  • Permite que el mismo código se ejecute en CPU o en GPU, sin problemas.

  • API fácil de usar que facilita la prototipo de modelos de aprendizaje profundo rápidamente.

  • Soporte incorporado para redes convolucionales (para visión por computadora), redes recurrentes (para el procesamiento de secuencias) y cualquier combinación de ambos.

  • Admite arquitecturas de pink arbitrarias: modelos de entrada múltiple o múltiples salidas, intercambio de capas, intercambio de modelos, and many others. Esto significa que Keras es apropiado para construir esencialmente cualquier modelo de aprendizaje profundo, desde una pink de memoria hasta una máquina neuronal de tinging.

  • Es capaz de correr además de múltiples back-end, incluidos Flujo tensor, Cittko Eano.

Si ya está familiarizado con Keras y desea saltar directamente, consulte https://tensorflow.rstudio.com/keras que tiene todo lo que necesita para comenzar, incluidos más de 20 ejemplos completos para aprender.

Para aprender un poco más sobre Keras y por qué estamos tan emocionados de anunciar la interfaz Keras para R, ¡siga leyendo!

Keras y aprendizaje profundo

El interés en el aprendizaje profundo se ha acelerado rápidamente en los últimos años, y varios marcos de aprendizaje profundo han surgido durante el mismo período de tiempo. De todos los marcos disponibles, Keras se ha destacado por su productividad, flexibilidad y API fácil de usar. Al mismo tiempo, TensorFlow se ha convertido en una plataforma de aprendizaje automático de próxima generación que es extremadamente versatile y adecuado para la implementación de producción.

No es sorprendente que Keras y Tensorflow se hayan alejado de otros marcos de aprendizaje profundo:

¡La buena noticia sobre Keras y TensorFlow es que no necesita elegir entre ellos! El backend predeterminado para Keras es TensorFlow y Keras puede ser integrado sin problemas con flujos de trabajo TensorFlow. También hay una implementación de flujo de tensor puro de keras con Integración más profunda en la hoja de ruta para finales de este año.

Keras y TensorFlow son el estado del arte en herramientas de aprendizaje profundo y con el paquete Keras ahora puede acceder a ambos con una interfaz R fluida.

Empezando

Instalación

Para comenzar, instale el paquete Keras R desde CRAN de la siguiente manera:

La interfaz Keras R usa la Flujo tensor motor de fondo por defecto. Para instalar tanto la biblioteca Keras Core como el TensorFlow Backend, use el install_keras() función:

Esto le proporcionará instalaciones predeterminadas basadas en CPU de Keras y TensorFlow. Si desea una instalación más personalizada, por ejemplo, si desea aprovechar las GPU de NVIDIA, consulte la documentación para install_keras().

Ejemplo de mnist

Podemos aprender los conceptos básicos de Keras caminando a través de un ejemplo easy: reconocer dígitos escritos a mano del Mnista conjunto de datos. MNIST consta de 28 x 28 imágenes en escala de grises de dígitos escritos a mano como estos:

El conjunto de datos también incluye etiquetas para cada imagen, diciéndonos qué dígito es. Por ejemplo, las etiquetas para las imágenes anteriores son 5, 0, 4 y 1.

Preparando los datos

El conjunto de datos MNIST se incluye con Keras y se puede acceder utilizando el dataset_mnist() función. Aquí cargamos el conjunto de datos y luego creamos variables para nuestros datos de prueba y capacitación:

library(keras)
mnist <- dataset_mnist()
x_train <- mnist$practice$x
y_train <- mnist$practice$y
x_test <- mnist$take a look at$x
y_test <- mnist$take a look at$y

El x Los datos son una matriz tridimensional (photos,width,peak) de valores de escala de grises. Para preparar los datos para el entrenamiento, convertimos las matrices 3-D en matrices remodelando el ancho y la altura en una sola dimensión (las imágenes 28×28 se aplanan en longitud 784 vectores). Luego, convertimos los valores de escala de grises de enteros que varían entre 0 y 255 en valores de punto flotante que varían entre 0 y 1:

# reshape
dim(x_train) <- c(nrow(x_train), 784)
dim(x_test) <- c(nrow(x_test), 784)
# rescale
x_train <- x_train / 255
x_test <- x_test / 255

El y Los datos son un vector entero con valores que van de 0 a 9. Para preparar estos datos para la capacitación, nosotros Codificar un solo estado los vectores en matrices de clase binaria usando los keras to_categorical() función:

y_train <- to_categorical(y_train, 10)
y_test <- to_categorical(y_test, 10)

Definición del modelo

La estructura de datos central de Keras es un modelo, una forma de organizar capas. El tipo de modelo más easy es el modelo secuencialuna pila lineal de capas.

Comenzamos creando un modelo secuencial y luego agregando capas usando la tubería (%>%) Operador:

mannequin <- keras_model_sequential() 
mannequin %>% 
  layer_dense(items = 256, activation = "relu", input_shape = c(784)) %>% 
  layer_dropout(charge = 0.4) %>% 
  layer_dense(items = 128, activation = "relu") %>%
  layer_dropout(charge = 0.3) %>%
  layer_dense(items = 10, activation = "softmax")

El input_shape El argumento a la primera capa especifica la forma de los datos de entrada (un vector numérico de longitud 784 que representa una imagen en escala de grises). La capa last emite un vector numérico de longitud 10 (probabilidades para cada dígito) utilizando un Función de activación de Softmax.

Usar el abstract() función para imprimir los detalles del modelo:

Mannequin
________________________________________________________________________________
Layer (sort)                        Output Form                    Param #     
================================================================================
dense_1 (Dense)                     (None, 256)                     200960      
________________________________________________________________________________
dropout_1 (Dropout)                 (None, 256)                     0           
________________________________________________________________________________
dense_2 (Dense)                     (None, 128)                     32896       
________________________________________________________________________________
dropout_2 (Dropout)                 (None, 128)                     0           
________________________________________________________________________________
dense_3 (Dense)                     (None, 10)                      1290        
================================================================================
Complete params: 235,146
Trainable params: 235,146
Non-trainable params: 0
________________________________________________________________________________

A continuación, compile el modelo con la función de pérdida apropiada, el optimizador y las métricas:

mannequin %>% compile(
  loss = "categorical_crossentropy",
  optimizer = optimizer_rmsprop(),
  metrics = c("accuracy")
)

Capacitación y evaluación

Usar el match() Función para entrenar el modelo para 30 épocas utilizando lotes de 128 imágenes:

historical past <- mannequin %>% match(
  x_train, y_train, 
  epochs = 30, batch_size = 128, 
  validation_split = 0.2
)

El historical past objeto devuelto por match() Incluye métricas de pérdida y precisión que podemos trazar:

Evaluar el rendimiento del modelo en los datos de la prueba:

mannequin %>% consider(x_test, y_test,verbose = 0)
$loss
[1] 0.1149

$acc
[1] 0.9807

Genere predicciones en nuevos datos:

mannequin %>% predict_classes(x_test)
  [1] 7 2 1 0 4 1 4 9 5 9 0 6 9 0 1 5 9 7 3 4 9 6 6 5 4 0 7 4 0 1 3 1 3 4 7 2 7 1 2
 [40] 1 1 7 4 2 3 5 1 2 4 4 6 3 5 5 6 0 4 1 9 5 7 8 9 3 7 4 6 4 3 0 7 0 2 9 1 7 3 2
 [79] 9 7 7 6 2 7 8 4 7 3 6 1 3 6 9 3 1 4 1 7 6 9
 [ reached getOption("max.print") -- omitted 9900 entries ]

Keras proporciona un vocabulario para construir modelos de aprendizaje profundo que sea easy, elegante e intuitivo. Construir un sistema de contestadores de preguntas, un modelo de clasificación de imágenes, una máquina neuronal de Turing o cualquier otro modelo es igual de sencillo.

El Guía del modelo secuencial El artículo describe los conceptos básicos de los modelos secuenciales de Keras en más profundidad.

Ejemplos

Más de 20 ejemplos completos están disponibles (agradecimiento especial a [@dfalbel](https://github.com/dfalbel) por su trabajo en estos!). Los ejemplos cubren la clasificación de imágenes, la generación de texto con LSTM apilados, respuesta de pregunta con redes de memoria, aprendizaje de transferencia, codificación variacional y más.

además_rnn Implementación de secuencia a aprendizaje de secuencia para realizar la adición de dos números (como cadenas).
babi_memnn Entrena una pink de memoria en el conjunto de datos BABI para la comprensión de lectura.
babi_rnn Entrena una pink recurrente de dos ramas en el conjunto de datos BABI para la comprensión de lectura.
cifar10_cnn Entrena un CNN profundo easy en el conjunto de datos de imágenes pequeñas CIFAR10.
conv_lstm Demuestra el uso de una pink LSTM convolucional.
profundo_dream Sueños profundos en Keras.
imdb_bidirectional_lstm Entrena un LSTM bidireccional en la tarea de clasificación de sentimientos IMDB.
imdb_cnn Demuestra el uso de convolución1D para la clasificación de texto.
imdb_cnn_lstm Entrena una pila convolucional seguida de una pink de pila recurrente en la tarea de clasificación de sentimientos IMDB.
imdb_fastText Entrena un modelo FastText en la tarea de clasificación de sentimientos IMDB.
imdb_lstm Entrena un LSTM en la tarea de clasificación de sentimientos IMDB.
LSTM_TEXT_Generación Genera texto de los escritos de Nietzsche.
mnist_acgan Implementación de AC-Gan (GaN del clasificador auxiliar) en el conjunto de datos MNIST
mnist_antirectificador Demuestra cómo escribir capas personalizadas para keras
mnist_cnn Entrena una easy convnet en el conjunto de datos MNIST.
mnist_irnn Reproducción del experimento IRNN con Mnist secuencial de píxel por píxel en “una forma easy de inicializar redes recurrentes de unidades lineales rectificadas” de Le et al.
mnist_mlp Entrena un perceptrón de múltiples capas profundo easy en el conjunto de datos MNIST.
mnist_hierchical_rnn Entrena un RNN jerárquico (HRNN) para clasificar los dígitos MNIST.
mnist_transfer_cnn Transferir el ejemplo de juguete de aprendizaje.
neural_style_transfer Transferencia de estilo neural (generando una imagen con el mismo “contenido” como imagen base, pero con el “estilo” de una imagen diferente).
reuters_mlp Entrena y evalúa un MLP easy en la tarea de clasificación de temas de Reuters Newswire.
estado_lstm Demuestra cómo usar RNN de estado para modelar secuencias largas de manera eficiente.
variacional_autoCoder Demuestra cómo construir un autoencoder variacional.
variacional_autoCoder_Deconv Demuestra cómo construir un autoencoder variacional con keras utilizando capas de deconvolución.

Aprendiendo más

Después de que se haya familiarizado con los conceptos básicos, estos artículos son un buen siguiente paso:

  • Guía del modelo secuencial. El modelo secuencial es una pila lineal de capas y es la API con la API con la que la mayoría de los usuarios deberían comenzar.

  • Guía de la API funcional. La API funcional de Keras es el camino a seguir para definir modelos complejos, como modelos de salida múltiple, gráficos acíclicos dirigidos o modelos con capas compartidas.

  • Visualización de entrenamiento. Hay una amplia variedad de herramientas disponibles para visualizar la capacitación. Estos incluyen trazado de métricas de entrenamiento, visualización en tiempo actual de métricas dentro del IDE RSTUDIO e integración con la herramienta de visualización de TensorBoard incluida con TensorFlow.

  • Uso de modelos previamente capacitados. Keras incluye una serie de modelos de aprendizaje profundo (Xception, VGG16, VGG19, ResNet50, InceptionV3 y MobileNet) que están disponibles junto con los pesos previamente capacitados. Estos modelos se pueden usar para predicción, extracción de características y ajuste fino.

  • Preguntas frecuentes. Cubre muchos temas adicionales que incluyen datos de entrenamiento de transmisión, modelos de ahorro, capacitación en GPU y más.

Keras proporciona un marco productivo y altamente versatile para desarrollar modelos de aprendizaje profundo. ¡No podemos esperar a ver qué hará la comunidad R con estas herramientas!



Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles