robustness
This commit is contained in:
		
							
								
								
									
										25
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								README.md
									
									
									
									
									
								
							| @@ -12,31 +12,36 @@ | |||||||
|     - 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)) |     - 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. | - [ ] Same Thing with Soup interaction. We would expect the same behaviour...Influence of interaction with near and far away particles. | ||||||
|  |       -  | ||||||
| - [ ] How are basins / "attractor areas" shaped? |       -  | ||||||
|       - Weired.... tbc... |    | ||||||
|  |  | ||||||
| - [x] Robustness test with a trained NetworkTraining for high quality fixpoints, compare with the "perfect" fixpoint. Average Loss per application step | - [x] Robustness test with a trained NetworkTraining for high quality fixpoints, compare with the "perfect" fixpoint. Average Loss per application step | ||||||
|      |  | ||||||
|     - see `journal_robustness.py` for robustness test modeled after cristians robustness-exp (with the exeption that we put noise on the weights). Has `synthetic` bool to switch to hand-modeled perfect fixpoint instead of naturally trained ones.  |     - see `journal_robustness.py` for robustness test modeled after cristians robustness-exp (with the exeption that we put noise on the weights). Has `synthetic` bool to switch to hand-modeled perfect fixpoint instead of naturally trained ones.  | ||||||
|  |  | ||||||
|     - Also added two difference between the "time-as-fixpoint" and "time-to-verge" (i.e. to divergence / zero). |     - Also added two difference between the "time-as-fixpoint" and "time-to-verge" (i.e. to divergence / zero). | ||||||
|  |  | ||||||
|     - 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. |     - 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 | - [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: | # Future Todos: | ||||||
|  |  | ||||||
| - [ ] Find a statistik over weight space that provides a better init function | - [ ] Find a statistik over weight space that provides a better init function | ||||||
| - [ ] Test this init function on a mnist classifier - just for the lolz | - [ ] Test this init function on a mnist classifier - just for the lolz | ||||||
| - [ ]  |  | ||||||
|   |  | ||||||
| --- | --- | ||||||
| ## Notes:  | ## Notes:  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -24,9 +24,11 @@ def is_identity_function(network: Net, epsilon=pow(10, -5)) -> bool: | |||||||
|                        rtol=0, atol=epsilon) |                        rtol=0, atol=epsilon) | ||||||
|  |  | ||||||
|  |  | ||||||
| def is_zero_fixpoint(network: Net) -> bool:     | def is_zero_fixpoint(network: Net, epsilon=pow(10, -5)) -> bool: | ||||||
|     result = bool(len(np.nonzero(network.create_target_weights(network.input_weight_matrix())))) |     target_data = network.create_target_weights(network.input_weight_matrix().detach().numpy()) | ||||||
|     return not result |     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: | def is_secondary_fixpoint(network: Net, epsilon: float = pow(10, -5)) -> bool: | ||||||
|   | |||||||
| @@ -225,7 +225,7 @@ if __name__ == "__main__": | |||||||
|     ST_net_hidden_size = 2 |     ST_net_hidden_size = 2 | ||||||
|     ST_net_learning_rate = 0.04 |     ST_net_learning_rate = 0.04 | ||||||
|     ST_name_hash = random.getrandbits(32) |     ST_name_hash = random.getrandbits(32) | ||||||
|     ST_synthetic = True |     ST_synthetic = False | ||||||
|  |  | ||||||
|     print(f"Running the robustness comparison experiment:") |     print(f"Running the robustness comparison experiment:") | ||||||
|     RobustnessComparisonExperiment( |     RobustnessComparisonExperiment( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 steffen-illium
					steffen-illium