Simulating Neural network to build a model for basic Sinosudal function

Loading Neural Network library

library(neuralnet)

Generating test data & Assigining names to test data

train<-as.data.frame(cbind((sample(1:600, 300, replace=FALSE))))
train<-cbind(train,pi/train$V1)
colnames(train) <- c("Input","Output")
train

Simulating neural network with a single hidden layer and ten neurons.

n.net <- neuralnet( formula = Output~Input, data = train, hidden=c(10), threshold=0.0001,lifesign = "full",lifesign.step = 1000)
hidden: 10    thresh: 0.0001    rep: 1/1    steps:    1000  min thresh: 0.003012459516
                                                      2000  min thresh: 0.001127379782
                                                      3000  min thresh: 0.0004023896783
                                                      4000  min thresh: 0.0004023896783
                                                      5000  min thresh: 0.0004023896783
                                                      6000  min thresh: 0.0004023896783
                                                      7000  min thresh: 0.0004023896783
                                                      8000  min thresh: 0.000186737906
                                                      8608  error: 0.00008  time: 2.55 secs
#print(n.net)

Let’ see what our network looks like

plot(n.net)

Generating Test data to validate out network

test<-as.data.frame(setdiff(1:60,train$Input))#as.data.frame(c(31:60))
names(test)<-"Input"
test

Now running test data on the generated model

result<-compute(n.net,test)
result$net.result
               [,1]
 [1,] 0.79256867601
 [2,] 0.52393927586
 [3,] 0.26404453350
 [4,] 0.22776063038
 [5,] 0.21272152542
 [6,] 0.18710782998
 [7,] 0.17614411018
 [8,] 0.15727134043
 [9,] 0.14186415219
[10,] 0.13526470155
[11,] 0.12392301739
[12,] 0.11905084781
[13,] 0.11060730070
[14,] 0.10355302790
[15,] 0.09753993527
[16,] 0.09483592317
[17,] 0.08544573495
[18,] 0.08136613685
[19,] 0.07578268698
[20,] 0.07072133073
[21,] 0.06760261519
[22,] 0.06328296308
[23,] 0.06193547841
[24,] 0.06063303070
[25,] 0.05816034718
[26,] 0.05372056030

Combining results

test<-cbind(test,result$net.result,(pi/test$Input))
colnames(test)<-c("Input","Neural Output","Computed Output")
test

Lets round the numbers and have a look at them.

round(test,2)

SO we have successfully simulated a neural network for a formula f(x) = PI/x. Our accuracy is 99.9919%

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpTaW11bGF0aW5nIE5ldXJhbCBuZXR3b3JrIHRvIGJ1aWxkIGEgbW9kZWwgZm9yIGJhc2ljIFNpbm9zdWRhbCBmdW5jdGlvbg0KDQpMb2FkaW5nIE5ldXJhbCBOZXR3b3JrIGxpYnJhcnkNCmBgYHtyfQ0KbGlicmFyeShuZXVyYWxuZXQpDQpgYGANCg0KR2VuZXJhdGluZyB0ZXN0IGRhdGEgJiBBc3NpZ2luaW5nIG5hbWVzIHRvIHRlc3QgZGF0YQ0KDQpgYGB7cn0NCnRyYWluPC1hcy5kYXRhLmZyYW1lKGNiaW5kKChzYW1wbGUoMTo2MDAsIDMwMCwgcmVwbGFjZT1GQUxTRSkpKSkNCnRyYWluPC1jYmluZCh0cmFpbixwaS90cmFpbiRWMSkNCmNvbG5hbWVzKHRyYWluKSA8LSBjKCJJbnB1dCIsIk91dHB1dCIpDQp0cmFpbg0KYGBgDQoNClNpbXVsYXRpbmcgbmV1cmFsIG5ldHdvcmsgd2l0aCBhIHNpbmdsZSBoaWRkZW4gbGF5ZXIgYW5kIHRlbiBuZXVyb25zLg0KDQoNCmBgYHtyfQ0Kbi5uZXQgPC0gbmV1cmFsbmV0KCBmb3JtdWxhID0gT3V0cHV0fklucHV0LCBkYXRhID0gdHJhaW4sIGhpZGRlbj1jKDEwKSwgdGhyZXNob2xkPTAuMDAwMSxsaWZlc2lnbiA9ICJmdWxsIixsaWZlc2lnbi5zdGVwID0gMTAwMCkNCiNwcmludChuLm5ldCkNCmBgYA0KDQoNCkxldCcgc2VlIHdoYXQgb3VyIG5ldHdvcmsgbG9va3MgbGlrZQ0KYGBge3J9DQpwbG90KG4ubmV0KQ0KYGBgDQpHZW5lcmF0aW5nIFRlc3QgZGF0YSB0byB2YWxpZGF0ZSBvdXQgbmV0d29yaw0KDQoNCmBgYHtyfQ0KdGVzdDwtYXMuZGF0YS5mcmFtZShzZXRkaWZmKDE6NjAsdHJhaW4kSW5wdXQpKSNhcy5kYXRhLmZyYW1lKGMoMzE6NjApKQ0KbmFtZXModGVzdCk8LSJJbnB1dCINCnRlc3QNCmBgYA0KDQpOb3cgcnVubmluZyB0ZXN0IGRhdGEgb24gdGhlIGdlbmVyYXRlZCBtb2RlbA0KDQpgYGB7cn0NCnJlc3VsdDwtY29tcHV0ZShuLm5ldCx0ZXN0KQ0KcmVzdWx0JG5ldC5yZXN1bHQNCmBgYA0KDQpDb21iaW5pbmcgcmVzdWx0cw0KDQpgYGB7cn0NCnRlc3Q8LWNiaW5kKHRlc3QscmVzdWx0JG5ldC5yZXN1bHQsKHBpL3Rlc3QkSW5wdXQpKQ0KY29sbmFtZXModGVzdCk8LWMoIklucHV0IiwiTmV1cmFsIE91dHB1dCIsIkNvbXB1dGVkIE91dHB1dCIpDQpgYGANCg0KDQpgYGB7cn0NCnRlc3QNCmBgYA0KDQpMZXRzIHJvdW5kIHRoZSBudW1iZXJzIGFuZCBoYXZlIGEgbG9vayBhdCB0aGVtLg0KDQpgYGB7cn0NCnJvdW5kKHRlc3QsMikNCmBgYA0KDQo8Yj4NClNPIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IHNpbXVsYXRlZCBhIG5ldXJhbCBuZXR3b3JrIGZvciBhIGZvcm11bGEgZih4KSA9IFBJL3guIA0KT3VyIGFjY3VyYWN5IGlzIDk5Ljk5MTklDQoNCjwvYj4=