Las redes neuronales, también conocidas como redes neuronales, son un tipo de algoritmo en el aprendizaje automático y la inteligencia artificial que funciona de la misma manera que opera el cerebro humano. Las neuronas artificiales de la red neuronal representan el mismo comportamiento de las neuronas del cerebro humano. Las redes neuronales se utilizan en el análisis de riesgos de los negocios, la previsión de ventas y muchos más. Las redes neuronales son adaptables a entradas cambiantes, por lo que no es necesario volver a diseñar el algoritmo en función de las entradas. En este artículo, analizaremos la red neuronal de una sola capa con su sintaxis y la implementación de la función neuralnet()
en la programación R. La siguiente función requiere neuralnet
paquete.
Tipos de redes neuronales
Las redes neuronales se pueden clasificar en varios tipos según sus filtros de activación de profundidad, estructura, neuronas utilizadas, densidad de neuronas, flujo de datos, etc. Los tipos de Redes Neuronales son los siguientes:
- perceptrón
- Redes neuronales de avance
- Redes neuronales convolucionales
- Redes neuronales de función de base radial
- Redes neuronales recurrentes
- Modelo de secuencia a secuencia
- Red neuronal modular
Dependiendo del número de capas, hay dos tipos de redes neuronales:
- Red neuronal de una sola capa : una red neuronal de una sola capa contiene una capa de entrada y una de salida. La capa de entrada recibe las señales de entrada y la capa de salida genera las señales de salida en consecuencia.
- Red neuronal multicapa: la red neuronal multicapa contiene entrada, salida y una o más de una capa oculta. Las capas ocultas realizan cálculos intermedios antes de dirigir la entrada a la capa de salida.
Red neuronal de una sola capa
Una red neuronal de una sola capa, a menudo llamada perceptrones, es un tipo de red neuronal de avance compuesta por capas de entrada y salida. Las entradas proporcionadas son multidimensionales. Los perceptrones son de naturaleza acíclica. En cada Node se calcula la suma del producto de los pesos y las entradas. La capa de entrada transmite las señales a la capa de salida. La capa de salida realiza cálculos. Perceptron puede aprender solo una función lineal y requiere menos entrenamiento. La salida se puede representar en uno o dos valores (0 o 1).
Implementación en R
El lenguaje R proporciona una neuralnet()
función que está disponible en neuralnet
el paquete para realizar una red neuronal de una sola capa.
Sintaxis:
neuralnet(fórmula, datos, oculto)Parámetros:
fórmula: representa la fórmula en la que se debe ajustar el modelo
datos: representa el marco de datos
oculto: representa el número de neuronas en capas ocultasPara conocer más parámetros opcionales de la función, use el siguiente comando en la consola: ayuda («neuralnet»)
Ejemplo 1:
en este ejemplo, vamos a crear la red neuronal de una sola capa o perceptrón de especies de plantas de iris de setosa y versicolor en función de la longitud y el ancho del sépalo.
Paso 1: Instale el paquete requerido
# Install the required package install.packages("neuralnet")
Paso 2: Cargue el paquete
# Load the package library(neuralnet)
Paso 3: Cargue el conjunto de datos
# Load dataset df <- iris[1:100, ]
Paso 4: Ajuste de la red neuronal
nn = neuralnet(Species ~ Sepal.Length + Sepal.Width, data = df, hidden = 0, linear.output = TRUE)
Paso 5: trazar la red neuronal
# Output to be present as PNG file png(file = "neuralNetworkGFG.png") # Plot plot(nn) # Saving the file dev.off()
Producción:
Ejemplo 2:
en este ejemplo, vamos a crear una red neuronal más confiable utilizando una red neuronal multicapa y hacer predicciones basadas en el conjunto de datos.
Paso 1: Instale el paquete requerido
# Install the required package install.packages("neuralnet")
Paso 2: Cargue el paquete
# Load the package library(neuralnet)
Paso 3: Cargue el conjunto de datos
# Load dataset df <- mtcars
Paso 4: Ajuste de la red neuronal
nn <- neuralnet(am ~ vs + cyl + disp + hp + gear + carb + wt + drat, data = df, hidden = 3, linear.output = TRUE)
Paso 5: trazar la red neuronal
# Output to be present as PNG file png(file = "neuralNetwork2GFG.png") # Plot plot(nn) # Saving the file dev.off()
Paso 6: crear un conjunto de datos de prueba
# Create test dataset vs = c(0, 1, 1) cyl =c(6, 8, 8) disp = c(170, 250, 350) hp = c(120, 240, 300) gear = c(4, 5, 4) carb = c(4, 3, 3) wt = c(2.780, 3.210, 3.425) drat = c(3.05, 4.02, 3.95) test <- data.frame(vs, cyl, disp, hp, gear, carb, wt, drat)
Paso 7: Haga una predicción del conjunto de datos de prueba
Predict <- compute(nn, test) cat("Predicted values:\n") print(Predict$net.result)
Paso 8: Convierta la predicción en valores binarios
probability <- Predict$net.result pred <- ifelse(probability > 0.5, 1, 0) cat("Result in binary values:\n") print(pred)
Producción:
Predicted values: [,1] [1,] 0.3681382 [2,] 0.9909768 [3,] 0.9909768 Result in binary values: [,1] [1,] 0 [2,] 1 [3,] 1
Explicación:
En el resultado anterior, el valor «am» para cada fila del conjunto de datos de prueba se predice utilizando una red neuronal multicapa. Al igual que en la red neuronal creada por la función, los valores pronosticados superiores a 0,49 hacen que el valor «am» del automóvil sea 1.
Ventajas de la red neuronal de una sola capa
- Las redes neuronales de una sola capa son fáciles de configurar y entrenar, ya que no hay capas ocultas.
- Tiene enlaces explícitos a modelos estadísticos.
Desventajas de la red neuronal de una sola capa
- Puede funcionar mejor solo para datos linealmente separables.
- La red neuronal de una sola capa tiene poca precisión en comparación con la red neuronal de varias capas.
Publicación traducida automáticamente
Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA