|
网上有很多解释,但都是基于三层网络而言,这些解释看matlab帮助就能知道,但对多层网络并没什么说明,现在说一下多层下的权重矩阵和偏置。
先假设神经网络结构,{ 9 [80 50 20] 1 };9为输入层,[80 50 20]为隐层,1为输出层。
- net.iw{1,1} 表示 输入层 到 第1层隐层 的权重,为80*9的矩阵;
- net.lw{2,1} 表示 第1层隐层 到 第2层隐层 的权重,为50*80的矩阵;
- net.lw{3,2} 表示 第2层隐层 到 第3层隐层 的权重,为20*50的矩阵;
- net.lw{4,3} 表示 第3层隐层 到 输出层 的权重,为1*20的矩阵;
- net.b{1} 表示 第1层隐层 的偏置,为80*1的矩阵;
- net.b{2} 表示 第2层隐层 的偏置,为50*1的矩阵;
- net.b{3} 表示 第3层隐层 的偏置,为20*1的矩阵;
- net.b{4} 表示 输出层 的偏置,为1*1的矩阵;
可以以此类推。
所以net.iw{1,1},模式也是固定的,仅表示输入层到第1层隐层的权重,之后就net.lw的事情了。net.lw{i,j} 表示 第j层隐层 到 第i层隐层 的权重。net.b{k} 表示 第k层隐层 的偏置或者说阈值,结构都为列向量。可以看出,这里假设的隐含层只有3层[80 50 20],但net中将最后一层输出层也当隐含层用了,所以 i 和 k 可以取到4。
知道权重和偏置的位置,可以用算法优化,如遗传算法等。 |
|