SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2203.11815 · 2022

Clustering units in neural networks: upstream vs downstream information

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 15 functions out of this paper's own repositories and ran 13 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
wrongu/modularity canonical 13 of 15
FunctionStatusWhere it lives
best_model Ran wrongu/modularity/analysis.py
code served (permissive licence) · get_code("3c8817de7268fd3e")
corrcov Ran wrongu/modularity/associations.py
code served (permissive licence) · get_code("8f1b37230e0e63f7")
girvan_newman Ran wrongu/modularity/modularity.py
code served (permissive licence) · get_code("e97a9f275da126b0")
is_iterable Ran wrongu/modularity/util.py
code served (permissive licence) · get_code("e777d089d7f9983f")
is_valid_adjacency_matrix Ran wrongu/modularity/modularity.py
code served (permissive licence) · get_code("ff44186668c788a6")
last_model Ran wrongu/modularity/analysis.py
code served (permissive licence) · get_code("7822097901139cf2")
log2prob Ran wrongu/modularity/probability.py
code served (permissive licence) · get_code("e043f2d92ffd7dab")
log_normalize Ran wrongu/modularity/probability.py
code served (permissive licence) · get_code("b90540f21b539e44")
merge_dicts Ran wrongu/modularity/util.py
code served (permissive licence) · get_code("028c5c4fc9dd3797")
prod Ran wrongu/modularity/models/cifar10.py
code served (permissive licence) · get_code("a828da824800b5de")
soft_num_clusters Ran wrongu/modularity/modularity.py
code served (permissive licence) · get_code("a7f0e094813bc883")
temperature Ran wrongu/modularity/probability.py
code served (permissive licence) · get_code("50bc4124ee074d37")
validate_layer_size Ran wrongu/modularity/models/cifar10.py
code served (permissive licence) · get_code("8514a1c62a638ec8")
sum_hessian Not yet run wrongu/modularity/associations.py
code served (permissive licence) · get_code("57f67813b1665e3b")
sum_hessian_conv Not yet run wrongu/modularity/associations.py
code served (permissive licence) · get_code("bf597a04bcc92e05")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

It has been hypothesized that some form of "modular" structure in artificial neural networks should be useful for learning, compositionality, and generalization. However, defining and quantifying modularity remains an open problem. We cast the problem of detecting functional modules into the problem of detecting clusters of similar-functioning units. This begs the question of what makes two units functionally similar. For this, we consider two broad families of methods: those that define similarity based on how units respond to structured variations in inputs ("upstream"), and those based on how variations in hidden unit activations affect outputs ("downstream"). We conduct an empirical study quantifying modularity of hidden layer representations of simple feedforward, fully connected networks, across a range of hyperparameters. For each model, we quantify pairwise associations between hidden units in each layer using a variety of both upstream and downstream measures, then cluster them by maximizing their "modularity score" using established tools from network science. We find two surprising results: first, dropout dramatically increased modularity, while other forms of weight regularization had more modest effects. Second, although we observe that there is usually good agreement about clusters within both upstream methods and downstream methods, there is little agreement about the cluster assignments across these two families of methods. This has important implications for representation-learning, as it suggests that finding modular representations that reflect structure in inputs (e.g. disentanglement) may be a distinct goal from learning modular representations that reflect structure in outputs (e.g. compositionality).

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2203.11815")
get_code_for_paper("2203.11815")
have("2203.11815")

Connect an agent — have() is free.