我正在尝试使用一些简单的输入数据在Excel中对nnet包进行逆向工程。这是我采取的步骤
导入虚拟数据:test <- read.csv('dataScaled.csv',header=TRUE,sep = ",")
训练网络:
anntrain <- nnet(Price ~ Sqft + Bedrooms + Bathrooms,test[1:650,],size=2, maxit=5000,linout=TRUE)
抓住人工神经网络的权重:
anntrain$wts
这输出:
[1] -2.12443010 6.68900321 0.85338018 -0.73329823 -3.95336239 7.91917321 [7] -5.38893137 4.05941771 -0.02062346 0.26584364 0.32881035
抓取经过训练的网络的拟合值:
anntrain$fitted.values
这输出了我认为对于我在上面训练过的650笔交易中的每笔交易中经过训练的网络的按比例缩放的价格预测。
使用sigmoid函数重新计算上述权重,证明拟合值。
我的困惑是它输出了11个权重值。如果我只有3个输入,2个隐藏节点和1个输出,那不应该只相当于8个权重吗?什么是3个额外的重量?
答案 0 :(得分:1)
每一层都有偏见(Why use a bias/threshold?)。偏差就像一个总是给你输入1的节点。因此你有(3 + 1)* 2 +(2 + 1)* 1 = 11个权重。