Timeline for Single loss value for gradient descent in neural network optimization
Current License: CC BY-SA 4.0
13 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Jun 14, 2018 at 13:12 | comment | added | alexeymosco | I've accepted your answer since in contained notes to help articulate the problem. I will try to work on back prop math before giving it up. I just feel the vector of loss can be turned into a scalar of the form sum(E(y) - y) ^ 2 without crushing (or severely degrading) a result. | |
Jun 14, 2018 at 13:09 | vote | accept | alexeymosco | ||
Jun 14, 2018 at 12:43 | comment | added | Pierre Gourseaud | It is an obstacle to gradient descent and this is what I've been trying to show. But it seem you answered your own question with genetic algorithms: you should be able to compute your NNs for each step, compute loss at the end of the epoch (making sure it's defined) and update weights based on GA. I'm not sure of the result though, it will probably overfit. | |
Jun 14, 2018 at 12:34 | comment | added | alexeymosco | "I don't think you can make such a constraint in the training phase". You did not get me just right. I can actually make my models do any stuff with any restrictions, provided their functioning results in a maximized metric that I define any way as well. Suppose there is a set of parameter values that make neural networks work together to create a perfect sum of returns (on a short history at least), and a random set of the parameter values I have started with. I need to somehow optimize to the direction of the perfection. If gradient is obstacle, I can switch to something like GA (genetic). | |
Jun 14, 2018 at 12:26 | comment | added | Pierre Gourseaud | Indeed I now remember batch training is just a vectorized computation of gradient descent with the loss defined at each step. Regarding "not allowing the first NN to make a prediction...", I don't think you can make such a constraint in the training phase. | |
Jun 14, 2018 at 12:10 | comment | added | alexeymosco | So let me say again that I have one L value that is scalar and lots of models' parameters to tune. I am reading now about back propagation algorithm, and at the first glance it needs the L as a vector to get the matrix algebra work. In puzzles me for now. | |
Jun 14, 2018 at 12:08 | comment | added | alexeymosco | that is easily mitigated by not allowing the first NN to make predictions when it had made a signal and the second one has not yet (that is why I included NAs in the example table). And as I illustrated the signals are quite sparse, which can result in for example 100 returns per 10,000 examples. | |
Jun 14, 2018 at 11:11 | comment | added | Pierre Gourseaud |
@Alexey Burnakov my mistake, I meant neural_ouput_1 = 1 after neural_ouput_2 = 1 , I edited. This is the point making me believe it is not achievable. To update weights you will need $\frac{\partial L}{\partial a}$ but it might be undefined and sometimes $L(a)$ is not continuous.
|
|
Jun 14, 2018 at 11:04 | history | edited | Pierre Gourseaud | CC BY-SA 4.0 |
fixed mistake in Case 2
|
Jun 14, 2018 at 9:32 | comment | added | alexeymosco | "Therefore I believe you cannot achieve it.". I don't really think so. I am thinking in 2 directions: first) get gradient numerically using L value and differentiating by each of the weights (so, doing lots of run-throughs for just one NN update), second) using the methods of optimization that are derivative-free. What do you think? "Here, it looks like you're trying to train with data from the future, which bidirectional RNN could handle." I am not sure this addresses my question properly. | |
Jun 14, 2018 at 9:30 | comment | added | alexeymosco | "If your batch size > 1, your loss function can be undefined if neural_output_2 = 1 after neural_output_1 = 1". That would be 1 trade (signal equals 1 means that market was entered, market was exited). | |
Jun 14, 2018 at 9:27 | comment | added | alexeymosco | thank you for your notes. Let me clarify a little bit. The 2 NNs have sligtly different features in input space: first works with price data mostly, and second works with both prices and state-of-trade information. They can also have different neuron number / architecture, but I am not sure how different. "If you do stochastic gradient descent (batch size = 1), the loss function is either undefined or 0." Of course I will not run SGD, I will run whole sample to accumulate full trade sequence. | |
Jun 13, 2018 at 21:22 | history | answered | Pierre Gourseaud | CC BY-SA 4.0 |