20200615 1619
2차함수를 Neural Net이 잘 맞추는지 보자
library(neuralnet)
(0,1) 사이에 난수를 말들고
set.seed(1) x<-runif(100) c<-3*x^0 b<-5*x a<-x^2 y<-a+b+c trd<-data.frame(a,b,c,y) |
frm<-as.formula('y~a+b+c') nn<-neuralnet(frm,data=trd,hidden=3,threshold=0.01) plot(nn) |
(0.2)구간에 적용해보면
q<-(1:100)/100*2 tmp<-c(q^2,5*q,3) tmp<-t(tmp) tmp<-data.frame(q^2,5*q,3) ans<-compute(nn,tmp)$net.result #neurons f<-function(x){x^2+5*x+3} plot(q,ans,col='blue',type='line') par(new=T) #plot(q,f(q),col="red",type="l") curve(f,add=T,col='red') |
(0,1) 구간은 실제값과 추정치가 잘 맞는데, 1이상 구간에서는 엉망이다.
⇒ 역시 extrapolation은 어렵다.