Incluimos librería Neuralnet

library(neuralnet)
## Warning: package 'neuralnet' was built under R version 4.1.3

Creación de una tabla de verdad

datos_ent = data.frame(A=c(1,1,0,0),
                       B=c(1,0,1,0),
                       C=c(1,0,0,1),
                       D=c(1,0,0,0))
datos_ent
##   A B C D
## 1 1 1 1 1
## 2 1 0 0 0
## 3 0 1 0 0
## 4 0 0 1 0

Creación de red neuronal

red= neuralnet("D ~ A + B", hidden =c(3,7,4), #Formula y capa
               linear.output = FALSE,
               act.fct = "logistic",
               data = datos_ent)

Imprime la red

red
## $call
## neuralnet(formula = "D ~ A + B", data = datos_ent, hidden = c(3, 
##     7, 4), act.fct = "logistic", linear.output = FALSE)
## 
## $response
##   D
## 1 1
## 2 0
## 3 0
## 4 0
## 
## $covariate
##      A B
## [1,] 1 1
## [2,] 1 0
## [3,] 0 1
## [4,] 0 0
## 
## $model.list
## $model.list$response
## [1] "D"
## 
## $model.list$variables
## [1] "A" "B"
## 
## 
## $err.fct
## function (x, y) 
## {
##     1/2 * (y - x)^2
## }
## <bytecode: 0x0000000016fab658>
## <environment: 0x0000000016faf4d8>
## attr(,"type")
## [1] "sse"
## 
## $act.fct
## function (x) 
## {
##     1/(1 + exp(-x))
## }
## <bytecode: 0x0000000016fa2ef8>
## <environment: 0x0000000016fa6e68>
## attr(,"type")
## [1] "logistic"
## 
## $linear.output
## [1] FALSE
## 
## $data
##   A B C D
## 1 1 1 1 1
## 2 1 0 0 0
## 3 0 1 0 0
## 4 0 0 1 0
## 
## $exclude
## NULL
## 
## $net.result
## $net.result[[1]]
##           [,1]
## [1,] 0.2482570
## [2,] 0.2454342
## [3,] 0.2424888
## [4,] 0.2405331
## 
## 
## $weights
## $weights[[1]]
## $weights[[1]][[1]]
##            [,1]       [,2]       [,3]
## [1,]  0.9025467 -0.1384705  1.1065397
## [2,] -0.1905608  0.2770477 -1.0113608
## [3,] -1.4047601 -0.6787606 -0.3156448
## 
## $weights[[1]][[2]]
##            [,1]       [,2]       [,3]        [,4]       [,5]       [,6]
## [1,] -1.3752681  0.1611397 2.09087121 -0.52139267  0.5436893  0.1451094
## [2,] -0.1784518 -0.1373858 0.65372065  1.17972615 -0.8023764 -0.3512292
## [3,] -0.4644502  0.3984428 0.90465927 -0.09958007  0.3996120 -0.8033703
## [4,] -1.1108137 -0.8404191 0.07378954  0.16151381  0.5753621 -1.4248372
##            [,7]
## [1,]  0.3199558
## [2,]  0.9742301
## [3,]  0.5623168
## [4,] -0.5443461
## 
## $weights[[1]][[3]]
##             [,1]        [,2]        [,3]        [,4]
## [1,] -0.06615767  0.26552974 -1.61791112 -1.08072282
## [2,]  0.09581863 -0.55430642 -2.15053832 -0.07861831
## [3,] -0.56002238 -1.22317940  0.33239882  0.66311405
## [4,] -0.04964656 -0.29411767 -0.60550452  0.78650488
## [5,] -0.15514925  0.46394858 -0.97307306  0.23207375
## [6,] -0.37125495 -0.37576358  0.49634711 -0.83740618
## [7,] -0.45056750 -0.04765021 -0.97362252 -0.88656325
## [8,] -0.50686222  0.19758676 -0.03589452 -1.94627060
## 
## $weights[[1]][[4]]
##             [,1]
## [1,] -0.54149665
## [2,] -0.73240002
## [3,] -0.79999026
## [4,] -1.50494647
## [5,] -0.03688221
## 
## 
## 
## $generalized.weights
## $generalized.weights[[1]]
##            [,1]        [,2]
## [1,] 0.03296498 0.015185466
## [2,] 0.03037016 0.013999165
## [3,] 0.02699707 0.011587675
## [4,] 0.02156858 0.008915916
## 
## 
## $startweights
## $startweights[[1]]
## $startweights[[1]][[1]]
##             [,1]        [,2]       [,3]
## [1,]  1.00254672 -0.03847054  1.2065397
## [2,] -0.09056081  0.37704770 -0.9113608
## [3,] -1.30476008 -0.57876056 -0.2156448
## 
## $startweights[[1]][[2]]
##            [,1]        [,2]        [,3]        [,4]       [,5]        [,6]
## [1,] -1.4752681  0.06113967  1.99087121 -0.62139267  0.4436893  0.04510943
## [2,] -0.2784518 -0.23738582  0.55372065  1.07972615 -0.9023764 -0.45122921
## [3,] -0.5644502  0.29844276  0.80465927 -0.19958007  0.2996120 -0.90337029
## [4,] -1.2108137 -0.94041906 -0.02621046  0.06151381  0.4753621 -1.52483725
##            [,7]
## [1,]  0.2199558
## [2,]  0.8742301
## [3,]  0.4623168
## [4,] -0.6443461
## 
## $startweights[[1]][[3]]
##             [,1]        [,2]        [,3]        [,4]
## [1,]  0.03384233  0.36552974 -1.51791112 -0.98072282
## [2,]  0.19581863 -0.45430642 -2.05053832  0.02138169
## [3,] -0.46002238 -1.12317940  0.43239882  0.76311405
## [4,]  0.05035344 -0.19411767 -0.50550452  0.88650488
## [5,] -0.05514925  0.56394858 -0.87307306  0.33207375
## [6,] -0.27125495 -0.27576358  0.59634711 -0.73740618
## [7,] -0.35056750  0.05234979 -0.87362252 -0.78656325
## [8,] -0.40686222  0.29758676  0.06410548 -1.84627060
## 
## $startweights[[1]][[4]]
##            [,1]
## [1,] -0.6414967
## [2,] -0.8324000
## [3,] -0.8999903
## [4,] -1.6049465
## [5,] -0.1368822
## 
## 
## 
## $result.matrix
##                               [,1]
## error                  0.371006272
## reached.threshold      0.006358748
## steps                  2.000000000
## Intercept.to.1layhid1  0.902546718
## A.to.1layhid1         -0.190560812
## B.to.1layhid1         -1.404760077
## Intercept.to.1layhid2 -0.138470543
## A.to.1layhid2          0.277047697
## B.to.1layhid2         -0.678760563
## Intercept.to.1layhid3  1.106539690
## A.to.1layhid3         -1.011360778
## B.to.1layhid3         -0.315644829
## Intercept.to.2layhid1 -1.375268089
## 1layhid1.to.2layhid1  -0.178451846
## 1layhid2.to.2layhid1  -0.464450213
## 1layhid3.to.2layhid1  -1.110813731
## Intercept.to.2layhid2  0.161139667
## 1layhid1.to.2layhid2  -0.137385821
## 1layhid2.to.2layhid2   0.398442759
## 1layhid3.to.2layhid2  -0.840419060
## Intercept.to.2layhid3  2.090871209
## 1layhid1.to.2layhid3   0.653720653
## 1layhid2.to.2layhid3   0.904659269
## 1layhid3.to.2layhid3   0.073789538
## Intercept.to.2layhid4 -0.521392671
## 1layhid1.to.2layhid4   1.179726155
## 1layhid2.to.2layhid4  -0.099580069
## 1layhid3.to.2layhid4   0.161513807
## Intercept.to.2layhid5  0.543689284
## 1layhid1.to.2layhid5  -0.802376437
## 1layhid2.to.2layhid5   0.399611956
## 1layhid3.to.2layhid5   0.575362132
## Intercept.to.2layhid6  0.145109433
## 1layhid1.to.2layhid6  -0.351229205
## 1layhid2.to.2layhid6  -0.803370292
## 1layhid3.to.2layhid6  -1.424837250
## Intercept.to.2layhid7  0.319955790
## 1layhid1.to.2layhid7   0.974230062
## 1layhid2.to.2layhid7   0.562316793
## 1layhid3.to.2layhid7  -0.544346103
## Intercept.to.3layhid1 -0.066157667
## 2layhid1.to.3layhid1   0.095818629
## 2layhid2.to.3layhid1  -0.560022381
## 2layhid3.to.3layhid1  -0.049646558
## 2layhid4.to.3layhid1  -0.155149254
## 2layhid5.to.3layhid1  -0.371254948
## 2layhid6.to.3layhid1  -0.450567495
## 2layhid7.to.3layhid1  -0.506862224
## Intercept.to.3layhid2  0.265529738
## 2layhid1.to.3layhid2  -0.554306418
## 2layhid2.to.3layhid2  -1.223179398
## 2layhid3.to.3layhid2  -0.294117667
## 2layhid4.to.3layhid2   0.463948577
## 2layhid5.to.3layhid2  -0.375763585
## 2layhid6.to.3layhid2  -0.047650213
## 2layhid7.to.3layhid2   0.197586761
## Intercept.to.3layhid3 -1.617911121
## 2layhid1.to.3layhid3  -2.150538323
## 2layhid2.to.3layhid3   0.332398819
## 2layhid3.to.3layhid3  -0.605504516
## 2layhid4.to.3layhid3  -0.973073060
## 2layhid5.to.3layhid3   0.496347114
## 2layhid6.to.3layhid3  -0.973622518
## 2layhid7.to.3layhid3  -0.035894519
## Intercept.to.3layhid4 -1.080722816
## 2layhid1.to.3layhid4  -0.078618310
## 2layhid2.to.3layhid4   0.663114051
## 2layhid3.to.3layhid4   0.786504875
## 2layhid4.to.3layhid4   0.232073747
## 2layhid5.to.3layhid4  -0.837406181
## 2layhid6.to.3layhid4  -0.886563247
## 2layhid7.to.3layhid4  -1.946270601
## Intercept.to.D        -0.541496651
## 3layhid1.to.D         -0.732400024
## 3layhid2.to.D         -0.799990264
## 3layhid3.to.D         -1.504946466
## 3layhid4.to.D         -0.036882213
## 
## attr(,"class")
## [1] "nn"

Crea e imprime predicciones

predicciones = unlist(red$net.result)
predicciones
## [1] 0.2482570 0.2454342 0.2424888 0.2405331