El aprendizaje profundo es un tipo de inteligencia artificial o función de IA que intenta imitar o imitar el principio de funcionamiento de un cerebro humano para el procesamiento de datos y la creación de patrones con fines de toma de decisiones. Es un subconjunto de ML o aprendizaje automático en una IA que posee o tiene redes que son capaces de aprender sin supervisión a partir de datos que no están etiquetados ni estructurados. El aprendizaje profundo también se puede llamar aprendizaje neuronal profundo o red neuronal profunda. Deep Learning AI es capaz de aprender sin supervisión humana, a partir de cualquier tipo de datos. Al ser un subconjunto del aprendizaje automático, el aprendizaje profundo utiliza una red neuronal artificialde un nivel jerárquico para llevar a cabo los procedimientos o procesos de aprendizaje automático. Con la ayuda del aprendizaje profundo, podemos desentrañar una gran cantidad de datos que no están estructurados por naturaleza. Para los humanos, normalmente tomaría décadas entenderlo y procesarlo.
Implementación en R
R Language ha sido decorado con muchos paquetes de aprendizaje profundo en CRAN en el transcurso del tiempo. Algunos de estos paquetes son los siguientes:
Nombre del paquete R |
Descripción |
---|---|
neto |
Se utiliza para feed-forward NN que tiene una sola capa oculta o para un modelo log-lineal multinomial. |
red neuronal | Se utiliza en el entrenamiento de NN mediante retropropagación. |
h2o | Es una funcionalidad de R Scripting para H2O |
RSNN | Una interfaz para el Simulador NN de Stuttgart. |
tensorflow | Una interfaz para TensorFlow. |
red profunda | Es un conjunto de herramientas en R para el aprendizaje profundo. |
dardo |
Es un paquete para las Arquitecturas Profundas y Máquinas de Boltzmann restringidas. |
rnn | Un paquete para implementar Recurrent NN. |
FCNN4R | Interfaz para la biblioteca FCNN que permite ANN ampliables por el usuario. |
rcppdl | Se utiliza para implementar el aprendizaje automático. |
más profundo |
Basado en Darch y Deepnet, es un paquete para mejorar la agilización del proceso de entrenamiento y predicción y ajuste para el aprendizaje profundo. |
Recientemente , Keras, kerasR y keras también se utilizan con fines de aprendizaje profundo. Aquí usaremos el paquete deepnet para implementar el aprendizaje profundo. Procedamos con el procedimiento paso a paso de la implementación. Todo el proceso de implementación se puede dividir en los siguientes pasos:
Paso 1: Instalación y carga de los paquetes
Antes de continuar con las implementaciones, instale los paquetes necesarios. Para nuestra implementación, necesitaremos los paquetes deepnet y mlbench. Para instalar estos paquetes desde R Console, use el comando. En la instalación exitosa de estos paquetes, cárguelos en R Script usando el comando de la siguiente manera:
R
# Deep Learning in R # loading the required packages library(mlbench) library(deepnet)
Paso 2: elegir el conjunto de datos
Ahora la tarea es seleccionar un conjunto de datos adecuado para la implementación. Aquí vamos a trabajar con el conjunto de datos de cáncer de mama en el paquete mlbench. Incluya el conjunto de datos en el R Script de la siguiente manera:
R
# Deep learning in R # loading the required packages library(mlbench) library(deepnet) data("BreastCancer") # Clean off rows with missing data BreastCancer = BreastCancer[which(complete.cases(BreastCancer) == TRUE),] head(BreastCancer) names(BreastCancer)
Producción:
> head(BreastCancer) Id Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class 1 1000025 5 1 1 1 2 1 3 1 1 benign 2 1002945 5 4 4 5 7 10 3 2 1 benign 3 1015425 3 1 1 1 2 2 3 1 1 benign 4 1016277 6 8 8 1 3 4 3 7 1 benign 5 1017023 4 1 1 3 2 1 3 1 1 benign 6 1017122 8 10 10 8 7 10 9 7 1 malignant > names(BreastCancer) [1] "Id" "Cl.thickness" "Cell.size" "Cell.shape" "Marg.adhesion" "Epith.c.size" "Bare.nuclei" [8] "Bl.cromatin" "Normal.nucleoli" "Mitoses" "Class"
Paso 3: Aplicar el paquete deepnet al conjunto de datos
Aplique el paquete de aprendizaje profundo en el conjunto de datos elegido. Aquí, cree un conjunto de características para variables independientes y cree la variable dependiente.
R
# Deep learning in R # Loading the required packages library(mlbench) library(deepnet) data("BreastCancer") # Clean off rows with missing data BreastCancer = BreastCancer[which(complete.cases(BreastCancer) == TRUE),] head(BreastCancer) names(BreastCancer) y = as.matrix(BreastCancer[, 11]) y[which(y == "benign")] = 0 y[which(y == "malignant")] = 1 y = as.numeric(y) x = as.numeric(as.matrix(BreastCancer[, 2:10])) x = matrix(as.numeric(x), ncol = 9)
Paso 4: Modelado de NN
Aplique la función bajo el paquete deepnet para modelar la red neuronal.
R
# Deep learning in R # Loading packages in R library(mlbench) library(deepnet) data("BreastCancer") # Clean off rows with missing data BreastCancer = BreastCancer[which(complete.cases(BreastCancer) == TRUE),] head(BreastCancer) names(BreastCancer) y = as.matrix(BreastCancer[, 11]) y[which(y == "benign")] = 0 y[which(y == "malignant")] = 1 y = as.numeric(y) x = as.numeric(as.matrix(BreastCancer[, 2:10])) x = matrix(as.numeric(x), ncol = 9) # Applying nn.train() function nn <- nn.train(x, y, hidden = c(5)) yy = nn.predict(nn, x) print(head(yy))
Producción:
> print(head(yy)) [,1] [1,] 0.2743838 [2,] 0.4130857 [3,] 0.2892783 [4,] 0.4232022 [5,] 0.2817078 [6,] 0.4526502
Paso 5: Crear una array de confusión
Recupere la salida de la red neuronal y luego conviértala en clase. Para crear una array de confusión, utilice la función. También verifique la precisión de la array de confusión dividiendo la suma de los elementos diagonales con el recuento total o la suma de todos los números.
R
# Deep Learning in R # Loading required packages library(mlbench) library(deepnet) data("BreastCancer") # Clean off rows with missing data BreastCancer = BreastCancer[which(complete.cases(BreastCancer) == TRUE),] head(BreastCancer) names(BreastCancer) y = as.matrix(BreastCancer[, 11]) y[which(y == "benign")] = 0 y[which(y == "malignant")] = 1 y = as.numeric(y) x = as.numeric(as.matrix(BreastCancer[, 2:10])) x = matrix(as.numeric(x), ncol = 9) # Applying nn.train() method nn <- nn.train(x, y, hidden = c(5)) yy = nn.predict(nn, x) print(head(yy)) yhat = matrix(0,length(yy), 1) yhat[which(yy > mean(yy))] = 1 yhat[which(yy <= mean(yy))] = 0 # Applying table() function cm = table(y, yhat) print(cm) print(sum(diag(cm))/sum(cm))
Producción:
> print(cm) yhat y 0 1 0 425 19 1 4 235 > print(sum(diag(cm))/sum(cm)) [1] 0.966325