MATLAB Answers

0

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

Asked by Mikael Andblom on 7 Mar 2018
Latest activity Answered by 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?

  0 Comments

Sign in to comment.

1 Answer

Answer by 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
OR
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
Greg

  0 Comments

Sign in to comment.