robustness

This commit is contained in:
steffen-illium
2021-06-11 14:38:22 +02:00
parent 987d7b95f3
commit 0e2289344a
3 changed files with 21 additions and 14 deletions

View File

@ -12,10 +12,9 @@
- there is also a distance matrix for all-to-all particle comparisons (with distance parameter one of: `MSE`, `MAE` (mean absolute error = mean manhattan) and `MIM` (mean position invariant manhattan))
- [ ] Same Thing with Soup interactionWe would expect the same behaviour...Influence of interaction with near and far away particles.
- [ ] How are basins / "attractor areas" shaped?
- Weired.... tbc...
- [ ] Same Thing with Soup interaction. We would expect the same behaviour...Influence of interaction with near and far away particles.
-
-
- [x] Robustness test with a trained NetworkTraining for high quality fixpoints, compare with the "perfect" fixpoint. Average Loss per application step
@ -25,17 +24,23 @@
- We might need to consult about the "average loss per application step", as I think application loss get gradually higher the worse the weights get. So the average might not tell us much here.
- [ ] Adjust Self Training so that it favors second order fixpoints-> Second order test implementation (?)
- [x] Adjust Self Training so that it favors second order fixpoints-> Second order test implementation (?)
- [x] Barplot over clones -> how many become a fixpoint cs how many diverge per noise level
- [ ] Box-Plot of Avg. Distance of clones from parent
- [x] Box-Plot of Avg. Distance of clones from parent
- [ ] Search subspace between two fixpoints by linage(10**-5), check were they end up
- [ ] How are basins / "attractor areas" shaped?
- Weired.... tbc...
-
# Future Todos:
- [ ] Find a statistik over weight space that provides a better init function
- [ ] Test this init function on a mnist classifier - just for the lolz
- [ ]
---
## Notes:

View File

@ -24,9 +24,11 @@ def is_identity_function(network: Net, epsilon=pow(10, -5)) -> bool:
rtol=0, atol=epsilon)
def is_zero_fixpoint(network: Net) -> bool:
result = bool(len(np.nonzero(network.create_target_weights(network.input_weight_matrix()))))
return not result
def is_zero_fixpoint(network: Net, epsilon=pow(10, -5)) -> bool:
target_data = network.create_target_weights(network.input_weight_matrix().detach().numpy())
result = np.allclose(target_data, np.zeros_like(target_data), rtol=0, atol=epsilon)
# result = bool(len(np.nonzero(network.create_target_weights(network.input_weight_matrix()))))
return result
def is_secondary_fixpoint(network: Net, epsilon: float = pow(10, -5)) -> bool:

View File

@ -225,7 +225,7 @@ if __name__ == "__main__":
ST_net_hidden_size = 2
ST_net_learning_rate = 0.04
ST_name_hash = random.getrandbits(32)
ST_synthetic = True
ST_synthetic = False
print(f"Running the robustness comparison experiment:")
RobustnessComparisonExperiment(