Redes neuronales de una sola capa en programación R

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 neuralnetpaquete.

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:

  1. perceptrón
  2. Redes neuronales de avance
  3. Redes neuronales convolucionales
  4. Redes neuronales de función de base radial
  5. Redes neuronales recurrentes
  6. Modelo de secuencia a secuencia
  7. Red neuronal modular

Dependiendo del número de capas, hay dos tipos de redes neuronales:

  1. 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.
  2. 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 neuralnetel 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 ocultas

Para 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:
output graph

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:
output graph

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *