MATLAB Answers

What is the best way to take advantage of hints or preexisting knowledge between classes and features when training a patternnet?

1 view (last 30 days)
Mikael Andblom
Mikael Andblom on 7 Mar 2018
Answered: Greg Heath on 7 Mar 2018
Say I have 4 features (x1,x2,x3,x4) and 3 classes (n1,n2,n3) and I know the following:
n1 only depends on x1,x2 and x3,
n2 only depends on x2,x3 and x4,
n3 only depends on x1 and x2.
What is the best way to use this information when training a patternnet?
After training, the network will estimate the class probabilities [p1 p2 p3] given a sample [x1 x2 x3 x4]. In this example I want the value of p3 to be independent of x3 and x4. What is the best way of achieving this?
I would prefer if the solution scales well to larger problems.
Some of my ideas:
  • Separate network for each class with only the relevant features in each net. I'm not sure how you optimize multiple networks.
  • Configure a custom network with manual connections by using net.inputConnect etc. This seems rather complicated for me and I'm not sure this is the right way to take.
  • Set initial values of corresponding weights to 0 to remove dependency of irrelevant features. This gets ignored once training begins. Is it possible to force some weight to 0?

Answers (1)

Greg Heath
Greg Heath on 7 Mar 2018
Too much overthinking.
Just train as usual, the net will be smart enough to do the sorting.
When I say train as usual I mean either
1. Use my double-loop approach with patternnet and targets from eye(3) which is illustrated in hundreds of my posts in both the NEWSGROUP and ANSWERS:
greg patternnet
2. Use my double loop approach with NEWRB. With this method you may gain quite a bit of insight by looking at the color coded 2-dimensional projections.
Hope this helps
Thank you for formally accepting my answer

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!