-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect prediction while testing after training network #7
Comments
The predicted angle tends to convert to |
Network might be learning by heart, solutions:
|
The problem comes maybe from the normalization. Instead of taking the angle over |
New directionAfter talking with @victor-yon, the right direction would be to consider a CNN instead of a simple feed-forward. The CNN would recognize the angle better among the noise of the stability diagram. The network indeed can't find the line, therefore tries to minimize the error by returning a value close to the expected values. Here is the workflow for the coming week (should be done in 2 days max):
Additional note
|
Accuracy paradoxThere is a great chance the imbalance of data causes issue. However, while testing with synthetic data, the standard deviation doesn't drop. The problem certainly comes from the network not being able to identify features in noisy/non-binary data. But exploring data imbalance a bit more could also help. This link explains the concept of accuracy paradox, as well as this post. |
A new loss functionAfter computing the MSE (Mean Square Error) and the MAE (Mean Absolute Error), another loss function was found: SmoothL1Loss. This new function . It uses a squared term if the absolute element-wise error falls below beta and an L1 term otherwise. It is less sensitive to outliers than torch.nn.MSELoss and in some cases prevents exploding gradients. This loss function helped decreasing the loss drastically and obtained much more accurate results, and by that I mean the network predicts different values for different input. This means this issue can be close, as it's only a matter of tweaking the hyper-parameters to decrease the standard deviation now. |
Currently network doesn't give a correct output when running
test_network.py
. Output is always0.4202
.In training (
simple_network.py
) they_pred
is always the same (line 89).The text was updated successfully, but these errors were encountered: