How do you practically assess the contribution of a "specific" input to the NS? - page 2

 
nikelodeon:

What's the surprise?


Well, first of all, I immediately discovered one lingering mistake.)

Secondly, I thought that by removing the inputs, I would lower the informativeness of the inputs so that the effectiveness of the NS as a whole would be reduced. Some inputs will deteriorate a lot, some a little. And maybe I will find such inputs, which don't affect anything at all, and I will remove them to simplify the net. Of course, I found "empty" inputs, I found inputs without which the NS is incompetent, but I also found inputs, by removing which I increase the result of the NS as a whole. This is a surprise to me, either the training is bad, or the inputs are too contradictory and simply harmful.

All in all, food for thought for a few days.

 
Figar0:


Well first of all I immediately discovered one long-standing error)

Secondly, I thought that by removing the inputs, I would lower the informativeness of the inputs so that the effectiveness of the NS as a whole would be reduced. Some inputs will deteriorate a lot, some a little. And maybe I will find such inputs, which don't affect anything at all, and I will remove them to simplify the net. Of course, I found "empty" inputs, I found inputs without which the NS is incompetent, but I also found inputs, by removing which I increase the result of the NS as a whole. This is a surprise to me, either the training is bad, or the inputs are too contradictory and simply harmful.

So I got food for thought for several days.


it may turn out that in the next training (on a different sample) they will be needed...
 
Figar0:

Not quite Friday, but ...

There is an NS, any NS, there is an input A={A1, A2, .... A20}. Train the NS and get a satisfying result. How do we practically evaluate the contribution of each element of input A1, A2, ... A20 to this result?

The options off the top of my head are:

1) Somehow sum up and calculate all weights with which the element passes through the network. I'm not quite clear how to do it, I would have to immerse myself in the network operation and calculate somehow some coefficients, etc.

2) Try to "zero out" somehow, or e.g. reverse an element of input vector and see how it affects the final result. So far I've settled on it.

But before realizing this second variant I decided to ask my advice. Who may have been thinking on this subject longer than me? Maybe someone can advise a book-article?

One common and effective method is to analyse the NS weights after training. The weights are initialized so that their values are not significantly different from zero, for example, mean 0, standard deviation 0.1. After training, the weights relating to insignificant inputs will be modulo close to zero, and the weights relating to significant inputs will be very different from zero. Tested - it works on synthetic data.
 
LeoV:

The degree of influence of each input is practically impossible to assess . There are all sorts of mathematical formulas, and specialised software can automatically calculate the degree of influence. But all these calculations are just an approximate value, which does not really say much, because it may have a large margin of error.


Yes, I am generally aware of this, it would be more logical to analyze inputs in the same Statistic, but it is associated with large labor costs of transferring there in principle a working system. I also understand all the ambiguity of interpreting such experiments. But there is a benefit and that's for sure.

 
Vizard:

It may turn out that in the next training (on a different sample) they will be needed...
This is probably the case, but there is a NS, it is trained, it works, so it can do without the discarded inputs and it makes sense to discard them to simplify the network, improve its ability to generalise and improve the quality of learning with less effort.
 
Figar0:
I suppose so, but there is a NS, it is trained, it works, so it can do without the discarded inputs and it makes sense to discard them to simplify the network, improve its generalisability and improve the quality of learning at a lower cost.
+100500. I agree. What's the point of redundant inputs if network performance doesn't degrade without them? We need to get rid of them, for sure.
 
alexeymosc:
One common and effective method is to analyse the NS weights after training. The weights are initialized so that their values are not significantly different from zero, for example, mean 0, standard deviation 0.1. After training, the weights relating to insignificant inputs will be modulo close to zero, and the weights relating to significant inputs will be very different from zero. Tested - it works on synthetic data.


Well this is basically the first thing that came to my mind, but I could not think how to implement such analysis in my system in an easier way. That is why I went by the reverse method.

 
Note what Leonid wrote, and he's damn right. Finding the influence of the inputs on the network output is an impossible task. Yes, it is possible to sift out unnecessary ones, I agree, but it is practically impossible to determine the influence of this or that input on the output.

Now imagine the situation. You have found 2 inputs that do not let the net output drain. You add a third input that greatly improves network operation. What do you conclude? That this input has a high impact on net output. In fact, the third entrance will produce some short term perturbation only once or twice during the entire trading period. But it is this disturbance which will be decisive. Although the fact of disturbance itself will be insignificant. As well as removing one of the first two entries will not give you a satisfactory result. The other is to direct the work in the following direction.

When you train a network, you search for local minima of the function. To be more exact, we search for the global minimum of an error but move from the local minimum to the global one.

I often encounter a situation when a local minimum of a function shows ideal results in the future.

The task is simple: to select such inputs to the network (we will not have to change them later) that would allow the network to have local minima during training, which will earn them in the future.

Say, during training you have on average about 10-20 local minima, and at least one of them is correct. But it is better to choose as many profitable local minimums as possible......

How do you like this problem????? This is more like reality....
 
nikelodeon:
Note what Leonid wrote, and he's damn right. Finding the influence of the inputs on the network output is an impossible task. Yes, it is possible to sift out unnecessary ones, I agree, but it is practically impossible to determine the influence of this or that input on the output.

Now imagine the situation. You have found 2 inputs that do not let the net output drain. You add a third input that significantly improves network operation. What do you conclude? That this input has a high impact on net output. In fact, the third entrance will produce some short term perturbation only once or twice during the entire trading period. But it is this disturbance which will be decisive. Although the fact of disturbance itself will be insignificant. The same as if you remove one of the first two entries, you will not obtain a satisfactory result. The other thing is to direct the work in this direction.

This is also true. There is also the reverse situation: theoretically, it is possible that there are two inputs with high informativity and one with low informativity. Logically, you would like to remove the third, but if you do, a complex quadro-interrelation (three inputs - output) will be destroyed, and the two remaining inputs will not be so informative any more. And to reveal these complex interrelations it is necessary to apply such space mathematic apparatus, and technically it is issued, that wow-oho (well, at least for me). Everything is complicated, do not think that it is easy. NS is on 80% empirical search.
 
nikelodeon:

Now imagine the situation. You have found 2 inputs that do not allow the network to go forward. You add a third input that helps you a lot. What conclusion do you draw? That this input has a high impact on net output. In fact, the third entrance will produce some short term perturbation only once or twice during the entire trading period. But it is this disturbance which will be decisive. Although the fact of disturbance itself will be insignificant. The same as if you remove one of the first two entries, you will not obtain a satisfactory result. The other thing is to direct the work in this direction.

It is clear that the inputs are interconnected and the interpretation of the results of such experiments is the most important aspect. I exclude entries not only one by one, but also different combinations of them from 1 to 5 (I think I will extend this range to half of all entries), analogous to your addition of one more entry and I look at changes in response of NS, both at training and forward stages.

nikelodeon:

When you train a network, you search for local minima of the function. To be more exact, we search for the global minimum of an error but move from the local minimum to the global one.

Not seldom or even often I meet such cases when a local minimum of a function shows ideal results in the future.

The task is simple: to find such inputs to the network (we will not have to change them later) that would allow the network during training to have local minima that will earn future results.

Say, during training you have on average about 10-20 local minima, and at least one of them is correct. But it is better to choose as many profitable local minimums as possible......

How do you like this problem????? This is more like reality....

Realities are different for everyone) In particular I'm not looking for minimum error, I'm looking for maximum profit, minimum drawdown, satisfying PF, etc. In other words I have local maxima, but it does not change their essence. My problem is solved thinly or poorly, but for a long time ...