- patternnet(10) indicates ONE HIDDEN LAYER WITH TEN NODES
- It is important to be mindful of the number of layers and nodes.
- The set of input nodes IS NOT CONSIDERED A LAYER ( Probably because no mathematical operations are performed there)
- Three sets of nodes (INPUT/HIDDEN/OUTPUT) is sufficient. Let
How do we decide the number of hiddenlayers in a PatternNet?
3 views (last 30 days)
Well, since I'm working on PatternNets (Classification), my doubt is, how do we decide then number of hiddenlayers the network requires.
Before that, I have 8 predictors and 1 output response containing 4 classes.
I know that in order to define a hidden layer, we use :
MyNet = patternnet(10);
But how do I decide I need 10 and not 8 or any other number?
Any suggestion would be helpful. Thank you.
Greg Heath on 7 Aug 2019
Edited: Greg Heath on 7 Aug 2019
size(inputmatrix) = [ I N ]
size(targetmatrix) = [ O N ]
Then with a single middle "HIDDEN" layer of size H,
The size of the typical two layer net is
size(net) = I - H - O
a. I input nodes
b. H hidden layer nodes
c. O output layer nodes
4. The total number of weights is
Nw = ( I + 1 ) * H + ( H + 1 ) * O
= O + ( I + O + 1 ) * H
where the "1s" represent constant bias connections
5. The data is typically divided into a training subset of size Ntrn ~ 0.7*N, a validation subset of size Nval ~ 0.15*N and a test subset of size Ntst ~ 0.15*N.
6. For good approximate solutions, the number of training equations Ntrneq = Ntrn*O should be sufficiently larger than the number of unknown weights Nw
7. The inequality Nw << Ntrneq results in
H << ( 0.7 * N * O - O )/(I+O+1)
8. A factor of 10 is usually sufficient
Hope this helps.